性能 – 高iowait而wMB / s低
作者:互联网
我正在索引一个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,这意味着你的平均请求是你的SATA磁盘扇区大小的15.35 x(最常见的是512字节,但在一个非常新的SATA磁盘上可能是4096字节),所以你写的是15.35 x 512字节每个请求= 7,859.2个字节(平均),即383次写入/秒iostat报告的时间为3,010,073.6个字节(我们乘以平均值,因此这是.6字节来自的位置).而3,010,073.6字节/秒是2.87MB / s.
每秒可以执行多少次写入取决于磁盘移动磁头所需的数量,但粗略地说,您接近设备可以在一秒钟内完成的最大写入次数.
当您将每秒少量写入与大型avgrq-sz组合时,旋转磁盘上的写入速度会更高.
如果这对您来说是一个关键的性能问题,我建议调查各种SSD选项,这些选项通常会在这样的工作负载上提供更好的性能.
标签:performance,mysql,io,hard-disk 来源: https://codeday.me/bug/20190809/1631820.html