1. 简介
当我们拿到一个硬盘时,我们需要首先掌握他的性能,在windows下找专门的图形化的工具进行,这篇文章主要讲解在linux环境下如何测试硬盘的读写速度。
2. dd命令
2.1 dd简介
dd -- 转换(根据操作符)并拷贝一个文件
在指定块大小的时候,后边会跟特殊字符来表示单位,分别如下:
- b = 512
- c = 1
- k = 1024
- w = 2
2.2 可添加的选项
- if=文件名 -- 输入文件名,缺省为标准输入。
- of=文件名 -- 输出文件名,缺省为标准输出。
- ibs=一次读入字节数,即指定一个块的大小。obs=一次输出的字节数。bs=输入/输出的块的大小。
- cbs=一次转换的字节数,即指定转换缓冲区大小。
- count=拷贝块的数量。
- skip=从输入文件开头跳过块的个数。
- seek=从输出文件开头跳过的个数。
- conv=用指定的参数转换文件。
ascii: ebcdic --> ascii
ebcdic: ascii --> ebcdic
ibm: ascii --> alternate ebcdic
block: 把每一行转换为长度为cbs,不足部分空格填充
unblock: 使每一行的长度都为cbs,不足部分空格填充
lcase: 把大写字符转换为小写字符
ucase: 小写转大写
swab: 交换输入的没对字符
noerror: 出错时不停止
notrunc: 不截短输出文件
sync: 将每个输入块填充到ibs个字节,不足部分用空(NULL)字符补齐
2.3 测试写的操作方法
sudo dd if=/dev/zero bs=4k count=1000000 of=./3.8GB.file
2.4 测试读的方法
在测试读的时候,我们需要多一步 清除内存的缓存,以确保这个文件确实是从驱动盘读取的 操作
sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"
dd if=./3.8GB.file bs=4k of=/dev/null
3. iozone
对一个硬盘的测评仅仅测试块大小是4k的是不完全的,如果想深入的分析一个块设备id性能,iozone能完整的测试。