您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么更改linux操作系統文件緩存刷新策略”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么更改linux操作系統文件緩存刷新策略”吧!
以下針對linux操作系統,在centos/RHEL 6、centos/RHEL 7上測試有效。
和文件系統寫緩存策略相關的主要是下面兩個參數,其它相關參考可自行谷歌:
/proc/sys/vm/dirty_ratio
文件系統寫緩沖區的大小,單位是百分比,表示系統內存的百分比,表示當寫緩沖使用到系統內存多少的時候,開始向磁盤寫出數據。增大之會使用更多系統內存用于磁盤寫緩沖,也可以極大提高系統的寫性能。但是,當需要持續、恒定的寫入時,應該降低其數值。
/proc/sys/vm/dirty_background_ratio
控制 pdflush 進程在何時刷新磁盤。單位是百分比,表示系統內存的百分比,意思是當寫緩沖使用到系統內存多少的時候, pdflush 開始向磁盤寫出數據。增大之會使用更多系統內存用于磁盤寫緩沖,也可以極大提高系統的寫性能。但是,當需要持續、恒定的寫入場合時,應該降低其數值。
vm.dirty_background_ratio: 這個參數指定了當文件系統緩存臟頁數量達到系統內存百分之多少時(如5%)就會觸發pdflush/flush/kdmflush等后臺回寫進程運行,將一定緩存的臟頁異步地刷入外存;
vm.dirty_ratio: 而這個參數則指定了當文件系統緩存臟頁數量達到系統內存百分之多少時(如10%),系統不得不開始處理緩存臟頁(因為此時臟頁數量已經比較多,為了避免數據丟失需要將一定臟頁刷入外存);在此過程中很多應用進程可能會因為系統轉而處理文件IO而阻塞。
正常都是先達到vm.dirty_background_ratio的條件然后觸發flush進程進行異步的回寫操作,但是這一過程中應用進程仍然可以進行寫操作,如果多個應用進程寫入的量大于flush進程刷出的量那自然會達到vm.dirty_ratio這個參數所設定的坎,此時操作系統會轉入同步地處理臟頁的過程,阻塞應用進程。
也就是說,正常vm.dirty_background_ratio < vm.dirty_ratio才有意義。
在經常有大量寫入操作的系統中,應該分別調低這兩個參數的值,加快數據刷盤的頻率,從而避免因系統同步處理文件IO而導致相關進程處于D狀態。
臨時生效方法(重啟后失效):
echo 5 >/proc/sys/vm/dirty_background_ratio echo 10 >/proc/sys/vm/dirty_ratio
或者
sysctl -w vm.dirty_background_ratio=5 sysctl -w vm.dirty_ratio=10
永久生效方法:
echo "vm.dirty_background_ratio = 5" >> /etc/sysctl.conf echo "vm.dirty_ratio = 10" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf
到此,相信大家對“怎么更改linux操作系統文件緩存刷新策略”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。