Linux

在高磁碟 I/O 期間提高系統性能/響應能力的進展如何?

  • January 10, 2011

每當有高磁碟 I/O 時,系統往往會比平時慢得多,響應速度也慢。Linux 核心在這方面的進展如何?這個問題是否正在積極解決?

我認為大部分已經解決了。我在重 IO 下的表現在 2.6.36 中有所改善,我希望它在 2.6.37 中會有更多改善。請參閱這些 phoronix文章。

Wu Fengguang 和 KOSAKI Motohiro 本週發布了更新檔,他們認為這些更新檔將解決其中一些響應性問題,他們稱之為“系統在記憶體壓力和大量臟/寫回頁面下無響應”錯誤。Andreas Mohr 是向 LKML 報告此問題並測試了針對核心的 vmscan 應用的兩個更新檔的使用者之一,報告成功。Andreas 的問題是,當通過 USB 1.1 連接固態驅動器時,在製作 EXT4 文件系統時,系統變得完全沒有響應(切換到 VT 需要 20 多秒)。在他的系統上,當從 /dev/zero 文件寫入 300M 時,問題更加嚴重。

這是錯誤的直接連結

同樣來自 Phoronix

幸運的是,根據我們的測試和其他 Linux 使用者希望看到此問題得到糾正的報告,已發布的相對較小的 vmscan 更新檔似乎確實可以更好地解決該問題。如果系統維持大量的磁碟活動,使用者界面(在我們的例子中是 GNOME)仍然不是 100% 流暢,但它肯定比以前好得多,甚至現在在 Linux 2.6.35 核心中也能找到。

還有Phoronix 2.6.36 發佈公告

似乎障礙正在消失,這也應該有助於提高性能。

在實踐中,屏障在破壞塊 I/O 性能方面有著令人不快的名聲,以至於管理員經常想將其關閉並承擔風險。雖然現代硬體提供的標記隊列操作應該可以很好地實現屏障,但嘗試利用這些功能通常會遇到困難。因此,在現實世界中,通過在發出屏障操作之前簡單地清空 I/O 請求隊列來實現屏障,並引入一些刷新操作以使硬體實際將數據送出到持久媒體。Queue-drain 操作將停止設備並終止完整性能所需的並行性;使用屏障會很痛苦並不奇怪。

還有這篇關於公平 I/O 調度的 LWN 文章

我會說 IO 在 2.6.28 中發布 ext4 的時間是一件大事。以下連結指向Linux Kernel Newbies Kernel 版本,您應該查看 Block 和 Filesystems 部分。這當然可能是不公平的情緒,或者剛開始看FS開發的時候,我肯定一直在改進,但是我覺得ext4的一些問題,‘導致人們對IO堆棧很看重,或者可能是他們希望 ext4 解決所有性能問題,但當它沒有解決時,他們意識到他們必須在別處尋找問題。

2.6.28 , 2.6.29 , 2.6.30 , 2.6.31 , 2.6.32 , 2.6.33 , 2.6.34 , 2.6.35 , 2.6.36 , 2.6.37

引用自:https://unix.stackexchange.com/questions/5565