记一次MongoDB服务器卡死分析解决思路

参考链接:https://www.centos.org/forums/viewtopic.php?f=47&t=60087#p253854
问题:

MongoDB服务器卡死,无法ping通,无法远程连接,无法登陆终端,终端显示:
CentOS 7- kernel: BUG: soft lockup - CPU#3 stuck for 30s! [xxx:xxx]:
终端信息

原因分析:

原因1:系统缓存过大引起内存使用率高

原因2:内核bug或者内核参数设置不合理

原因3:MongoDB参数配置不合理

解决方法:

1.修改内存强制回收等级

先设置
# echo 3 > /proc/sys/vm/drop_caches
再设置
# echo 1 > /proc/sys/vm/drop_caches

2.增加内核参数

# vi /etc/sysctl.conf

##内核默认参数(循环超时)

kernel.watchdog_thresh=30

##内存回收

vm.min_free_kbytes=409600

vm.vfs_cache_pressure=200

3.内核循环超时(s)

# echo 30 >/proc/sys/kernel/watchdog_thresh

4.修改mongodb.conf

# vi /usr/local/mongodb/conf/mongodb.conf (以实际目录为准)

#限制内存使用

wiredTigerCacheSizeGB=10

配置Mongo

5.关闭大叶内存

大叶内存

6.定时查看日志:

# grep ‘soft lockup’ /var/log/messages*

7.设置死循环宕机重启

# echo 1 > /proc/sys/kernel/softlockup_panic

持续观察中。。。

猜你喜欢

转载自blog.csdn.net/cy309173854/article/details/79300281