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