linux中怎么测试i o,Linux I/O测试

下面的测试方法受到缓存的影响,2.5寸,5400转的ATAT笔记本硬盘,不可能速度达到368MB/s,所以肯定先写缓存了

steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test1 bs=64k count=1000

1000+0 records in

1000+0 records out

65536000 bytes (66 MB) copied, 0.177868 s, 368 MB/s

用/dev/urandom可写入随机数据

time dd if=/dev/urandom of=./test1 bs=64k count=1000

Linux 中直接 I/O 机制的介绍(此文有对linux direct I/O的精彩介绍)

http://www.ibm.com/developerworks/cn/linux/l-cn-directio/

使用oflag=direct表示使用DirectIO方式,速度降到33.6MB/S,比较符合实际情况

steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test2 bs=64k count=1000 oflag=direct

1000+0 records in

1000+0 records out

65536000 bytes (66 MB) copied, 1.94967 s, 33.6 MB/s

real    0m1.953s

user    0m0.000s

sys     0m0.144s

在dd命令结束前同步数据和元数据(metaData)

steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test3 bs=64k count=1000 conv=fsync

1000+0 records in

1000+0 records out

65536000 bytes (66 MB) copied, 2.83524 s, 23.1 MB/s

real    0m2.839s

user    0m0.000s

sys     0m0.168s

在dd命令结束前只同步数据

steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test1 bs=64k count=1000 conv=fdatasync

1000+0 records in

1000+0 records out

65536000 bytes (66 MB) copied, 2.78156 s, 23.6 MB/s

real    0m2.785s

user    0m0.004s

sys     0m0.168s

使用同步I/O,每次写都要物理写入磁盘(磁盘会狂响的^_^),巨慢

steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test2 bs=64k count=1000 oflag=sync

1000+0 records in

1000+0 records out

65536000 bytes (66 MB) copied, 48.4128 s, 1.4 MB/s

real    0m48.416s

user    0m0.000s

sys     0m0.364s

oflag=dsync只同步写数据

steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test2 bs=64k count=1000 oflag=dsync

1000+0 records in

1000+0 records out

65536000 bytes (66 MB) copied, 48.4673 s, 1.4 MB/s

real    0m48.491s

user    0m0.004s

sys     0m0.380s

非阻塞I/O, 可以调用不会永远阻塞的 I/O 操作,例如 open, read 和 write 。如果这种操作不能完成,则立即出错返回,应用程序需要主动重试

steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test5 bs=64k count=1000 oflag=nonblock

1000+0 records in

1000+0 records out

65536000 bytes (66 MB) copied, 0.144059 s, 455 MB/s

real 0m0.148s

user 0m0.000s

sys 0m0.128s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值