Linux伺服器 記憶體和快取的清理

2021-10-22 19:26:37 字數 1150 閱讀 9614

今天發現跑深度學習程式時,伺服器會很卡並直接掉線,要過很久才能重新連線。最開始以為是gpu的問題,但是上週在跑同樣batch的資料時沒有遇到問題,與朋友討論後認為是cpu記憶體爆掉了的原因。以下是完整的修復過程

free -h 檢視記憶體和快取

watch free -h 實時檢視記憶體和快取

發現不跑程式的時候,占用達到了71g

最開始認為可能是系統之前執行程式留下的快取檔案,所以使用清理快取的方法。
sudo -s    # 進入到管理員模式

sync # 在清理快取先要先把buffe中的資料先寫入到硬碟中

echo 3 > /proc/sys/vm/drop_caches

drop_caches的值可以是0-3之間的數字,代表不同的含義:

0:不釋放(系統預設值)

1:釋放頁快取

2:釋放dentries和inodes

清理後發現只多了3個g的可用記憶體,考慮清理不需要的程序。

使用top指令檢視系統狀態

(這是事後在os系統的截圖,僅展示指令效果)

按 m 將程序按記憶體佔用率進行排序

檢視memory一列,發現有很多莫名的python指令正在執行

使用

ps auxw|head -1;

ps auxw|

sort

-rn -k4|head -20

檢視佔用率最多的20個程序,如下圖

可以發現,有很多vscode-server的擴充套件程式占用了非常多的記憶體。分析原因是使用vscode遠端連線伺服器跑程式後,每次占用的記憶體並沒有被釋放

使用 kill -9 job-id 關閉這些程序

再次用free -h檢查記憶體,有90g可用,清理成功。

記憶體和快取的區別

許多人認為,快取 是記憶體的一部分 許多技術文章都是這樣教授的 但是還是有很多人不知道快取在什麼地方,快取是做什麼用的 其實,快取是cpu的一部分,它存在於cpu中 cpu訪問資料的速度非常的快,一秒鐘能夠訪問 處理十億條指令和資料 術語 cpu主頻1g 而記憶體就慢很多,快的記憶體能夠達到幾十兆就...

記憶體和快取的區別

今天看書的時候又看到了記憶體和快取,之所以說又,是因為之前遇到過查過資料,但是現在又忘了 圖侵刪 所以又複習一遍,記錄一下,有所紕漏的地方,歡迎指正。同志們,上圖並不是記憶體和快取中的任何乙個,那有的小夥伴會問了,啥也不是,你怎麼強行發圖,別急,慢慢道來。上圖是 處理器即cpu的,一般來說快取都是整...

Nginx伺服器的壓縮功能和快取功能

在nginx伺服器配置檔案中可以通過配置gzip的使用,可以配置在http塊,server 塊或者location塊中設定,nginx伺服器可以通過ngx http gzip module模組 ngx http static module 模組功能ngx http gunzip module模組對這...