故障描述
得到以下用户反馈
- 进程被莫名其妙kill
- 远端登陆受阻
第一时间认为是内存爆炸。使用htop
检查,果然发现MEM
与SWAP
均已经99%使用
疑难点
在htop
视角下所有进程的%MEM
都是0
,因此不知道内存泄漏发生在何处
排查流程
- 检查僵尸进程,无
- 检查内核状态,是否有进程卡死在内核里。使用
slabtop
检查,发现是anon_vma_chain
占用大量内存,联想到fork bomb,即出现了大量使用微小内存的进程 - 使用
htop
验证猜想。由于SWAP
也满,因此对进程依据SWAP
降序排列,发现有一名用户大量创建了较高SWAP
和RES
的python
进程,怀疑该用户的此行为造成此次事故 - 进一步验证猜想。使用
ps -u xxx | grep -c "python"
检查该用户创建的python
进程数,发现创建了将近78000个进程,问题原因定位完成
修复
通知该用户后使用pkill
将所有python
进程清除。使用htop
验证清理效果,清理完成