linux 测试硬盘性能

这里写了三种测试方法,从基础到高级,需要复杂的直接看最后一种.

测试的时候会占用cpu,同时提高整体功耗,如果是软raid,会显著增加cpu负载

一、使用hdparm测试-顺序读能力

hdparm为简单测试:硬盘顺序读写能力

1.安装软件

bash 复制代码
apt-get install hdparm

2.获取硬盘信息

查询所有的硬盘信息

bash 复制代码
fdisk -l

3.测试性能

此命令会显示硬盘的缓存读取速度(-T)和直接读取速度(-t)

bash 复制代码
sudo hdparm -Tt /dev/sda

注意:测试的可以是硬盘,也可以是raid(包括软raid和硬raid)

结果类似如下:

我这里是一个硬raid卡+2块sata固态(raid1)

二、dd 测试-顺序写入、顺序读取能力

dd 是一个功能强大的文件复制工具,可以用来测试磁盘的顺序读写性能

1.安装软件

dd命令系统自带,无需安装

2.获取硬盘信息

查询所有的硬盘信息

bash 复制代码
fdisk -l

3.测试

测试写入性能

bash 复制代码
dd if=/dev/sda of=/tmp/testfile bs=1M count=1024 oflag=direct

这个命令将会把 /dev/zero(一个虚拟的空设备)写入到 /tmp/testfile 中,写入大小为 1MB(bs=1M),总共写入 1024MB(count=1024)。oflag=direct 表示绕过缓存,直接写入硬盘。

结果类似如下:

测试读取性能

bash 复制代码
dd if=/tmp/testfile of=/dev/null bs=1M

这个命令会读取刚才写入的文件并丢弃输出(of=/dev/null),测试硬盘的读取速度。

结果类似如下:

三、fio 测试-随机和顺序读写性能

fio 是一个更为复杂和强大的磁盘性能测试工具,它支持多种读写模式、块大小等

1.安装软件

bash 复制代码
apt-get install -y fio

2.获取硬盘信息

查询所有的硬盘信息

bash 复制代码
fdisk -l

3.测试

读取测试

bash 复制代码
fio --name=write-test --ioengine=sync --rw=write --bs=1M --size=10G --numjobs=1 --time_based=0 --runtime=30m --filename=/dev/sda

写入测试

bash 复制代码
fio --name=read-test --ioengine=sync --rw=read --bs=1M --size=10G --numjobs=1 --time_based=0 --runtime=30m --filename=/dev/sda

其中,--rw=write 和 --rw=read 分别表示测试写入和读取性能,--bs=1M 表示每个 I/O 操作的块大小为 1MB,--size=10G 表示测试文件大小为 10GB。--filename为指定具体硬盘或者目录(测试这个目录所在硬盘)

注意:如果不写filename则默认是测试所有硬盘

相关推荐
地衣君1 小时前
RISC-V 开发板 + Ubuntu 23.04 部署 open_vins 过程
linux·ubuntu·risc-v
5:001 小时前
云备份项目
linux·开发语言·c++
码农101号2 小时前
Linux中shell编程表达式和数组讲解
linux·运维·服务器
powerfulzyh2 小时前
非Root用户启动SSH服务经验小结
运维·ssh
云道轩2 小时前
升级centos 7.9内核到 5.4.x
linux·运维·centos
是小满满满满吗2 小时前
传输层:udp与tcp协议
linux·服务器·网络
爱学习的小道长3 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
EelBarb3 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu
Xam_d_LM3 小时前
【Latex】Windows/Ubuntu 绘制 eps 矢量图通用方法(drawio),支持插入 Latex 数学公式
linux·ubuntu·科研·矢量图·drawio
402 Payment Required3 小时前
serv00 ssh登录保活脚本-邮件通知版
运维·chrome·ssh