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

2、禁用NUMA
bios禁用,或启动mongod时使用以下选项:
numactl --interleave=all  mongod [options]

3不要记录访问时间
sed -i '/ext4/s/defaults/defaults,noatime/' /etc/fstab


10-03 02:42