查看目录是否为内存盘_Linux buff/cache内存释放
free 命令 產看內存占用一覽:
free 參數:
????今天部署項目的時候,發現pm2命令卡頓不能正確執行,一開始以為是pm2版本的問題,后面升級pm2到最新版本也沒有解決問題。既然和pm2本身沒有關系,那么就從其它地方檢查,檢查端口、檢查內存、檢查防火墻,折騰了半天最后解決了問題,(不在此擴展這個問題)。在檢查內存占用的時候,發現buff/cache 占有比例過大,free內存直接剩下僅僅幾十兆。
?先手動釋放一撥兒內存,執行命令:
echo 1 > /proc/sys/vm/drop_cachesecho 2 > /proc/sys/vm/drop_cachesecho 3 > /proc/sys/vm/drop_caches執行完成后,立竿見影,內存一下子釋放了出來,但是當再次執行 free 命令后,發現緩存一直在不停的寫入:
因此,需要設置定時釋放:
1、創建可執行的 .sh 文件:根據個人的實際情況選擇存放目錄,我的這個服務器下 .sh 大部分都在 /bin/?目錄下?,因此在該目錄下創建 cleanCache.sh 文件
2、編輯cleanCache.sh 文件:
echo?"開始"sync;sync;sync #寫入硬盤,防止數據丟失sleep 10 #延遲10秒echo 1 > /proc/sys/vm/drop_cachesecho 2 > /proc/sys/vm/drop_cachesecho 3 > /proc/sys/vm/drop_cachesecho?"結束"3、chmod 777? + 文件或目錄,(示例:chmod ?777 /test 運行命令后,test文件夾(目錄)的權限就被修改為 777 可讀可寫可執行)?賦予cleanCache 文件可執行權限:
chmod 777 cleanCache.sh4、crontab -e?打開并編輯定時執行配置文件,在文件后面追加執行命令 。Linux crontab是用來定期執行程序的命令。當安裝完成操作系統之后,默認便會啟動此任務調度命令。crond 命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。注意路徑:
crontab -e文件路徑前面有五個星號,為了方便觀察?*/1 代表每一分鐘執行一次,每個*號代表的意義可看這篇文章 https://www.cnblogs.com/qi-yuan-008/p/13587233.html。
*?*?*?*?*?shell_command# 第一個*號表示分鐘:范圍在0-59# 第二個*號表示小時:0-23# 第三個*號表示一個月的第幾天:1-31# 第四個*號表示月份:1-12;或者英文縮寫,例如jan等# 第五個*號表示星期:0-6,(星期天=0或者7);或者英文縮寫,例如sun,mon,fri等編輯完成后退出,查看:
修改完成后為了保證文件執行可再次賦權一下:chmod 777 cleanCache.sh?,一切完成后,可多次執行 free 觀察變化,當分鐘發生變化的時候 ,buff/cache 出現下降:
上面是為了方便觀察定時設置為每分鐘執行一次,實際可根據自己需要延長定時時間。
總結
以上是生活随笔為你收集整理的查看目录是否为内存盘_Linux buff/cache内存释放的全部內容,希望文章能夠幫你解決所遇到的問題。