Ubuntu分区性能测试常用方法及工具
dd是Linux系统自带的简单磁盘性能测试工具,通过复制数据测量分区的写入速度(需创建临时文件)和读取速度(需删除临时文件)。
sudo dd if=/dev/zero of=/path/to/ubuntu_partition/testfile bs=1M count=1024 conv=fdatasync
参数说明:if=/dev/zero(输入源,生成零数据)、of(输出文件,目标分区路径)、bs=1M(块大小,1MB)、count=1024(块数,共1GB)、conv=fdatasync(确保数据同步到磁盘)。sudo dd if=/path/to/ubuntu_partition/testfile of=/dev/null bs=1M count=1024
sudo rm /path/to/ubuntu_partition/testfile
bytes copied(总字节数)、time taken(耗时)、MB/s(写入/读取速度)是核心指标。fio(Flexible I/O Tester)是Ubuntu下功能最强大的性能测试工具,支持自定义负载场景(顺序/随机、读/写/混合)、多线程/进程、不同块大小(4K、1M等),能全面反映分区在实际应用中的性能。
sudo apt-get install fio
sudo fio --name=seq_read --ioengine=libaio --rw=read --bs=1M --size=1G --numjobs=1 --runtime=60 --time_based --filename=/dev/sdXN
sudo fio --name=rand_write --ioengine=libaio --rw=randwrite --bs=4k --size=1G --numjobs=1 --runtime=60 --time_based --filename=/dev/sdXN
--ioengine=libaio(异步I/O引擎,提升测试准确性)、--rw(操作类型:read/write/randread/randwrite)、--bs(块大小)、--size(测试文件大小)、--numjobs(并发线程数)、--runtime(测试时长)、--time_based(按时间停止测试)、--filename(目标分区路径)。bw(带宽,MB/s)、IOPS(每秒I/O操作数)、lat(延迟,ms)等指标,能精准反映分区在不同负载下的性能。iozone支持测试不同文件大小(从几KB到几GB)、不同访问模式(顺序/随机、读/写/混合)的磁盘性能,适合评估分区在文件系统层的实际表现(如ext4、xfs等)。
sudo apt-get install iozone3
/mnt/ubuntu_partition),运行以下命令生成Excel格式结果(包含详细指标):iozone -Rab /mnt/ubuntu_partition/result.xls -i 0 -i 1 -i 2 -t 4 -s 1G
参数说明:-R(生成Excel报告)、-a(自动调整测试范围)、-b(结果文件路径)、-i(测试项:0=写、1=读、2=随机读写)、-t(线程数)、-s(测试文件大小)。Write(写入)、Read(读取)、Random Read(随机读取)、Random Write(随机写入)等标签页,每个标签页有Throughput(吞吐量)、Latency(延迟)等指标,适合对比不同分区的综合性能。bonnie++专注于测试大文件顺序读写和小文件随机读写,适合评估分区在文件创建、删除、修改等场景下的性能(如网站文件存储、数据库文件操作)。
sudo apt-get install bonnie++
/dev/sdXN)和测试目录(需提前创建并挂载),运行以下命令:sudo bonnie++ -d /mnt/ubuntu_partition -s 2G -m TEST -u root
参数说明:-d(测试目录)、-s(测试文件大小,建议大于分区剩余空间)、-m(测试名称,用于结果标识)、-u(测试用户)。Sequential Output(顺序输出)、Sequential Input(顺序输入)、Random Seeks(随机寻道)等部分,每个部分有kB/s(速度)、ops/sec(操作次数/秒)等指标,能反映分区在文件操作中的性能。iostat是sysstat工具包的一部分,用于实时监控分区的I/O性能,适合观察分区在日常使用中的状态(如CPU使用率、磁盘读写速率、I/O等待时间)。
sudo apt-get install sysstat
iostat -mx 1 5 /dev/sdXN
参数说明:-m(以MB/s为单位显示)、-x(显示扩展统计信息,更详细)、1(刷新间隔,秒)、5(刷新次数)、/dev/sdXN(目标分区)。tps(每秒传输次数)、kB_read/s(每秒读取数据量)、kB_wrtn/s(每秒写入数据量)、await(平均I/O等待时间,ms)、%util(磁盘利用率,%)。若%util接近100%,说明分区I/O负载过高,可能成为性能瓶颈。