centos檢查硬盤健康,linux下proc里關于磁盤性能的參數

 2023-11-19 阅读 23 评论 0

摘要:我 們在磁盤寫操作持續繁忙的服務器上曾經碰到一個特殊的性能問題。每隔 30 秒,服務器就會遇到磁盤寫活動高峰,導致請求處理延遲非常大(超過3秒)。后來上網查了一下資料,通過調整內核參數,將寫活動的高峰分布成頻繁的多次寫,

我 們在磁盤寫操作持續繁忙的服務器上曾經碰到一個特殊的性能問題。每隔 30 秒,服務器就會遇到磁盤寫活動高峰,導致請求處理延遲非常大(超過3秒)。后來上網查了一下資料,通過調整內核參數,將寫活動的高峰分布成頻繁的多次寫, 每次寫入的數據比較少。這樣可以把尖峰的寫操作削平成多次寫操作。以這種方式執行的效率比較低,因為內核不太有機會組合寫操作。但對于繁忙的服務器,寫操 作將更一致地進行,并將極大地改進交互式性能。centos檢查硬盤健康?
  下面是相關參數的調整:
一、2.6內核下
????1、/proc/sys/vm/dirty_ratio  
??? 這個參數控制文件系統的文件系統寫緩沖區的大小,單位是百分比,表示系統內存的百分比,表示當寫緩沖使用到系統內存多少的時候,開始向磁盤寫出數據。增大 之會使用更多系統內存用于磁盤寫緩沖,也可以極大提高系統的寫性能。但是,當你需要持續、恒定的寫入場合時,應該降低其數值,:
  echo '1' > /proc/sys/vm/dirty_ratio 
 
????2、/proc/sys/vm/dirty_background_ratio  
??? 這個參數控制文件系統的pdflush進程,在何時刷新磁盤。單位是百分比,表示系統內存的百分比,意思是當寫緩沖使用到系統內存多少的時 候,pdflush開始向磁盤寫出數據。增大之會使用更多系統內存用于磁盤寫緩沖,也可以極大提高系統的寫性能。但是,當你需要持續、恒定的寫入場合時, 應該降低其數值,:
  echo '1' > /proc/sys/vm/dirty_background_ratio

????3、/proc/sys/vm/dirty_writeback_centisecs  
??? 這個參數控制內核的臟數據刷新進程pdflush的運行間隔。linux syslog?單位是 1/100 秒。缺省數值是500,也就是 5 秒。如果你的系統是持續地寫入動作,那么實際上還是降低這個數值比較好,這樣可以把尖峰的寫操作削平成多次寫操作。設置方法如下:
  echo "100" > /proc/sys/vm/dirty_writeback_centisecs  如果你的系統是短期地尖峰式的寫操作,并且寫入數據不大(幾十M/次)且內存有比較多富裕,那么應該增大此數值:
  echo "1000" > /proc/sys/vm/dirty_writeback_centisecs

????4、/proc/sys/vm/dirty_expire_centisecs  
??? 這個參數聲明Linux內核寫緩沖區里面的數據多“舊”了之后,pdflush進程就開始考慮寫到磁盤中去。單位是 1/100秒。缺省是 30000,也就是 30 秒的數據就算舊了,將會刷新磁盤。shell磁盤使用率。對于特別重載的寫操作來說,這個值適當縮小也是好的,但也不能縮小太多,因為縮小太多也會導致IO提高太快。
  echo "100" > /proc/sys/vm/dirty_expire_centisecs  
??? 當然,如果你的系統內存比較大,并且寫入模式是間歇式的,并且每次寫入的數據不大(比如幾十M),那么這個值還是大些的好。

  

????5、/proc/sys/vm/vfs_cache_pressure
   該文件表示內核回收用于directory和inode? cache內存的傾向;缺省值100表示內核將根據pagecache和swapcache,把directory和inode? cache保持在一個合理的百分比;降低該值低于100,將導致內核傾向于保留directory和inode? cache;增加該值超過100,將導致內核傾向于回收directory和inode? cache?
  缺省設置:100   

????6、/proc/sys/vm/min_free_kbytes
  該文件表示強制Linux? VM最低保留多少空閑內存(Kbytes)。  缺省設置:724(512M物理內存)  

????7、/proc/sys/vm/nr_pdflush_threads

??? 該文件表示當前正在運行的pdflush進程數量,在I/O負載高的情況下,內核會自動增加更多的pdflush進程。  

??? 缺省設置:2(只讀)  

????8、/proc/sys/vm/overcommit_memory

??? 該文件指定了內核針對內存分配的策略,其值可以是0、1、2。
  0,? 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,并把錯誤返回給應用進程。docker性能。
  1,? 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。
  2,? 表示內核允許分配超過所有物理內存和交換空間總和的內存(參照overcommit_ratio)。  

??? 缺省設置:0   

???

????9、/proc/sys/vm/overcommit_ratio
  該文件表示,如果overcommit_memory=2,可以過載內存的百分比,通過以下公式來計算系統整體可用內存。
  系統可分配內存=交換空間+物理內存*overcommit_ratio/100   缺省設置:50(%)  

????10、/proc/sys/vm/page-cluster
  該文件表示在寫一次到swap區的時候寫入的頁面數量,0表示1頁,1表示2頁,2表示4頁。  缺省設置:3(2的3次方,8頁) 

????11、/proc/sys/vm/swapiness
  該文件表示系統進行交換行為的程度,數值(0-100)越高,越可能發生磁盤交換。


二、2.4內核下  

??? 通過修改文件/proc/sys/vm/bdflush實現。kafka分區數與線程數如何對應。文件中的九個參數含義如下:
  nfract:dirty緩沖在緩沖區中的最大百分比。超過這個值將bdflush進程刷新硬盤。當可用內存比較少的情況下,將引發大量的磁盤I/O。為了均衡磁盤I/O,可以保持一個比較低的值。
  Ndirty:bdflush進程一次寫入磁盤的最大dirty緩沖塊數量。這個值比較大將導致I/O急劇增加,如果這個比較小,bdflush進程執行不夠從而可能導致內存的瓶頸。docker內存。
  Dummy2 :未使用
  Dummy3:未使用
  Interval:kupdated工作和刷新的最小頻率,默認值是5秒。最小值是0秒最大值是600秒。
  Age_buffer:緩沖數據寫到磁盤之前操作系統等待的最大時間。默認值是30秒,最小值是1秒最大值是6000秒。
  Nfract_sync:dirty緩存激活bdflush進程同步的百分比。默認值是60%。linux是什么、
  Nfract_stop:dirty緩存停止bdflush進程的百分比。默認值是20%。
  Dummy5:未使用
  比如在一個寫操作頻繁的數據庫服務器上設置:
  10????? 500??? 0????? 0????? 50????? 30??? 10????? 0????? 0

轉載于:https://www.cnblogs.com/itcomputer/p/4625486.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/180841.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息