Linux OOM 自动杀死进程问题处理方法

1、问题描述:

linux系统内存不够用,导致mysql服务挂了。

2、查看服务器内存

用free命令查看服务器内存:

free -h

如果想查看某个进程的内存使用情况,使用top命令:

top -p pid

3、查看服务器日志信息:

日志文件路径: /var/log/messages-20220922

Sep 21 18:48:11 host104599123 kernel: Out of memory: Kill process 20917 (mysqld) score 68 or sacrifice child
Sep 21 18:48:11 host104599123 kernel: Killed process 20917  (mysqld) total-vm:6014512kB, anon-rss:2962596kB, file-rss:0kB, shmem-rss:0kB

4、错误日志分析:

Linux 内核有个机制叫OOM killer(Out Of Memory killer),系统内存不足导致触发 Linux Kernel OOM(Out of memory killer)保护机制,将占用内存大的进程杀死,以保证系统正常运行。

备注:还发现一种情况,内存够用,但还是触发了 OOM 杀死进程。这里涉及到一个 Low Memory 的知识点。内核使用 Low Memory 来跟踪所有的内存分配。
注意:只有在 32 位操作系统中才区分 Low Memory 与 High Memory ,64 位系统中 Low Memory 就是所有内存空间。

5、解决问题的思路:

  • 增加内存、使用 64 位操作系统。
  • 合理配置服务的启动内存,定期重启占用内存大的服务。
  • 手动释放内存:sync; echo 3 > /proc/sys/vm/drop_caches
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值