91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中務器IO過高處理過程是怎樣的

發布時間:2021-11-08 17:19:15 來源:億速云 閱讀:296 作者:柒染 欄目:建站服務器

今天就跟大家聊聊有關linux中務器IO過高處理過程是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

一、背景

    在一次上線升級后,發現兩臺tomcat服務器的IOwait一直超過100ms,高峰時甚至超過300ms,檢查服務器發現CPU負載,內存的使用率都不高。問題可能出現在硬盤讀寫,而且那塊硬盤除了寫日志外,沒有其他的IO操作。最后發現是應用打印的日志信息太多,導致磁盤IO負載過高。

二、尋求解決過程

通過查找資料發現,Linux是用pdflush進程把數據從緩存頁寫入硬盤的,那么通過修改pdflush的一些參數應該可以改善IO負載問題。

pdflush的行為受/proc/sys/vm中的參數的控制

pdflush寫入硬盤看兩個參數:

1 數據在頁緩存中是否超出30秒,如果是,標記為臟頁緩存,寫入磁盤;

2 臟頁緩存是否達到工作內存的10%;

pdflush的第一件事是讀取

/proc/sys/vm/dirty_expire_centiseconds(default 3000)

聲明Linux內核寫緩沖區里面的數據多“舊”了之后,pdflush進程就開始考慮寫到磁盤中去。單位是 1/100秒。缺省是 30000,也就是 30 秒的數據就算舊了,將會刷新磁盤。對于特別重載的寫操作來說,這個值適當縮小也是好的,但也不能縮小太多,因為縮小太多也會導致IO提高太快。

當然,如果你的系統內存比較大,并且寫入模式是間歇式的,并且每次寫入的數據不大(比如幾十M),那么這個值還是大些的好。

第二件事是判斷內存是否到了要寫入硬盤的限額,由參數決定:

/proc/sys/vm/dirty_ratio (default 20)

控制文件系統的寫緩沖區的大小,單位是百分比,表示占系統內存的百分比,表示當寫緩沖使用到系統內存多少的時候,開始向磁盤寫出數據。增大之會使用更多系統內存用于磁盤寫緩沖,也可以極大提高系統的寫性能。但是,當你需要持續、恒定的寫入場合時,應該降低其數值。

/proc/sys/vm/dirty_background_ratio(default 10)

控制文件系統的pdflush進程,在何時刷新磁盤。單位是百分比,表示系統內存的百分比,保留過期頁緩存(臟頁緩存)的最大值。是以MmeFree+Cached-Mapped的值為基準的,當超過最大值則緩存頁寫入磁盤。pdflush用于將內存中的內容和文件系統進行同步,比如說,當一個文件在內存中進行修改,pdflush負責將它寫回硬盤。每當內存中的垃圾頁(dirty page)超過10%的時候,pdflush就會將這些頁面備份回硬盤。增大之會使用更多系統內存用于磁盤寫緩沖,也可以極大提高系統的寫性能。但是,當你需要持續、恒定的寫入場合時,應該降低其數值:

/proc/sys/vm/dirty_writeback_centisecs(default 500)

控制內核的臟數據刷新進程pdflush的運行間隔。單位是 1/100 秒。缺省數值是500,也就是 5 秒。如果你的系統是持續地寫入動作,那么實際上還是降低這個數值比較好,這樣可以把尖峰的寫操作削平成多次寫操作。

對于有高度寫入操作的系統

dirty_background_ratio:         主要調整參數。如果需要把緩存持續的而不是一下子大量的寫入硬盤,降低這個值。

dirty_ratio:    第二調整參數。

如果有大量的寫操作,為避免I/O的長時間等待,可以設置:

$ echo 5 >/proc/sys/vm/dirty_background_ratio
$ echo 10 > /proc/sys/vm/dirty_ratio

另外文件系統數據緩沖需要頻繁的內存分配。加大保留內存的值能提升系統速度和穩定。小于8G的內存,保留內存為64M,大于8G的設置為256M

$ echo 65536 >/proc/sys/vm/min_free_kbytes

三、最終解決方案

修改后效果明顯的參數:/proc/sys/vm/dirty_expire_centiseconds (default 3000)

默認是30秒,時間有點長,我把它改成10秒

echo 1000 >/proc/sys/vm/dirty_expire_centisecs

修改完后,IOwait時間立馬下降,平均40ms~50ms,是原來的1/3~1/4

困擾已久的IO問題得以解決!

以下是我的修改參數完整列表:

echo 5 > /proc/sys/vm/dirty_ratio
echo 2 >/proc/sys/vm/dirty_background_ratio
echo 100 >/proc/sys/vm/dirty_writeback_centisecs
echo 262144 >/proc/sys/vm/min_free_kbytes
echo 1000 >/proc/sys/vm/dirty_expire_centisecs

看完上述內容,你們對linux中務器IO過高處理過程是怎樣的有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

溧水县| 丹江口市| 和硕县| 长武县| 龙口市| 南丰县| 余干县| 黄骅市| 河西区| 南川市| 绥宁县| 漳州市| 澎湖县| 米易县| 苏尼特右旗| 平山县| 通海县| 邢台县| 公安县| 乌兰县| 苏尼特右旗| 田东县| 北票市| 台前县| 仲巴县| 长治县| 肇源县| 盖州市| 锡林浩特市| 准格尔旗| 龙游县| 邵东县| 嘉鱼县| 余干县| 兴化市| 兴国县| 黎川县| 迁西县| 昭觉县| 赤壁市| 阜康市|