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则默认是测试所有硬盘

相关推荐
charlie11451419125 分钟前
嵌入式Linux驱动开发(7) 从虚拟设备到真实硬件 —— LED驱动硬件基础
linux·开发语言·驱动开发·内核·c
Mortalbreeze40 分钟前
软件包管理器yum和编辑器vim详解 —— 附带vim配置链接
linux·服务器
李日灐1 小时前
< 7 > Linux 开发工具:git 版本控制器 和 cgdb/gdb 调试器
linux·运维·服务器·开发语言·git·调试器·gdb/cgdb
青木9601 小时前
前后端开发调试运行技巧
linux·服务器·前端·后端·npm·uv
c++之路1 小时前
C++ 模板
linux·开发语言·c++
xcbrand1 小时前
餐饮品牌全案公司哪家可靠
运维·python
apl3592 小时前
GUI 型 DevOps 平台的天花板,Ashby 在 1956 年就画好了
运维·devops
云动课堂2 小时前
【运维实战】MySQL 8.0 数据库 · 一键自动化部署方案 (适配银河麒麟 V10 / 龙蜥 8 / Rocky Linux 8 / CentOS 8)
linux·运维·数据库
cui_ruicheng2 小时前
Linux进程间通信(一):管道与IPC基础
linux·运维·服务器
Lumos_7772 小时前
Linux -- 互斥锁
linux