linux – 麻烦解释iostat的tps度量

linux – 麻烦解释iostat的tps度量,第1张

概述序幕: 我使用 mysqldump命令转储了5.2 GB的数据库.我在功能不足的虚拟服务器上做了这个,只有512 MB的内存.花了大约一个小时.我现在正在我的桌面计算机上重新加载该数据库,该计算机具有双核CPU和2 GB内存.重装是在第9个小时,我不知道它是否接近完成.大约一年前我在同一台机器上重新加载了这个数据库,只花了两个小时.当时和现在的区别在于我在raid1模式下用两个SATA磁盘替换了我 序幕:
我使用 mysqldump命令转储了5.2 GB的数据库.我在功能不足的虚拟服务器上做了这个,只有512 MB的内存.花了大约一个小时.我现在正在我的桌面计算机上重新加载该数据库,该计算机具有双核cpu和2 GB内存.重装是在第9个小时,我不知道它是否接近完成.大约一年前我在同一台机器上重新加载了这个数据库,只花了两个小时.当时和现在的区别在于我在raID1模式下用两个SATA磁盘替换了我的单个ATA硬盘.我知道raID1会慢写(理论上),但绝对不会慢4.5倍!所以我爆发了iostat,我变得更加困惑.
$sudo iostat linux 2.6.30-2-amd64 (lukahn)  12/12/2009  _x86_64_ (2 cpu)avg-cpu:  %user   %nice %system %iowait  %steal   %IDle           7.13    0.00    1.94   27.96    0.00   62.97Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtnsda             144.02       198.41     11139.44    9322418  523399320sdb             143.78       165.59     11137.39    7780516  523303000hda               0.01         0.05         0.00       2492          0md0               0.66         6.44         0.71     302538      33496md1               7.32        67.02         7.51    3148938     352960md2               6.08       240.02        18.95   11277610     890584md3            1389.80        46.85     11106.55    2201410  521853640md4               0.41         3.03         0.21     142322       9824

sda和sdb是支持md设备的真正SATA驱动器,你可以在/ proc / mdstat中看到:

$cat /proc/mdstat PersonalitIEs : [raID0] [raID1] md4 : active raID0 sda6[0] sdb6[1]      48821248 blocks 64k chunksmd3 : active raID1 sda5[0] sdb5[1]      48829440 blocks [2/2] [UU]md2 : active raID1 sda4[0] sdb4[1]      1318358080 blocks [2/2] [UU]md1 : active raID1 sda2[0] sdb2[1]      48829440 blocks [2/2] [UU]md0 : active raID1 sda1[0] sdb1[1]      9767424 blocks [2/2] [UU]

我正在重新加载的.sql文件位于md2上的/ home分区上,而/ var分区位于md3上.我认为由于MysqL重新生成索引,写入md3的块比从md2读取的块高得多.然而,我遇到的一个重要问题是,对于md3,tps测量值如何比sda和sdb的tps测量值高得多?

iostat的-m选项显示为md3和sda / sdb写入磁盘的数据量相同(5.55 MB / s):

$sudo iostat -mlinux 2.6.30-2-amd64 (lukahn)   12/12/2009  _x86_64_    (2 cpu)avg-cpu:  %user   %nice %system %iowait  %steal   %IDle           7.39    0.00    2.00   28.16    0.00   62.44Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtnsda             145.16         0.10         5.55       4976     267768sdb             144.90         0.09         5.55       4143     267716hda               0.01         0.00         0.00          1          0md0               0.66         0.00         0.00        154         16md1               7.18         0.03         0.00       1580        172md2               6.19         0.13         0.01       6153        443md3            1418.41         0.02         5.53       1146     266994md4               0.40         0.00         0.00         69          5

iostat手册页说:

tps

Indicate the number of transfers per
second that were issued to the device.
A transfer is an I/O request to the
device. Multiple logical requests can
be combined into a single I/O request
to the device. A transfer is of
indeterminate size.

我不指望它们完全一样,但肯定不是864%不同!由于我对md设备的配置错误,这是否是瓶颈的标志,还是我只是担心什么?

解决方法 这是一个单一的iostat调用,它不为“每秒”值提供有意义的数据,只有计数器很有用 – 它不能从单个值计算每秒的变化,它需要知道它们之间的两个值和时间.
要查看真实值,请尝试以下方法:
iostat -d 1 2

第二个输出将是实际值.

从iostat手册页:

The first report generated by the iostat command provIDes statistics concerning the time since the system was booted. Each subsequent report covers the time since the prevIoUs report.

总结

以上是内存溢出为你收集整理的linux – 麻烦解释iostat的tps度量全部内容,希望文章能够帮你解决linux – 麻烦解释iostat的tps度量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1036021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存