本篇內(nèi)容介紹了“Linux上如何清除RAM內(nèi)存高速緩存”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括江孜網(wǎng)站建設(shè)、江孜網(wǎng)站制作、江孜網(wǎng)頁(yè)制作以及江孜網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,江孜網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到江孜省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
像任何其他的操作系統(tǒng)一樣,GNU / Linux已經(jīng)有效地實(shí)施了內(nèi)存管理甚至更多。但是,如果有任何進(jìn)程正在蠶食你的內(nèi)存,你要清除它,Linux提供了一個(gè)方法來(lái)刷新或清除RAM緩存。
在Linux中如何清除緩存?
每一個(gè)Linux系統(tǒng)有三個(gè)選項(xiàng)來(lái)清除緩存而不中斷任何進(jìn)程或服務(wù)。1,僅清除緩存頁(yè)
sync; echo 1 > /proc/sys/vm/drop_cachessync; echo 1 > /proc/sys/vm/drop_caches
2,清除目錄項(xiàng)和inodes
sync; echo 2 > /proc/sys/vm/drop_caches
3,清除,緩存頁(yè),目錄項(xiàng)和inodes
sync; echo 3 > /proc/sys/vm/drop_caches
上述命令的說(shuō)明:sync將刷新文件系統(tǒng)緩存,命令通過(guò)“;”分隔,順序執(zhí)行,shell等待終止在序列中的每一個(gè)命令執(zhí)行之前。正如內(nèi)核文檔中提到的,寫到drop_cache將清空緩存而不殺死任何應(yīng)用程序/服務(wù),echo命令做寫入文件的工作。如果你必須清除磁盤高速緩存,第一個(gè)命令在企業(yè)和生產(chǎn)環(huán)境中是最安全,“…echo 1> …”只會(huì)清除頁(yè)緩存。不建議使用上面第三個(gè)選項(xiàng)在生產(chǎn)環(huán)境中“…echo 3 >” ,除非你明確自己在做什么,因?yàn)樗鼤?huì)清除緩存頁(yè),目錄項(xiàng)和inodes。在Linux上釋放Buffer和Cache要用到內(nèi)核是否是個(gè)好主意?當(dāng)你請(qǐng)求許多設(shè)定想要檢查時(shí),如果它實(shí)際上是專門實(shí)施對(duì)I/O 廣泛的基準(zhǔn)測(cè)試,那么你可能需要清除緩存。你可以如上所示刪除緩存,無(wú)需重新啟動(dòng)系統(tǒng)即無(wú)需停機(jī)。Linux被設(shè)計(jì)成它在尋找磁盤之前到磁盤緩存尋找的方式。如果它發(fā)現(xiàn)該資源在緩存中,則該請(qǐng)求不到達(dá)磁盤。如果我們清理緩存,磁盤緩存將沒(méi)有用處,系統(tǒng)會(huì)到磁盤上尋找資源。此外,當(dāng)清除緩存后它也將減慢系統(tǒng)運(yùn)行速度,系統(tǒng)會(huì)重新加載每一個(gè)被請(qǐng)求的資源再次到磁盤緩存中。現(xiàn)在,我們將通過(guò)一個(gè)cron任務(wù)調(diào)度器創(chuàng)建一個(gè)shell腳本在每天下午2點(diǎn)自動(dòng)清除RAM緩存。創(chuàng)建一個(gè)shell腳本clearcache.sh并在其中添加以下行:
#!/bin/bash# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"echo "echo 3 > /proc/sys/vm/drop_caches"
給clearcache.sh文件設(shè)置執(zhí)行權(quán)限
# chmod 755 clearcache.sh
現(xiàn)在,當(dāng)你需要清除RAM緩存時(shí)只需要調(diào)用腳本?,F(xiàn)在設(shè)置一個(gè)定時(shí)任務(wù)來(lái)清除RAM緩存每天在下午2點(diǎn),打開(kāi)crontab進(jìn)行編輯。
# crontab -e
添加以下行,保存并退出。
0 3 * * * /path/to/clearcache.sh
有關(guān)如何創(chuàng)建一個(gè)定時(shí)任務(wù),更多細(xì)節(jié)你可以查看我們的文章11 Cron Scheduling Jobs。在生產(chǎn)環(huán)境的服務(wù)器上自動(dòng)清除RAM是否是一個(gè)好主意?不!它不是。想想一個(gè)情況,當(dāng)你已經(jīng)預(yù)定腳本來(lái)清除RAM緩存每天在下午2點(diǎn)。每天下午2點(diǎn)該腳本會(huì)執(zhí)行并刷新你的RAM緩存。在一天中的任何時(shí)候,您網(wǎng)站用戶的在線量可能會(huì)超過(guò)預(yù)期的,并從你的服務(wù)器請(qǐng)求資源。同時(shí)調(diào)度器運(yùn)行著腳本,并在高速緩存中清除一切。當(dāng)所有的用戶都從磁盤讀取數(shù)據(jù)時(shí),這將導(dǎo)致服務(wù)器崩潰并損壞數(shù)據(jù)庫(kù)。因此,清除緩存僅在必要時(shí)并且在你的預(yù)料之中,否則你就是個(gè)Cargo Cult System Administrator。
如何清除Linux的交換空間?
如果你想清除交換空間,你可以運(yùn)行下面的命令:
# swapoff -a && swapon -a
此外,了解有關(guān)風(fēng)險(xiǎn)后,您可能會(huì)將上面的命令添加到cron中?,F(xiàn)在,我們將上面兩種命令結(jié)合成一個(gè)命令寫出正確的腳本來(lái)同時(shí)清除RAM緩存和交換空間。
# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'
或
su -c 'echo 3 >/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'
在測(cè)試上面的命令之前,我們先運(yùn)行“free -m” 然后執(zhí)行腳本檢查緩存。
“Linux上如何清除RAM內(nèi)存高速緩存”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!