首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iozone:随机读取300 K块的5个并发线程比只使用一个线程做更多的操作/S,其根本原因是什么?

iozone:随机读取300 K块的5个并发线程比只使用一个线程做更多的操作/S,其根本原因是什么?
EN

Server Fault用户
提问于 2014-04-13 13:54:54
回答 2查看 1.5K关注 0票数 5

分区在RAID1中使用软件RAID。

代码语言:javascript
复制
    Command line used: iozone -s 190g -r 300k -O -b test_file
    OPS Mode. Output is in operations per second.
                                                            random  random    bkwd   record   stride                                   
          KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
   199229440     300     240     234      254      253      58     127     100     6539       91      234      234     254      254

因此,对于300 K块,使用一个线程的随机读取为58操作/秒,约为17 58/S。

但是,当我尝试每个线程读取300 K块时,出人意料的是,它运行得更快,尽管我希望有更多的随机访问:

代码语言:javascript
复制
    OPS Mode. Output is in operations per second.
    Command line used: iozone -s 80g -r 300k -O -l5 -u 5 -F test_file1 test_file2 test_file3 test_file4 test_file5

    Children see throughput for 5 random readers    =      69.27 ops/sec
    Parent sees throughput for 5 random readers     =      69.27 ops/sec
    Min throughput per process                      =      13.81 ops/sec 
    Max throughput per process                      =      13.89 ops/sec
    Avg throughput per process                      =      13.85 ops/sec

有谁知道Linux操作系统或硬盘驱动器中的读取/缓存策略使5个线程读取随机300 K块的速度比1个线程读取随机300 K块快吗?

EN

回答 2

Server Fault用户

发布于 2014-04-13 19:59:41

什么是令人惊讶的?

1线程意味着命令、等待、读取、循环。在延迟中有一个等待元素。

多个线程消除了这种情况,并且-由于多个命令的排队,使得磁盘能够得到更多的优化。使用3个线程获得更多的IOPS一点也不奇怪。

票数 2
EN

Server Fault用户

发布于 2014-11-11 07:22:13

这是一个raid1,所以写到这两个磁盘,但是读取可以满足一个,所以如果有更多的线程,我会期望更好的性能。但是,如果线程等于raid 1(或raid 10的raid 1部分)中的磁盘数量,则可能是最好的。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/588714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档