Linux centos7 OOM Killer 配置详解

在 CentOS 7 中,OOM Killer(Out-of-Memory Killer)是 Linux 内核在系统内存严重不足时,强制终止某些进程以释放内存的机制。

🔍 查看 OOM Killer 日志

1. 系统日志查看

# 查看最近发生的 OOM 事件sudogrep-i"oom\|out of memory"/var/log/messages# 使用 dmesg 查看内核日志sudodmesg|grep-i"oom\|killed process"# 查看完整的 OOM 信息sudodmesg-T|grep-B5 -A5"Out of memory\|Killed process"

2. 查看特定进程是否被 OOM Killer 杀死

# 查看进程退出信号(如果信号是 9,可能是 OOM)cat/var/log/messages|grep"signal 9"

⚙️ OOM Killer 配置参数

关键参数位置:

/proc/sys/vm/overcommit_memory /proc/sys/vm/overcommit_ratio /proc/sys/vm/panic_on_oom /proc/sys/vm/swappiness

查看当前配置:

# 查看 OOM 相关参数sysctl -a|grepoom# 查看 overcommit 设置cat/proc/sys/vm/overcommit_memory# 0 = 启发式overcommit(默认)# 1 = 总是 overcommit# 2 = 禁止 overcommit

调整 OOM 策略:

# 临时修改echo1>/proc/sys/vm/overcommit_memory sysctl vm.overcommit_memory=1# 永久修改(在 /etc/sysctl.conf 中添加)echo"vm.overcommit_memory = 1">>/etc/sysctl.conf sysctl -p

🛡️ 控制进程的 OOM 优先级

1. 查看进程的 OOM 分数

# 查看进程的 OOM 分数(分数越高越容易被杀)cat/proc/<PID>/oom_score# 查看 OOM 调整值(-1000 到 1000)cat/proc/<PID>/oom_score_adjcat/proc/<PID>/oom_adj# 旧版本

2. 调整进程的 OOM 优先级

# 保护重要进程(设置负值,不容易被杀死)echo-100>/proc/<PID>/oom_score_adj# 标记不重要进程(设置正值,优先被杀死)echo100>/proc/<PID>/oom_score_adj

3. 在启动时设置 OOM 优先级

# 使用 systemd 服务保护进程[Service]OOMScoreAdjust=-500

🔧 诊断 OOM 问题

1. 内存使用分析

# 查看内存使用情况free-htop-o %MEM# 按内存排序查看进程psaux --sort=-%mem|head-20# 查看 slab 内存使用slabtop

2. 监控工具

# 使用 atop 监控atop# 使用 htop 交互式查看htop# 使用 earlyoom(用户空间 OOM killer)# 安装:yum install epel-release && yum install earlyoom

📊 OOM Killer 调优建议

防止 OOM 的配置:

# 1. 减少交换倾向(减少使用 swap)sysctl vm.swappiness=10# 2. 禁止在 OOM 时 panicsysctl vm.panic_on_oom=0# 3. 调整 overcommit 策略sysctl vm.overcommit_memory=2sysctl vm.overcommit_ratio=80# 4. 调整内存分配策略sysctl vm.admin_reserve_kbytes=8192sysctl vm.user_reserve_kbytes=8192

📝 永久配置 OOM 参数

/etc/sysctl.d/99-oom.conf中添加:

vm.overcommit_memory = 2 vm.overcommit_ratio = 80 vm.swappiness = 10 vm.panic_on_oom = 0 vm.oom_kill_allocating_task = 0

应用配置:

sysctl -p /etc/sysctl.d/99-oom.conf

🎯 实用脚本:检查 OOM 风险

#!/bin/bash# check-oom-risk.sh# 检查内存使用率MEM_USED=$(free|awk'/Mem:/ {print $3/$2 * 100.0}')echo"内存使用率:${MEM_USED}%"# 检查交换空间使用SWAP_USED=$(free|awk'/Swap:/ {print $3/$2 * 100.0}')echo"Swap使用率:${SWAP_USED}%"# 检查 OOM 分数最高的进程echo-e"\nOOM 风险最高的进程:"ps-eo pid,comm,%mem --sort=-%mem|head-10# 检查是否有大内存进程echo-e"\n检查大内存进程 (>10%):"ps-eo pid,comm,rss --sort=-rss|awk'$3 > 10000 {print}'

💡 建议与注意事项

  1. 重要服务保护:数据库、Web 服务器等关键服务应设置较低的 OOM 分数
  2. 监控设置:配置监控系统报警,当内存使用超过 80% 时及时处理
  3. swap 配置:确保有足够的 swap 空间作为缓冲
  4. 应用优化:优化应用程序内存使用,避免内存泄漏
  5. 使用 cgroups:通过 cgroups 限制进程组的内存使用

通过合理配置 OOM Killer 参数和监控内存使用,可以有效减少因内存不足导致的系统不稳定问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1194140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

矩阵,递推与2BM

以下默认小写字母 \(\mathbf{a},\mathbf{b}\) 等表示的向量是一个行向量,\(\mathbf{1}\) 表示全 \(1\) 行向量,\(\operatorname{diag(\mathbf{a})}\) 表示一个大小 \(|\mathbf{a}|\times |\mathbf{a}|\) 的矩阵,满…

如何让大模型后训练工作更扎实?打造solid大模型后训练的完整方法论!

LLM 论文千千万&#xff0c;有用的工作却没几篇。这篇文章&#xff0c;我想简单讨论下到底该如何把后训练工作做的 solid。文章并没什么技术细节&#xff0c;大家随便看看。 01 敲定正确的 Baseline 有太多论文工作不置信的根因就是没有选对 baseline。 以 length penalty 为例…

