iT邦幫忙

0

Linux bdflush影響到Disk I/O的存取問題

mbs 2011-02-23 11:55:594934 瀏覽

目前只要整點的時候,bdflush就會將share monery重整,同時影響到Disk I/O的存取,導致影響系統程式的讀寫作業而發生錯誤。
在下已將原本的設定值,修改如下:

more bdflush

50 500 0 0 300 3000 80 50 0

sysctl -w vm.bdflush="10 500 0 0 300 3000 80 50 0"

vm.bdflush = 10 500 0 0 300 3000 80 50 0

more bdflush

10 500 0 0 300 3000 80 50 0

但結果還是沒有改善?不知有無前輩可以幫忙指導一下?感謝!哭

2 個回答

8
bizpro
iT邦大師 1 級 ‧ 2011-02-23 20:19:39
最佳解答

從50 500 0 0 300 3000 80 50 0到10 500 0 0 300 3000 80 50 0的差別是第一個參數由50%降為10%, 您的目的是要bdflush不斷的啟動以將dirty buffers寫入硬碟嗎? 第3與4的參數為0, 您有試過用128, 512嗎? 第6,和7的參數您有調過嗎? 有試過5000, 500嗎? 或其他的組合? 您的shmmax, shmall等參數有調過嗎?

mbs iT邦研究生 4 級 ‧ 2011-02-24 11:17:14 檢舉

bizpro大大,在下機器的記憶體8GB,記憶體幾乎用滿,原本第一個值是50的時候,bdflush將dirty buffers寫入硬碟時會嚴重影響我程式的IO讀寫(磁碟效能差也是原因之一,但目前無法改善),所以才將50改成10讓bdflush執行時寫入硬碟的資料看看是否可以少一點,來改善IO,如有錯誤還望請bizpro大大指導!
筆記

bizpro iT邦大師 1 級 ‧ 2011-02-24 20:47:12 檢舉

記憶體8GB,記憶體幾乎用滿....磁碟效能差也是原因之一,但目前無法改善

這有可能是核心的問題, 如果硬體系統已經無法負荷IO, 你也要冒著資料毀損的風險.
你有試過提昇到100%嗎? 看看延遲bdflush的啟動次數會如何. 第二, 三個參數是調控free buffers的準備數量, 是不是因為記憶體用滿才設為0? 小心這些參數會crash你的系統, 看起來好像機器操得很厲害.

mbs iT邦研究生 4 級 ‧ 2011-02-25 14:05:06 檢舉

大大!您說的沒錯!機器被操的很重!無奈公司不賺錢,目前暫停更新計畫!只好繼續稱著!

4
harrier7
iT邦研究生 2 級 ‧ 2011-02-25 13:17:57

bdflush 被 pdflush 取代
pdflush 被 BDI 取代
看來伺服器年代有點久遠
你用 vmstat 請問 si 和 so 各多少?
用 free 看 swap 剩多少?
記得根據 IBM 和 ORACLE 官方說法,記憶體 8GB 合理的 swap 是 1.5x,
swap 的使用率應該維持約 30~70%,同時 si/so 的數值不應持續在 1x(兩位數),wa 不應該超過 30%。
如果你的系統 wa 很高、swap 很滿、si/so 很多,不論你如何調整,都無法解決的,這是硬體資源瓶頸。你只能:
1.升級硬體

2.改寫軟體(例如不要動不動就 full table scan)

mbs iT邦研究生 4 級 ‧ 2011-02-25 14:12:31 檢舉

機器還算新啦!
只是OS被AP(日本人寫的)綁死,無法升級新版本的核心,一直被綁死在這個版本。
Red Hat Enterprise Linux ES release 3 (Taroon Update 8)
Kernel 2.4.21-47.ELsmp on an i686
暈

我要發表回答

立即登入回答