啟動程序時,無法正常啟動,程序直接沒有
被系統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 是個大坑啊
