linux內存泄漏與OOM問題排查

1、診斷存在泄露

#觀察內存總體使用情況,發現內存free在減少

$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 

0  0      0 205940  88248 3247312    0    0     0    30 5206 2352  2  2 96  0  0
0  0      0 202824  88260 3249784    0    0     0   114 5473 2617  2  1 96  0  0
0  0      0 201104  88272 3251264    0    0     0    38 5154 2056  1  1 97  0  0
0  0      0 200104  88284 3252852    0    0     0    18 4808 1552  1  1 98  0  0
0  0      0 199300  88296 3254124    0    0     0  2073 4762 1497  1  0 99  0  0

#找到使得內存減少的進程

$ top #或ps 
$ pmap 

 

上面3步可以用工具bcc包中的memleak分析

$ memleak -a -p $(pidof app) #已知進程號情況下,或者直接 $memleak -a

2、內存泄露最終通過OOM釋放

#查看OOM的進程

$ grep "Out of memory" /var/log/messages  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章