Performance
wMB/s 低時 iowait 高
我正在索引一個 MySQL 表。它使那台電腦的負載很高。
這似乎是由於高 iowait。但它也表明 wMB/s 只有 2.87。
連普通的 SATA 硬碟都不能處理超過 2.87MB/s 的速度嗎?那為什麼程序這麼慢呢?
iostat -x
報告:avg-cpu: %user %nice %system %iowait %steal %idle 1.74 0.00 3.48 47.51 0.00 47.26 Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util sda 0.00 300.00 0.00 383.00 0.00 2.87 15.35 142.00 374.64 2.61 99.90 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-0 0.00 0.00 0.00 2507.00 0.00 9.79 8.00 263.88 110.06 0.40 99.90 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-2 0.00 0.00 0.00 2.00 0.00 0.01 8.00 0.41 196.00 202.50 40.50 dm-3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
你正在做小的隨機寫入,這幾乎是你在旋轉磁碟上可以做的最慢的事情,所以我想說你的吞吐量符合(我的)期望。
你的
avgrq-sz
大小是 15.35,這意味著你的平均請求是 15.35 x SATA 磁碟的扇區大小(最常見的是 512 字節,但在非常新的 SATA 磁碟上可能是 4096 字節),所以你寫的是 15.35 x 512 字節 = 7,859.2 字節(平均而言)每個請求,383 次寫入/秒iostat
報告的次數為您提供 3,010,073.6 字節(我們乘以平均值,這就是 0.6 字節的來源)。3,010,073.6 字節/秒是 2.87MB/秒。您每秒可以進行多少次寫入取決於磁碟需要移動磁頭多少,但粗略地說,您正在接近設備在一秒鐘內可以進行的最大寫入次數。
當您將每秒少量寫入與大量
avgrq-sz
.如果這對您來說是一個關鍵的性能問題,我建議研究各種 SSD 選項,這些選項通常會在這樣的工作負載上提供更好的性能。