Linux 资源限制管理 本文总结了 Linux 操作系统的资源限制管理机制,涵盖了 page allocation failure、内存分配策略、OOM 杀死机制、进程优先级等方面的知识点。 一、Page Allocation Failure Page allocation failure 是 Linux 系统中一种常见的错误现象,表现为 kernel:abc:page allocation failure 的系统日志。其原因是程序 abc 获取连续物理内存失败,无法分配足够的物理内存。解决方法包括增大 vm.min_free_kbytes 和修改 vm.zone_reclaim_mode。 二、内存分配策略 Linux 系统使用 memory overcommit 策略,即允许程序申请大量内存,但实际上并不会马上使用这些内存。这种策略可以让系统运行更多和更大的程序。但是,可能会导致内存不足的问题。 Vm.overcommit_memory 参数控制着内存分配策略,取值为 0、1 或 2。其中,0 表示启发式策略,1 表示永远允许 overcommit,2 表示永远禁止 overcommit。 三、OOM 杀死机制 OOM(Out of Memory)杀死机制是 Linux 系统中的一种保护机制,用于防止系统内存不足。当系统检测到内存不足时,会选择出占用内存最大的进程,并将其杀死。进程的优先级由 oom_adj 参数决定,取值在 -17 到 15 之间。 四、进程优先级 Linux 系统为每个进程分配了一个 oom_adj 值,该值决定了进程的优先级。取值越高,进程越容易被杀死。可以通过设置 oom_adj 值来调整进程的优先级。 五、解决OOM问题 解决 OOM 问题的方法包括: * 根据 TOP、PS 等工具找到内存占用最大的进程,并排查进程是否内存泄露。 * 优化程序减少内存使用。 * 调整 Vm.overcommit_memory 参数。 * 设置 oom_adj 值调整进程优先级。 六、其他知识点 * vm.min_free_kbytes 参数控制着系统保持的最小空闲内存大小。 * vm.zone_reclaim_mode 参数控制着系统的内存回收策略。 * pid_max 参数控制着系统的进程数量上限,可以通过修改 pid_max 值解决 fork 失败的问题。 本文总结了 Linux 资源限制管理机制的主要知识点,包括 page allocation failure、内存分配策略、OOM 杀死机制、进程优先级等方面的内容。
剩余11页未读,继续阅读
- 粉丝: 375
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助