架构师小跟班:如何高效又安全的清理Linux服务器上的缓存?
操作服務(wù)器上的生產(chǎn)環(huán)境,一定要慎之又慎,安全第一,優(yōu)化第二!
一些基本原理
說到清理內(nèi)存,那么不得不提到/proc這一個虛擬文件系統(tǒng),這里面的數(shù)據(jù)和文件都是內(nèi)存中的實時數(shù)據(jù),很多參數(shù)的獲取都可以從下面相應(yīng)的文件中得到,比如查看某一進程占用的內(nèi)存大小和各項參數(shù),cpu和主板的詳細(xì)信息,顯卡的參數(shù)等。
相應(yīng)的關(guān)于內(nèi)存的管理方式是在/proc/sys/vm/drop_chches文件中,一定要注意這個文件中存放的并不是具體的內(nèi)存內(nèi)容,而是0-3這幾個數(shù)字,通過文件大小只有1B也可以知道,而這些代號分別告訴系統(tǒng)代表不同的含義如下:
0:系統(tǒng)默認(rèn)值,默認(rèn)情況下表示不釋放內(nèi)存,由操作系統(tǒng)自動管理
1:釋放頁緩存
2:釋放dentries和inodes
3:釋放所有緩存
所以根據(jù)上面的說明,分別將1,2,3這3個數(shù)字重定向到drop_caches中可以實現(xiàn)內(nèi)存的釋放,一般釋放內(nèi)存都是重定向3到文件中,釋放所有的緩存。
清除緩存操作步驟
1、查看當(dāng)前緩存剩余
free -h
當(dāng)前內(nèi)存剩余570M左右,另外buff/cache是1.3G,根據(jù)上面說的現(xiàn)在真正的剩余內(nèi)存應(yīng)該是1.8G左右。
2、寫緩存到文件系統(tǒng)
sync
3、釋放內(nèi)存
echo 1 > /proc/sys/vm/drop_caches
4、執(zhí)行后查看內(nèi)存剩余
free -h
如果想讓操作系統(tǒng)重新分配內(nèi)存,那么設(shè)置drop_caches的值為0即可:
echo 0 > /proc/sys/vm/drop_caches
特別注意:
在生產(chǎn)環(huán)境中的服務(wù)器我們不要頻繁的去釋放內(nèi)存,只在必要時候清理內(nèi)存即可,更重要的是我們應(yīng)該從應(yīng)用程序?qū)用嫒?yōu)化內(nèi)存的利用和釋放,經(jīng)常清理內(nèi)存可能只是暫時屏蔽的應(yīng)用程序中的一些bug,所以更重要的是程序的調(diào)優(yōu),其他的交給操作系統(tǒng)來管理。
轉(zhuǎn)載于:https://www.cnblogs.com/xyhero/p/11232838.html
總結(jié)
以上是生活随笔為你收集整理的架构师小跟班:如何高效又安全的清理Linux服务器上的缓存?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WP7 空闲检测 当手机处理锁屏状态时
- 下一篇: Linux Centos7 离线安装do