解決linux buffer/cache 消耗內存過高引發的問題


  • 工作中接到DBA報障某台服務器 跑一些大的數據,服務器就無法遠程連接,報錯,抓過日志叫DELL工程師檢測也沒問題,系統也重裝過,
    現在些一些較大的數據就會報如 圖錯誤,由於服務器遠在異地城市IDC機房,ssh也無法登錄,於是使用iDRAC 遠程管理卡連接到該台機器,通過控制台連接到服務器,看到如下圖報錯:
  • 1、內存占用量:dd過程內核會用大量內存作為磁盤數據的緩存,由於寫入8.5T;

  • 2、從設備來看,內存主要消耗在buff中:

  • 3、dd if=/dev/zero of=/data$i/test bs=1M count=9000000 conv=fdatasync &
    參數fdatasync作用 :
    1)保證數據刷新到磁盤、
    2)沒有把文件元數據刷到磁盤中;由於特性2)造成buff占用量激增;
    具體可參考:http://www.2cto.com/os/201205/131568.html

  • 4、通過echo 3 > /proc/sys/vm/drop_caches,即可清空buff/cache,目前此設備內存已恢復正常;

sar -r -f /var/log/sa/sa17
內存使用量激增。通常情況下,是由於業務程序導致的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM