一、page allocation failure(页空间分配失败,linux 默认一页是4K)
现象:系统日志kernel:abc:page allocation failure. Order:1,mode:0x20
说明:程序abc·获取连续物理内存失败(内核调用get_free_page函数)Mode:0x20指的原子分配方式。
原因:
1. 物理内存不足,分配制定的order的连续物理内存失败.
2. GFP_ATOMIC类型内存分配失败
解决方法:
1. 增大vm.min_free_kbytes
2. 修改vm.zone_reclaim_mode
vm.min_free_kbytes:
1. 告知内核随时保持多大空闲内存
2. 系统可用内存低于该参数时,系统开始回收cache内存
3. 值越高,内核越早开始回收内存,空闲内存越高
4. 大高太低都有问题
值设置过低,防止系统重新利用内存但是会导致系统挂起系统会OOM杀死内 存。设置过高,让系统内存不足。
如果kswapd进程CPU占用高,就是当空闲内存小于vm.min_free_kbytes系 统就会启动此进程回收内存,直到系统空闲内存达到vm.min_free_kbytes, 所以此进程占用CPU会上升。
vm.zone_reclaim_mode
当某个节点的可用内存不足时:
1. 如果为0,系统会倾向于从其他节点分配内存。
2. 如果为1,系统会倾向于从 本地节点回收cache内存。
多数时候为0
二、 OOM(out of memory)
当内存不足
Linux系统资源限制
最新推荐文章于 2024-08-26 11:03:39 发布
本文详细介绍了Linux系统在遇到页空间分配失败、OOM、Fork错误、资源暂时不可用以及过多打开文件等问题时的原因及解决方法。讨论了如何调整vm.min_free_kbytes、oom_adj、pid_max等参数来优化内存分配策略,以及如何处理线程栈空间和文件描述符限制。
摘要由CSDN通过智能技术生成