linux內存過高排查


啟動程序時,無法正常啟動,程序直接沒有

被系統kill(dmesg | egrep -i -B100 'killed process'),

發現 shared memory , cache 占用過高

常用的命令:

按內存占用排序:
ps -eo rss,pmem,pcpu,vsize,args | sort -k 1 -r -n | less

 

在系統中除了內存將被耗盡的時候可以清緩存以外,我們還可以使用下面這個文件來人工觸發緩存清除的操作:

[root@tencent64 ~]# cat /proc/sys/vm/drop_caches 
1

方法是:

echo 1 > /proc/sys/vm/drop_caches

當然,這個文件可以設置的值分別為1、2、3。它們所表示的含義為:

echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。
echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的對象(包括目錄項緩存和inode緩存)。slab分配器是內核中管理內存的一種機制,其中很多緩存數據實現都是用的pagecache。
echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的緩存對象。

排查到最后,想起來 bazel的cache 放到了磁盤,是不是這個影響的呢? 然后 執行了 bazel clean , 內存下去了...... bazel 是個大坑啊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM