1、优化预读
采用LINUX的BLOCKDEV命令来把预读大小设置小一点,减少内存中无用数据占用,从而优化IO性能
RA代表预读大小(扇区),推荐数值是16到32,如文档较小,预读数值可以小一点,修改后mongodb重启才能生效。

预读默认256个扇区,大小为128K

mongodb很多都是随机访问,readhead要设置小一点。比如只要读10k,但读了128K


root@db3-198:~# blockdev --report
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   128   512  4096          0    800166076416   /dev/sda
rw   128   512  1024       2048       524288000   /dev/sda1
rw   128   512  4096    1026048    799639863296   /dev/sda2
rw   256   512  4096          0     53687091200   /dev/dm-0
rw   256   512  4096          0     33822867456   /dev/dm-1
rw   256   512  4096          0    712125710336   /dev/dm-2

使用如下命令
blockdev --setra 128 /dev/sda2
代表预读大小为128*512字节/扇区=64K