1. 程式人生 > 其它 >Centos定時自動清buff/cache快取

Centos定時自動清buff/cache快取

技術標籤:Linuxcentos清快取

Linux作業系統頻繁存取檔案會buff/cache會增高,會導致記憶體被用光。
buffers:用於存放要輸出到disk(塊儲存)的資料,在這裡buff是指被OS buffer住的記憶體(written to disk);
cached:存放從disk上讀出的資料;
buffer和cache是為了提高IO效能並由OS管理。
在這裡插入圖片描述
一、清快取方法
1.在/usr/local檔案資料夾建立cleanCache.sh touch cleanCache.sh
2.修改許可權 chmod 777 /usr/local/cleanCache.sh
3.測試執行/usr/local/cleanCache.sh


4.編寫定時任務 crontab -e
在末尾新增如下內容:(每天0點的時候執行一次,可以按需更改)
50 23 * * * /usr/local/cleanCache.sh
5.檢視定時器crontab -l

二、cleanCache.sh內容

#!/bin/bash
#每天定時清除一次快取
echo "開始清理快取"
sync;sync;sync #寫入硬碟,防止資料丟失
sleep 5 #延遲10秒
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
echo
"清理結束"

注意:在window環境編輯好cleanCache.sh再上傳Linux系統,若干cleanCache.sh的編碼沒有設定Linux格式,系統可能會報錯,建議再Linux系統下使用vim工具編輯cleanCache.sh
三、解釋:
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分配器中的快取物件。