SWAP分区过小导致系统异常的解决方法
问题现象描述
在某数据库测试的时候发现执行Linux基础命令时提示“-bash: fork: Cannot allocate memory”。
重启数据库后,重新执行对应的Linux基础命令,问题不再出现。然而,在后续测试过程中经常出现数据库进程减少的情况。
关键过程、根本原因分析
- 由于本例中系统的进程最大数已经设置成32768,已经非常大,因此数据库进程数满的可能性不大。
- 本例中出现问题后,无法执行对应命令查看系统状态。因此需要查看message日志来定位问题。
- 登录BMC,收集message日志并查看,发现有crash的现象。日志上还可以看出,系统内存不够,所以kill了数据库进程,所以数据库进程会变减少。
- 此外,从日志上还发现了另外一个关键信息:swap空间已经被用光,触发了OOM(Out Of Memory),导致系统出现了异常。跟以往的测试相比,本次测试数据库使用的内存大小都是一样的,但是这次开辟的SWAP空间较小。以往的测试中,SWAP分区有150GB,而这次才开了4GB,在内存紧张的情况下,很容易触发OOM。
父主题: 其他