Linux

iostat 報告 mdadm RAID1 中兩個相同磁碟的“%util”和“await”顯著不同

  • September 21, 2017

我有一台執行 CentOS 6 的伺服器,在 mdadm RAID1 中配置了兩個 Crucial M500 SSD。該伺服器也使用 Xen 虛擬化。

最近,我開始看到我們生產虛擬機iowait的統計數據中的百分比逐漸上升。top -c我決定調查並在 dom0 上執行 iostat,以便檢查物理磁碟(例如 /dev/sda 和 /dev/sdb)上的活動。這是我使用的命令:iostat -d -x 3 3

這是我收到的輸出範例(向右滾動以獲取%util數字):

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.33    0.00   38.67     0.00   337.33     8.72     0.09    2.22    0.00    2.22   1.90   7.33
sdb               0.00     0.33    0.00   38.67     0.00   338.00     8.74     1.08   27.27    0.00   27.27  23.96  92.63
md2               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    1.00     0.00     8.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md127             0.00     0.00    0.00   29.33     0.00   312.00    10.64     0.00    0.00    0.00    0.00   0.00   0.00
drbd5             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
drbd3             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
drbd4             0.00     0.00    0.00    8.67     0.00    77.33     8.92     2.03  230.96    0.00  230.96  26.12  22.63
dm-0              0.00     0.00    0.00   29.67     0.00   317.33    10.70     5.11  171.56    0.00  171.56  23.91  70.93
dm-1              0.00     0.00    0.00    8.67     0.00    77.33     8.92     2.03  230.96    0.00  230.96  26.12  22.63
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-3              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-4              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-5              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-6              0.00     0.00    0.00   20.00     0.00   240.00    12.00     3.03  151.55    0.00  151.55  31.33  62.67
dm-7              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-8              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-9              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-10             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-11             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

令我震驚的是,我注意到(2ms vs 27ms)和/dev/sda(7% vs 92%)之間/dev/sdb存在顯著差異。這些驅動器是彼此的鏡像,並且是相同的 Crucial M500 SSD,所以我不明白這是怎麼回事。上沒有任何活動不應該也發生在 上。await``%util``/dev/sda``/dev/sdb

我經常檢查這兩個磁碟的 SMART 值,我注意到Percent_Lifetime_Usedfor/dev/sda表示使用了 66%,而/dev/sdb報告了一個無意義的值(使用了 454%)。到目前為止,我並沒有太擔心,因為這Reallocated_Event_Count兩個驅動器的值一直相對較低,並且沒有迅速改變。

/dev/sda 的 SMART 值

/dev/sdb 的 SMART 值

/dev/sdb我們的磁碟可能有硬體問題嗎?還有其他可能的解釋嗎?

我最終發現這個系統沒有被正確地 TRIMed,並且分區也沒有足夠的過度配置(即使 Crucial M500 內置了 7%的2 級過度配置)。兩者結合導致了嚴重的寫放大情況。

此外,該系統包含一個具有非常高寫入活動的數據庫,從而導致非常多的小型隨機寫入。這種 IO 活動的寫入放大效果很差。

我仍然不能 100% 確定為什麼/dev/sda它的表現比/dev/sdb在 iostat 中更好——也許它類似於矽彩票,在這種情況/dev/sda下略優於最初的瓶頸。/dev/sdb``/dev/sdb

對我們來說,兩個主要的收穫是:

  1. 將 SSD 過度配置為 20%(考慮到您的 SSD 可能已經有0%、7% 或 28% 的2 級過度配置)。
  2. 每週執行一次 TRIM。

引用自:https://serverfault.com/questions/871096