- 系 統(tǒng)
- 進階教程
- 微軟認證
- Win7/WinX
- 優(yōu)化
- 系統(tǒng)故障
- Windows NT
- 社區(qū)
GNU/Linux 已經(jīng)實現(xiàn)的內(nèi)存管理不僅有效,而且更好。但是,如果有任何進程正在蠶食你的內(nèi)存,而你想要清除它的話,Linux 提供了一個刷新或清除RAM緩存方法。
如何在 Linux 中清除緩存(Cache)?每個 Linux 系統(tǒng)有三種選項來清除緩存而不需要中斷任何進程或服務(wù)。 僅清除頁面緩存(PageCache)
清除目錄項和inode
清除頁面緩存,目錄項和inode
上述命令的說明: 如果你必須清除磁盤高速緩存,第一個命令在企業(yè)和生產(chǎn)環(huán)境中是最安全,"...echo 1> ..."只會清除頁面緩存。 在生產(chǎn)環(huán)境中不建議使用上面的第三個選項"...echo 3 > ..." ,除非你明確自己在做什么,因為它會清除緩存頁,目錄項和inodes。 在Linux上釋放也許被內(nèi)核所使用的緩沖區(qū)(Buffer)和緩存(Cache)是否是個好主意? 當你設(shè)置許多設(shè)定想要檢查效果時,如果它實際上是專門針對 I/O 范圍的基準測試,那么你可能需要清除緩沖區(qū)和緩存。你可以如上所示刪除緩存,無需重新啟動系統(tǒng)(即無需停機)。 Linux被設(shè)計成它在尋找磁盤之前到磁盤緩存尋找的方式。如果它發(fā)現(xiàn)該資源在緩存中,則該請求不會發(fā)送到磁盤。如果我們清理緩存,磁盤緩存就起不到作用了,系統(tǒng)會到磁盤上尋找資源。 此外,當清除緩存后它也將減慢系統(tǒng)運行速度,系統(tǒng)會將每一個被請求的資源再次加載到磁盤緩存中。 現(xiàn)在,我們將創(chuàng)建一個 shell 腳本,通過一個 cron 調(diào)度任務(wù)在每天下午2點自動清除RAM緩存。如下創(chuàng)建一個 shell 腳本clearcache.sh 并在其中添加以下行:
給clearcache.sh文件設(shè)置執(zhí)行權(quán)限
現(xiàn)在,當你需要清除內(nèi)存緩存時只需要調(diào)用腳本。 現(xiàn)在設(shè)置一個每天下午2點的定時任務(wù)來清除RAM緩存,打開crontab進行編輯。
添加以下行,保存并退出。
有關(guān)如何創(chuàng)建一個定時任務(wù),更多細節(jié)你可以查看我們的文章 11 個定時調(diào)度任務(wù)的例子。 在生產(chǎn)環(huán)境的服務(wù)器上自動清除RAM是否是一個好主意? 不!它不是。想想一個情況,當你已經(jīng)預(yù)定腳本在每天下午2點來清除內(nèi)存緩存。那么其時該腳本會執(zhí)行并刷新你的內(nèi)存緩存。在某一天由于某些原因,可能您的網(wǎng)站的在線用戶會超過預(yù)期地從你的服務(wù)器請求資源。 而在這時,按計劃調(diào)度的腳本運行了,并清除了緩存中的一切。當所有的用戶都從磁盤讀取數(shù)據(jù)時,這將導(dǎo)致服務(wù)器崩潰并損壞數(shù)據(jù)庫。因此,清除緩存僅在必要時并且在你的預(yù)料之中,否則你就是個呆瓜系統(tǒng)管理員。 如何清除Linux的交換空間?如果你想清除掉Swap空間,你可以運行下面的命令:
此外,了解有關(guān)風險后,您可以將上面的命令添加到cron中。 現(xiàn)在,我們將上面兩種命令結(jié)合成一個命令,寫成正確的腳本來同時清除RAM緩存和交換空間。
或
在測試上面的命令之前,我們在執(zhí)行腳本前后運行“free -m” 來檢查緩存。
|