Linux 上如何清除 RAM 內存高速緩存,緩存和交換空間

像任何其餘的操做系統同樣,GNU / Linux已經有效地實施了內存管理甚至更多。可是,若是有任何進程正在蠶食你的內存,你要清除它,Linux提供了一個方法來刷新或清除RAM緩存。node

在Linux中如何清除緩存?shell

每個Linux系統有三個選項來清除緩存而不中斷任何進程或服務。數據庫

1,僅清除緩存頁編程

sync; echo1>/proc/sys/vm/drop_caches緩存

2,清除目錄項和inodes安全

sync; echo2>/proc/sys/vm/drop_cachesbash

3,清除,緩存頁,目錄項和inodes服務器

sync; echo3>/proc/sys/vm/drop_caches學習

上述命令的說明:測試

sync將刷新文件系統緩存,命令經過「;」分隔,順序執行,shell等待終止在序列中的每個命令執行以前。正如內核文檔中提到的,寫到drop_cache將清空緩存而不殺死任何應用程序/服務,echo命令作寫入文件的工做。

若是你必須清除磁盤高速緩存,第一個命令在企業和生產環境中是最安全,「…echo 1> …」只會清除頁緩存。

不建議使用上面第三個選項在生產環境中「…echo 3 >」 ,除非你明確本身在作什麼,由於它會清除緩存頁,目錄項和inodes。

在Linux上釋放Buffer和Cache要用到內核是不是個好主意?

當你請求許多設定想要檢查時,若是它其實是專門實施對I/O 普遍的基準測試,那麼你可能須要清除緩存。你能夠如上所示刪除緩存,無需從新啓動系統即無需停機。

Linux被設計成它在尋找磁盤以前到磁盤緩存尋找的方式。若是它發現該資源在緩存中,則該請求不到達磁盤。若是咱們清理緩存,磁盤緩存將沒有用處,系統會到磁盤上尋找資源。

此外,當清除緩存後它也將減慢系統運行速度,系統會從新加載每個被請求的資源再次到磁盤緩存中。

如今,咱們將經過一個cron任務調度器建立一個shell腳本在天天下午2點自動清除RAM緩存。

建立一個shell腳本clearcache.sh並在其中添加如下行:

#!/bin/bash # Note, we areusing"echo 3", but it isnotrecommended in production instead use"echo 1"echo"echo 3 > /proc/sys/vm/drop_caches"

給clearcache.sh文件設置執行權限

# chmod 755 clearcache.sh

如今,當你須要清除RAM緩存時只須要調用腳本。

如今設置一個定時任務來清除RAM緩存天天在下午2點,打開crontab進行編輯。

# crontab -e

添加如下行,保存並退出。

03***/path/to/clearcache.sh

有關如何建立一個定時任務,更多細節你能夠查看咱們的文章11 Cron Scheduling Jobs。

在生產環境的服務器上自動清除RAM是不是一個好主意?

不!它不是。想一想一個狀況,當你已經預約腳原本清除RAM緩存天天在下午2點。天天下午2點該腳本會執行並刷新你的RAM緩存。在一天中的任什麼時候候,您網站用戶的在線量可能會超過預期的,並從你的服務器請求資源。同時調度器運行着腳本,並在高速緩存中清除一切。當全部的用戶都從磁盤讀取數據時,這將致使服務器崩潰並損壞數據庫。

所以,清除緩存僅在必要時而且在你的預料之中,不然你就是個Cargo Cult System Administrator。

如何清除Linux的交換空間?

若是你想清除交換空間,你能夠運行下面的命令:

# swapoff -a && swapon -a

此外,瞭解有關風險後,您可能會將上面的命令添加到cron中。

如今,咱們將上面兩種命令結合成一個命令寫出正確的腳原本同時清除RAM緩存和交換空間。

#echo3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a &&printf'n%sn''Ram-cache and Swap Cleared'

su -c'echo 3 >/proc/sys/vm/drop_caches'&& swapoff -a && swapon -a &&printf'n%sn''Ram-cache and Swap Cleared'

在測試上面的命令以前,咱們先運行「free -m」 而後執行腳本檢查緩存。

 

若是你對編程感興趣,想要深刻學習。這裏分享素材包及學習資源,還有免費教程哦(包含C語言、C++WindowsQtLinux相關知識點)~不管是小白仍是進階者,在這裏都能得到成長。

相關文章
相關標籤/搜索