linux下测试磁盘的读写IO速度【转】

时间:2021-11-08 12:51:12

Reference1:http://server.chinabyte.com/495/12361995.shtml
Reference2:https://www.deleak.com/blog/2011/11/05/big-penis-lol/

首先了解两个特殊设备
/dev/null 伪设备,回收站.写该文件不会产生IO
/dev/zero 伪设备,会产生空字符流,对它不会产生IO

测试方法:
    a.测试磁盘的IO写速度
    time dd if=/dev/zero of=test.dbf bs=8k count=300000
   b.测试磁盘的IO读速度
    dd if=test.dbf bs=8k count=300000 of=/dev/null

#表示 每次写入/读取8k的数据,执行300000次

dd命令可以通用,但不够专业,也没有考虑到缓存和物理读的区分,测试的数据也是仅作参考,不能算是权威。

##########################

用这个方法测试我08年买的笔记本,写速度23M/s;读速度91M/s

##########################

dd命令解释

dd if= of= bs= skip= seek= conv=

一定不要搞混 source 和 target,不然数据会丢失。所以 dd 平时用着顺手就叫它 dd,但是不小心把数据弄没了就该哭着叫它 Data Destroyer 了。

一般它的常用参数有:

    • bs=n,block size,每次读取 n bytes 写入,可与 count 联用;
      • ibs=n,一次读入 bytes 个字节 (default is 512);
      • obs=n,一次性写 n bytes 个字节 (default is 512);
      • bs 可以同时设置上边两个参数;
      • cbs=n,一次转换 n 个 bytes,即转换缓冲区大小。;
    • count=n, bs 操作的次数,仅拷贝 n 个块,如 dvd: bs=1M count=4430;
    • skip=n,指 if 后面的原文件跳过 n bytes 再开始读取;
    • seek=n,指 of 后面的目标文件跳过 n bytes 再开始写入;