我试图按照build议设置mongo 256或更低的readahead,我查看了任何指导的文档 ,我发现这个:
Ensure that readahead settings for the block devices that store the database files are appropriate. For random access use patterns, set low readahead values. A readahead of 32 (16kb) often works well. For a standard block device, you can run sudo blockdev --report to get the readahead settings and sudo blockdev --setra <value> <device> to change the readahead settings. Refer to your specific operating system manual for more information.
当我做一个sudo blockdev – 报告我得到:
rw 8192 512 4096 0 32212254720 /dev/sda rw 8192 512 4096 2048 31162630144 /dev/sda1 rw 8192 512 4096 60866560 1048576000 /dev/sda2 rw 8192 512 4096 0 75161927680 /dev/sdb rw 8192 512 4096 2048 75159830528 /dev/sdb1
我怎么知道哪一个与mongo有关?
根据您列出的大小,可能是/dev/sdb ,但是您可以通过运行df -h来find。 我将我的数据保存在/data ,这里是我的相关输出:
> df -h Filesystem Size Used Avail Use% Mounted on /dev/sdb1 70G 18G 49G 27% / /dev/sdc1 932G 682G 250G 74% /data
在我的情况下,这意味着我应该改变为readahead的是/dev/sdc1 。 找出你保存你的数据的地方,然后找出对应的块设备,然后在该设备上设置readahead。 在我的情况下:
sudo blockdev --setra 256 /dev/sdc
要坚持重新启动,您需要将此命令或类似命令添加到启动脚本(如rc.local),或者将其放入MongoDB初始化脚本中,以确保在启动MongoDB过程之前将其设置(readahead只能被读取一次在启动过程中,因此需要重新启动过程来影响更改)。
我写了一个init脚本来为我设置/取消设置:
readahead initscript