服务器检查内存爆满

一、紧急处理:快速释放内存

1、通过ssh连接服务器,结束高内存;

top -o %MEM

kill -9 PID

2.清理缓存与临时文件

echo 3 > /proc/sys/vm/drop_caches #释放页缓存、denies等

rm -rf /tmp/* (谨慎清理临时文件)

二、深度排查:

安装apt install atop或yum install atop

查看历史:atop -r atop_日期

2.检查oom记录(内存溢出)

dmesg | grep -i "out of memory" #查看内核OOM日志

cat /var/log/messages | grep -i "oom"或grep -i "oom" /var/log/messages

三、docker容器通过--memory参数限制

docker run --memory=2g <image>

docker update --oom-score-adj=-1000 <container>

2.系统优化参数

echo 10 > /proc/sys/vm/overcommit_memory 允许内存超额分配

sysctl -w vm.swappiness=10 减少交换空间使用

配置日志轮转:编辑/etc/logrotate.conf,限制日志文件大小

================================================

立即排查步骤

‌一、检查系统日志‌

以下命令,查找OOM发生的详细记录和具体哪个进程被终止了

grep -i "oom" /var/log/messages

dmesg | grep -i "out of memory"

‌确认当前内存状态‌

使用 free -h 和 top 命令,查看内存和交换空间的使用情况,以及当前占用内存资源最多的进程。

根本原因与解决方案

导致OOM的常见原因及对策:

‌二、应用程序内存泄漏‌

‌排查‌:重点观察在 top 或 ps 命令中,是否有进程的 RES (常驻内存) 值在持续增长且不释放。

‌解决‌:修复代码中的内存泄漏问题;对于Java应用,可使用 jmap 生成堆转储文件进行分析

1.Slab内存占用过高‌

‌排查‌:执行 cat /proc/meminfo | grep -i slab,如果 Slab 值异常高,则可能是内核对象(如 dentry 缓存)占用了大量内存

2.临时解决‌:可以尝试手动清理Slab缓存(需root权限):

echo 2 > /proc/sys/vm/drop_caches

‌注意‌:此操作会清空内核缓存(如目录项缓存),可能导致系统性能短暂下降,但能快速释放内存。

‌三、系统配置与优化‌

‌调整Overcommit策略‌:在 /proc/sys/vm/overcommit_memory 中,将其设置为 2 可以完全禁用overcommit,从而在一定程度上避免OOM的发生,但这可能会使一些需要大量分配虚拟内存的程序(如Java)启动失败。

‌调整特定进程的OOM优先级‌:通过修改 /proc/<PID>/oom_score_adj 文件(例如,将其设为 -1000 来保护关键进程)

‌硬件资源不足‌

如果应用本身的内存需求就很大,那么最直接的解决方案就是‌增加服务器的物理内存‌。

相关推荐
云边有个稻草人11 小时前
打工人摸鱼新姿势!轻量斗地主服务器,内网穿透让同事远程联机不翻车
运维·服务器·cpolar
阿钱真强道11 小时前
12 JetLinks MQTT直连设备事件上报实战(继电器场景)
linux·服务器·网络·数据库·网络协议
乾元11 小时前
终端安全(EDR):用深度学习识别未知勒索软件
运维·人工智能·网络协议·安全·网络安全·自动化·安全架构
wbs_scy11 小时前
Linux 进阶指令实操指南:文件查看、时间管理、搜索压缩全场景覆盖(附高频案例)
linux·运维·服务器
安科瑞刘鸿鹏1711 小时前
高速路灯故障难定位?用 ASL600 实现精确单灯监测与维护预警
运维·网络·物联网·安全
馨谙11 小时前
Ansible 事实(Facts)全面指南:自动化运维中的主机信息管理
运维·ansible
Lethehong11 小时前
实测可用|一文搞定OpenClaw部署,免费kimi-k2.5+飞书远程,新手也能秒上手
linux·运维·服务器·玩转openclaw·云端创意实践
馨谙11 小时前
Ansible处理程序完全指南:实现智能的任务触发机制
运维·ansible
逍遥德11 小时前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring
承渊政道11 小时前
Linux系统学习【Linux基础开发工具】
linux·运维·笔记·学习·centos·编辑器