Linux
設置高 I/O 超時的缺點?
我正在研究幾個 Linux VM,其分區安裝在 NetApp NAS 上。此 NAS 會定期遇到非常高的 iowait,這會導致 VM 磁碟切換到只讀模式、崩潰或損壞。
在VMware KB上,建議增加超時值作為姑息治療:
echo 180 > /sys/block/sda/device/timeout
設置非常高的超時時間(1800 或更多)可能會產生什麼負面影響?在我看來,風險在於延遲寫入會累積並填滿 I/O 寫入緩衝區,從而導致系統崩潰。因此,此解決方案可能比問題更糟糕。
大多數記憶體在 OS 臟頁記憶體中的寫入已經非同步完成。換句話說,它們通常與設備超時無關。
但是,讀取和同步寫入需要底層塊設備立即關注,這正是您的文件系統切換到只讀模式的原因(它不能將其日誌寫入磁碟)。
增加 I/O 等待時間應該沒有壞影響,但它不是靈丹妙藥。例如,即使底層文件系統保持讀寫模式,數據庫也可以進入只讀模式。