发布时间: 2015-09-29 | 浏览次数: 1971 | 下载次数: 0 | 作者: SU1001836026 | 文档编号: EKB1000087308
问题描述:客户反馈运行数据库业务有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的系统物理内存。