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 天前
配置 Docker 镜像加速器
运维·docker·容器
坚持就完事了1 天前
Linux中的tar命令
linux·运维·服务器
晚枫歌F1 天前
同步异步阻塞非阻塞
运维·服务器
江湖有缘1 天前
实时监控所有端口,Docker 部署 WatchYourPorts 保姆级教程
运维·docker·容器
Cyber4K1 天前
【DevOps专项】Git 部署及使用方法
运维·git·devops
数据雕塑家1 天前
Linux磁盘性能测试完全指南:使用FIO深入评估存储系统
linux·运维·服务器
csdn_aspnet1 天前
告别重复造轮子:Codex写脚本,运维/DevOps场景下,用Codex批量生成Shell/Python自动化脚本
运维·python·ai·自动化·devops·codex·辅助编程
positive_zpc1 天前
计算机网络——数据链路层(二)
服务器·网络·计算机网络
木心术11 天前
DevOps全流程实践:从CI/CD到自动化测试的最佳实践
运维·ci/cd·devops
一直会游泳的小猫1 天前
Homebrew - macOS 与 Linux 的包管理器
linux·运维·macos·brew·包管理工具