首页 新闻 会员 周边 捐助

iostat 读写速率显示疑惑

0
悬赏园豆:5 [已解决问题] 解决于 2019-01-07 16:45

iostat 读写速率显示疑惑

操作步骤

1)在Linux虚拟机中,执行一段拷贝操作,记录拷贝前与拷贝后的iostat状态,并记录时间。

拷贝前:待拷贝的文件名 node-v8.10.0-linux-x64 大小 188M

拷贝前iostat状态:

root@ubuntu:/home/wxh/backup/mysql# iostat 
Linux 4.13.0-43-generic (ubuntu)    01/03/2019  _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    0.04    0.04    0.00   99.86

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.00         0.00       1244          0
loop1             0.00         0.00         0.00        345          0
loop2             0.00         0.00         0.00       1222          0
loop3             0.01         0.01         0.00       9540          0
loop4             0.00         0.00         0.00        345          0
loop5             0.00         0.00         0.00        346          0
loop6             0.00         0.00         0.00          8          0
sda               0.33         3.02         8.60    2331035    6630752

拷贝执行过程如下:

root@ubuntu:/home/wxh/software# time cp -frp node-v8.10.0-linux-x64 node-v8.10.0-linux-x64_bak

real    0m11.979s
user    0m0.016s
sys 0m1.815s

拷贝后iostat状态:

root@ubuntu:/home/wxh/backup/mysql# iostat 
Linux 4.13.0-43-generic (ubuntu)    01/03/2019  _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.06    0.00    0.04    0.04    0.00   99.86

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.00         0.00       1244          0
loop1             0.00         0.00         0.00        345          0
loop2             0.00         0.00         0.00       1222          0
loop3             0.01         0.01         0.00       9540          0
loop4             0.00         0.00         0.00        345          0
loop5             0.00         0.00         0.00        346          0
loop6             0.00         0.00         0.00          8          0
sda               0.36         3.25         8.90    2507683    6862800

对比拷贝前后的状态:2507683 - 2331035 = 176603KB = 172.4MB

与文件实际大小188MB相差不大。

这些数据是在11.979秒中完成的,那么每秒的KB_read/s = 176603/11.979 = 14742KB才对,为何只有3.25KB/s?

在执行拷贝过程中查看过即时值也是如此。

langren919的主页 langren919 | 初学一级 | 园豆:194
提问于:2019-01-03 14:53
< >
分享
最佳答案
0

执行iostat 1试一下,iostat后面加数字表示每个多长时间显示一次

收获园豆:5
dreamingcloud | 菜鸟二级 |园豆:213 | 2019-01-04 17:53

多谢提醒,使用另外一个拷贝操作重新测试了一下,iostat是一个动态的过程,我之前观测的方式是有问题的,不能反映实时的情况。重新观察如下:

    tps       kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
   388.66     22202.06         0.00      21536          0
   343.68     59949.43         4.60      52156          4
   385.11     45897.87         0.00      43144          0
   98.99     17571.72       832.32      17396        824

此时的这个文件的每秒的速度也是动态的,最高达到了59.949MB/s的读取速度。但是写入的速度很低,这个的原因应该是文件首先被写入缓存,需要等待系统自动刷新到硬盘中,或者手动执行sync操作。

langren919 | 园豆:194 (初学一级) | 2019-01-07 09:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册