当物理内存和 swap 分区内存都用尽时,服务器会连 ping 都响应了吗?

2022-01-05 19:25:10 +08:00
 zhoudaiyu
今天一台机器无法连接了,连 ping 都没有响应了,机器重启后发现内存和 swap 都用尽了,IOWAIT 高的离谱,这种情况下 /var/log/messages 和 dmesg 都没报错,所以我怀疑是内存满了导致的。请问我的猜想有可能吗?
3217 次点击
所在节点    Linux
16 条回复
Donahue
2022-01-05 19:26:28 +08:00
我只遇到过 内存和 swap 都满了,然后 ubuntu 18.04 界面卡死,只能强制关机。没测试 ping
locoz
2022-01-05 19:27:30 +08:00
内存爆了确实会导致 ping 都无响应的情况,之前碰到过一次
p2pCoder
2022-01-05 19:40:02 +08:00
公用开发机遇到过几次
wellsc
2022-01-05 19:40:26 +08:00
会的,blackbox 就是通过 icmp 检测主机存活的,都耗尽会发生主机存活告警的,实际机器还在
zhoudaiyu
2022-01-05 21:26:39 +08:00
@Donahue
@locoz
@p2pCoder
@wellsc 大哥们,我还有个问题,为什么我没看到任何 OOM 日志?按理来说系统应该杀掉一些进程才对
locoz
2022-01-05 21:48:13 +08:00
@zhoudaiyu #5 不清楚,我那时候也没看到系统杀进程,那个内存占用就一直存在,后来是靠 VNC 连上去忍着卡杀进程恢复的
zhoudaiyu
2022-01-05 22:14:10 +08:00
@locoz 我觉得啊,只是我推测,是不是有可能是某个系统进程内存溢出导致了内核没法去干掉
yuguorui96
2022-01-05 22:15:48 +08:00
也可能是是内核有内存泄露,我写过这样的 bug……
disk
2022-01-05 22:31:14 +08:00
正常情况下 /proc/sys/vm/oom_kill_allocating_task 应该设置为 0 。
OOM Killer 只有当内存真的用尽时才会触发,好像至少得间隔 5s 才会再次触发。
如果 swap 没有耗尽,可能一直等待 io ,类似假死。
zhoudaiyu
2022-01-05 22:44:01 +08:00
@yuguorui96 这样的话,内核应该会 crash 吧?问题就是没有 crash
zhoudaiyu
2022-01-05 22:47:46 +08:00
@disk 谢谢大哥,我没有注意到这个配置,明天我得确认下,其实我是从监控系统看到的,也不一定是 100%准的,因为不重启根本没法登陆。当时看物理内存已经还剩 100M 了,SWAP 应该是用尽了,还有你说的磁盘 IO ,我看了服务时间已经到 3 秒左右了。
cstj0505
2022-01-06 09:18:23 +08:00
内存用完,swap 耗尽,就会假死。上个月遇到了,生产机器的数据库,加了 swap ,机械盘的 swap 没移除。
Chinsung
2022-01-06 18:09:38 +08:00
这种情况,什么都满了,网卡收到包后内核也没法创建进程或者线程去响应吧
zhoudaiyu
2022-01-06 18:56:35 +08:00
@cstj0505
@Chinsung 现在的问题是,上面跑着 KAFKA ,但是这种情况 oom_killer 应该杀掉这个进程吧
Chinsung
2022-01-07 14:42:09 +08:00
@zhoudaiyu #14 这个得找 linux 大佬看了,我简单看了下 oom_killer 的机制,是进程向内核 malloc 的时候触发的,底层的网卡事件可能不包括在内
lusi1990
2022-01-13 16:46:54 +08:00
是的 用图形桌面,如果内存爆了,会卡死,ssh 不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/826429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX