起
自从设了三节点MongoDB副本集、运行一段时间后,服务却常常炸裂、动不动地就换主。于是乎就scale
咯。Scale后发现一台机器的MongoDB经常无故重启,机器也反应超慢。
如图所示。。。wa高得可怕(,I/O炸得腻害。肿么办呢?那就照着文档调优咯。
配置环境
- 使用官方、最新、文档的软件包
- 尽可能使用SSD
- 使用EXT4、XFS,对于WiredTiger存储引擎尽可能使用XFS
- 如使用NFS,配置
bg,nolock,noatime
- 数据存储卷上
noatime
,不记录访问时间 - 配置交换空间
禁用Transparent Huge Pages
参见Disable Transparent Huge Pages
sysctl配置
禁用 zone reclaim
vm.zone_reclaim_mode=0
Swappiness
“Swappiness”是一种Linux内核设置,它在需要分配交换时会影响虚拟内存的管理,范围从0至100。越大越积极存进硬盘。
于是我们。。。
vm.swappiness=1
ulimit
合适的ulimit有利于mongod的运行。
1 | ulimit -f unlimited |