最近经常报内存超过80%的阀值.
统计了下内存实际使用只有1.6G,希望能帮我们分析下为什么内存的使用率显示使用了3178M.
-bash-3.2$ ps -eo 'pid,rss' --sort=-rss
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
PID RSS
20872 732320
5030 617408
15583 219672
15320 15940
9654 10088
1846 9100
8580 8748
9665 8588
3938 8304
2711 3996
8575 3276
7753 3260
19912 2464
2689 2140
14368 2036
28490 1968
2690 1800
7755 1748
7756 1568
2049 1548
2429 1480
1841 1304
2588 1304
23519 1212
23559 1176
2687 1052
8587 1048
8592 1040
2386 888
1897 864
8593 856
1833 808
8588 804
8594 740
8590 736
29128 672
2526 652
1 648
1842 648
1788 584
1946 572
1864 568
1856 556
1806 448
2558 416
2559 416
2562 416
2585 416
2586 416
2587 416
450 368
1791 332
2405 284
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
45 0
50 0
51 0
52 0
97 0
98 0
101 0
103 0
177 0
180 0
181 0
182 0
318 0
331 0
332 0
360 0
361 0
362 0
372 0
391 0
417 0
1339 0
1340 0
1341 0
1368 0
6460 0
6468 0
然后统计 rss列的内存总数是1,680M 远小于显示使用的3G.请问那部分内存被什么程序占用了?
可以安装工具atop,或者执行命令cat /proc/meminfo |grep -i slab看看slab占用的内存是否较多。
$sync
$sudo sysctl -w vm.drop_caches=3
$sudo sysctl -w vm.drop_caches=0 #recovery drop_caches
slab说明
http://www.bitscn.com/os/linux/201402/194938.html