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