linux 测试磁盘读写压力
linux 测试磁盘读写压力
新到两台服务器,上面均没有运行服务,服务器品牌不一样,现在我想测试一下两台服务器的磁盘读写速度来比较哪个服务器好。
确定唯一性
比如我sdb是数据盘,已经格式化为sdb1,挂载到了 /data 目录下。这样我去对 /data 目录下读写测试的时候,就是测试的sdb这块盘的读写速度。或者我的服务目前挂载在这个目录下,我想测试这个目录也可以。
验证写入速度
# 两台服务均执行
mkdir -p /data
dd if=/dev/zero of=/data/testfile bs=1M count=1024 oflag=direct
参数说明:
if=/dev/zero: 从 /dev/zero 设备读取数据,该设备会产生无限个 0 值字节。
of=/data/testfile: 将数据写入到 /tmp/testfile 文件中。
bs=1M: 每次传输 1MB 的数据块。
count=1024: 传输 1024 个数据块,总计 1GB 数据。
oflag=direct: 使用 O_DIRECT 标志,避免使用内核缓存,直接写入磁盘。
记录输出结果中的"记录了 X+0 块"和"2.35 GB(2,523,363,840 字节)已复制,X.XX 秒,X.XX GB/秒"部分。
这样就得到了两台电脑的写入速度。
验证读取速度
# 两台服务均执行
mkdir -p /data
dd if=/data/testfile of=/dev/null bs=1M count=1024 iflag=direct
参数说明:
if=/data/testfile: 从之前创建的 /data/testfile 文件中读取数据。
of=/dev/null: 将读取的数据丢弃到 /dev/null 设备中。
iflag=direct: 使用 O_DIRECT 标志,避免使用内核缓存,直接从磁盘读取。
同样记录输出结果中的吞吐量数据,得到两台电脑的读取速度。