CH121 高负载下内存分配失败page allocation failure

发布时间:  2015-09-29 浏览次数:  598 下载次数:  0
问题描述

问题描述:客户反馈运行数据库业务有2个服务器出现系统挂死,无法ping通业务口IP

在/var/log/message发现有大量的page allocation failure错误信息



告警信息



处理过程

1)分析OS日志,在/var/log/message发现有大量的page allocation failure错误信息



以上日志表示系统中有order为0的内存申请失败,对于系统而言,这表示申请一个4K的页失败,所以可以认为当时系统内存确实不能被申请,应该是无可用内存。出现这种情况后,有可能会导致系统hang。

根因

page allocation failure内存申请失败导致系统hang住

解决方案

数据库业务高负载下内存分配失败会概率性导致os挂死或者进程挂死。

通过增大/proc/sys/vm/min_free_kbytes中的值解决,具体取值多少,建议联系suse原厂获取支持


建议与总结

Suse工程师对于/proc/sys/vm/min_free_kbytes参数解释:

该参数为系统保留的最小内存,设置太小,可能会导致系统因为关键性操作不能分配内存而hang死,设置太大,会导致系统过早的回收内存,从而导致大量的内存闲置而不能被使用。一般而言该参数需要根据内存的大小而设置(必须128K以上,一般为1~128M之间),不超过%2的系统物理内存。

END