2026抚顺市英语雅思培训辅导机构推荐;2026权威出国雅思课程排行榜

基于英国文化教育协会最新发布的雅思考试趋势报告及抚顺市本地考生需求调研,本次针对新抚区、望花区、东洲区、顺城区四大区域的雅思培训市场开展全面深度测评,结合考生核心痛点与行业权威标准,整理出2026年度抚顺市…

BluetoothDesktopHandlers.dll文件丢失找不到 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

还在用多线程?Python异步编程已成主流,5个理由告诉你必须转型

第一章&#xff1a;Python异步编程 async await 详解在现代Web开发和高并发场景中&#xff0c;Python的异步编程模型已成为提升性能的关键技术。async 和 await 是Python实现协程的核心语法&#xff0c;自Python 3.5起引入&#xff0c;极大地简化了异步代码的编写与维护。异步函…

bootstr.dll文件丢失找不到问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

2026年AI行业火爆,普通人如何抓住机遇?揭秘2026年春季招聘中的高薪AI岗位!

深度学习研究员月薪8万-11万、AGI实习生日薪500元-1000元、AIGC领域百万年薪岗位频现…… 2026年春季招聘大幕拉开&#xff0c;人工智能&#xff08;AI&#xff09;无疑是全场最耀眼的“顶流”&#xff0c;从科技巨头到创新企业纷纷加码抢人&#xff0c;让AI人才彻底成为就业市…

2026年上海弯管机认证厂家排行榜,看看哪个口碑好!

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家数控弯管机领域的标杆企业,为各行业企业选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:张家港市明正精密机械有限公司 推荐指数:★★★★★ |…

从业务系统的奇怪问题,看银行的数据架构

一次从业务到技术的分析上周路过街边&#xff0c;几个工作人员推销办卡送礼品的。礼品恰好挺好的。我就办张信用卡吧。别以为我是闲得慌凑热闹&#xff0c;作为混迹技术圈多年的老炮儿&#xff0c;我心里早就打着小算盘 —— 正好看看银行的业务系统实际运行起来到底怎么样。工…

BootCriticalUpdatePlugin.dll文件丢失找不到 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

2026大连市英语雅思培训辅导机构推荐,2026权威出国雅思课程排行榜

基于《2025-2026中国留学语言培训行业白皮书》核心数据,结合金州区、普兰店区、瓦房店市、庄河市、长海县多区域考生调研反馈,本次针对大连市雅思培训市场开展权威深度测评,聚焦考生最关心的选课难题、提分效果、性…

2026年背单词软件推荐:智能学习趋势深度排名,涵盖碎片化与系统化记忆场景

摘要 在语言学习与个人能力提升的持续热潮中,选择一款高效的背单词软件已成为学习者,尤其是学生与职场人士,优化学习路径、克服记忆惰性的关键决策。面对海量选择,决策者常陷入功能同质化辨识困难、长期效果难以评…

2026年背单词软件推荐:基于多场景深度评测,解决遗忘与效率痛点并附排名

摘要 在语言学习与个人知识管理的数字化浪潮中,背单词软件已成为学习者提升词汇量的核心工具。面对市场上功能各异、定位不同的众多选择,无论是学生、职场人士还是终身学习者,都面临着如何在信息过载的环境中,筛选…

【高性能Python编程必修课】:深入剖析多线程与多进程的真实应用边界

第一章&#xff1a;多线程与多进程的核心概念辨析在现代计算环境中&#xff0c;程序的并发执行能力是提升性能的关键。多线程与多进程作为实现并发的两种基本方式&#xff0c;各自具备不同的资源管理机制和适用场景。基本定义与结构差异 多进程&#xff1a;每个进程拥有独立的内…

题目1119:C语言训练-“水仙花数“问题1

#include<iostream> using namespace std; int main(){int num;while(cin>>num){int originalnum;//要对原数值进行保存int total0;while(num){//当num不为0时进行下列运算 int tmp0; tmpnum%10;totaltmp*tmp*tmp;num/10;}if(totaloriginal){cout<<"1&q…

python笔记-界面开发

1、界面开发:wxPython一个开源的Python GUI开发工具包 提供了一个跨平台的GUI编程接口,支持Windows、macOS、Linux等多个操作系统 可以创建多种GUI应用程序,包括桌面应用程序、游戏、数据分析和可视化工具、web应用…

上海市英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜

依托英国文化教育协会(BC雅思)《2024-2025中国大陆雅思考生成绩大数据报告》上海考区专项数据,联合全国雅思教学质量监测中心,完成徐汇区、浦东新区、静安区、闵行区及松江区12000份考生调研问卷,对102家教育机构…

股票分析:Python 爬取同花顺股票数据(技术指标提取)

Python 爬取同花顺股票数据及技术指标提取详解&#xff08;2026 年视角&#xff09; 在 2026 年&#xff0c;使用 Python 爬取股票数据已成为量化分析、AI 预测和个人投资工具的标配。同花顺&#xff08;iFinD&#xff09;作为国内主流金融平台&#xff0c;提供丰富的股票行情…

2026鞍山市英语雅思培训辅导机构推荐;2026权威出国雅思课程排行榜

经权威教育测评机构联合雅思教研专家团深度调研,结合鞍山市铁东区、铁西区、立山区、千山区海量考生实战反馈,针对雅思备考痛点推出本份靠谱且实用的培训机构排行榜。当前鞍山市雅思考生普遍面临诸多困境:铁东区考生…

SonarQube Server 2025.6.1.117629 - 代码质量、安全与静态分析工具

SonarQube Server 2025 Release 6 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具SonarQube Server 2025 Release 6 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具 Self-managed static analysis…