CentOS分区性能测试指南
对CentOS分区进行性能测试是评估磁盘I/O能力、识别瓶颈的关键步骤,需结合工具特性与场景需求选择合适方法。以下是常用工具、操作流程及注意事项的详细说明:
fio是Linux下最灵活、功能最全面的I/O性能测试工具,支持随机/顺序读写、多线程/进程、不同块大小等多种场景,能精准模拟真实应用负载。其优势在于可定制化参数(如iodepth、runtime、numjobs),结果包含IOPS、带宽、延迟等核心指标。
安装方法:
sudo yum install fio -y # CentOS 7/8/9
dd是基础磁盘工具,适合快速测试纯读/纯写速度(如分区格式化后的基础性能),但无法模拟复杂I/O场景(如随机读写),且结果受缓存影响较大。
sysbench是多功能基准测试工具,支持CPU、内存、磁盘I/O等测试,其中磁盘I/O测试适合快速评估分区的基本性能(如顺序读写带宽)。
分区不对齐(如4KB扇区磁盘的起始磁柱未对齐)会导致性能下降(约10%-20%)。使用fdisk检查分区对齐:
sudo fdisk -lu /dev/sdX # 替换为目标分区(如/dev/sda1)
判断标准:Start列的值(初始磁柱编号)需能被8整除(因4KB扇区=8个512字节扇区)。若未对齐,需删除分区(fdisk /dev/sdX → d删除)并重新创建对齐的分区。
fio支持多种测试模式,以下是最常用的组合:
sudo fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/dev/sdX1 -name=rand_read_test
sudo fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/dev/sdX1 -name=rand_write_test
sudo fio -direct=1 -iodepth=32 -rw=read -ioengine=libaio -bs=1M -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/dev/sdX1 -name=seq_read_test
sudo fio -direct=1 -iodepth=32 -rw=write -ioengine=libaio -bs=1M -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/dev/sdX1 -name=seq_write_test
参数说明:
-direct=1:绕过缓存,测试真实磁盘性能;-iodepth:I/O队列深度(越大并发越高,适合高负载场景);-rw:读写模式(randread/randwrite/seqread/seqwrite);-bs:块大小(4K对应数据库小IO,1M对应大文件传输);-runtime:测试时长(秒);-filename:测试目标(分区设备文件,如/dev/sda1)。sudo dd if=/dev/zero of=/mnt/sdX1/testfile bs=4k count=100000 oflag=dsync
结果中的写入速度(如128MB/s)反映分区纯写性能,oflag=dsync确保每次写入都同步到磁盘。sudo dd if=/mnt/sdX1/testfile of=/dev/null bs=1M count=100 iflag=direct
结果中的读取速度(如500MB/s)反映分区纯读性能,iflag=direct绕过缓存。dd命令时(of=参数指向分区会覆盖数据);