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

相关推荐
中科三方12 小时前
输入域名后无法访问?教你快速区分域名解析问题与服务器问题
运维·服务器
internet Boy12 小时前
桌面运维面试常见问题及标准答案(完整版)
运维
用户23678298016812 小时前
Linux find 命令深度解析:从递归遍历到性能优化的完整实现
linux
ascarl201013 小时前
Linux.do 帖子整理:AI 调用 Chrome DevTools 调试前端页面
linux·前端·人工智能
Slow菜鸟13 小时前
Docker 学习篇(三)| Docker安装指南(Linux版)
linux·学习·docker
liuluyang53013 小时前
linux kernel CONFIG_KCMP解析
linux·运维·服务器
Koma_zhe13 小时前
【Ansible开源自动化运维工具】别再手动装监控了,Ansible能让上百台机器同时搞定Node Exporter(1)
运维·开源·ansible
daad77715 小时前
记录一次上下文切换次数的统计
服务器·c++·算法
斯班奇的好朋友阿法法15 小时前
RHEL 7.3 离线安装 RPM 包
linux