linux磁盘性能测试
1.测试磁盘写能力
time dd if=/dev/zero of=test.db bs=8k count=1000000 oflag=direct
因为/dev/zero是一个伪设备,不产生IO,所以主要都集中在test.dbf的文件写入,如下图写入一个8G文件,磁盘的速度是每秒158兆, bs是每次读或写的大小,即一个块的大小,count是读写块的数量。
2.测试磁盘读能力
dd if=test of=/dev/null bs=8k count=1000000 iflag=direct
dd 只能提供一个大概的测试结果,而且是连续 I/O 而不是随机 I/O,理论上文件规模越大,测试结果越准确。 同时,iflag/oflag 提供 direct 模式,direct 模式是把写入请求直接封装成 I/O 指令发到磁盘,非 direct 模式只是把数据写入到系统缓存就认为 I/O 成功,并由操作系统决定缓存中的数据什么时候被写入磁盘。