Linux系统资源限制

本文详细介绍了Linux系统在遇到页空间分配失败、OOM、Fork错误、资源暂时不可用以及过多打开文件等问题时的原因及解决方法。讨论了如何调整vm.min_free_kbytes、oom_adj、pid_max等参数来优化内存分配策略,以及如何处理线程栈空间和文件描述符限制。
摘要由CSDN通过智能技术生成

一、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)
当内存不足

OS error code 0: Success 操作系统错误代码0:成功 OS error code 1: Operation not permitted 操作系统错误代码1:操作不允许 OS error code 2: No such file or directory 操作系统错误代码2:没有这样的文件或目录 OS error code 3: No such process 操作系统错误代码3:没有这样的过程 OS error code 4: Interrupted system call 操作系统错误代码4:中断的系统调用 OS error code 5: Input/output error 操作系统错误代码5:输入/输出错误 OS error code 6: No such device or address 操作系统错误代码6:没有这样的设备或地址 OS error code 7: Argument list too long 操作系统错误代码7:参数列表太长 OS error code 8: Exec format error 操作系统错误代码8:执行格式错误 OS error code 9: Bad file descriptor 操作系统错误代码9:坏的文件描述符 OS error code 10: No child processes 操作系统错误代码10:无子过程 OS error code 11: Resource temporarily unavailable 操作系统错误代码11:资源暂时不可用 OS error code 12: Cannot allocate memory 操作系统错误代码12:无法分配内存 OS error code 13: Permission denied 操作系统错误代码13:权限被拒绝 OS error code 14: Bad address 操作系统错误代码14:错误的地址 OS error code 15: Block device required 操作系统错误代码15:需要块设备 OS error code 16: Device or resource busy 操作系统错误代码16:设备或资源忙 OS error code 17: File exists 操作系统错误代码17:文件已经存在 OS error code 18: Invalid cross-device link 操作系统错误代码18:无效的跨设备链接 OS error code 19: No such device 操作系统错误代码19:没有这样的设备 OS error code 20: Not a directory 操作系统错误代码20:不是一个目录 OS error code 21: Is a directory 操作系统错误代码21:是一个目录 OS error code 22: Invalid argument 操作系统错误代码22:无效参数 OS error code 23: Too many open files in system 操作系统错误代码23:打开太多的文件系统 OS error code 24: Too many open files 操作系统错误代码24:打开的文件太多 OS error code 25: Inappropriate ioctl for device
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值