Linux 系统硬盘的 IOPS 测试


IOPS ( 英文: Input/Output Operations Per Second) ,即每秒进行读写( I/O )操作的次数,多用于数据库等场合,衡量随机访问的性能。存储端的 IOPS 性能和主机端的 IO 是不同的, IOPS 是指存储每秒可接受多少次主机发出的访问,主机的一次 IO 需要多次访问存储才可以完成。
所以对于每台服务器,它的 IOPS 都是很重要的,直接影响性能。平时我们如何去测试自己的 IOPS 是否好呢?我们可以通过“ FIO ”此 Linux 下的 IOPS 测试工具来检测。
使用方式:
安装 FIO :
yum install gcc libaio-devel -y
wget http://brick.kernel.dk/snaps/fio-2.0.10.tar.gz
tar -zxvf fio-2.0.10.tar.gz
cd fio-2.0.10
make && make install
测试:
随机读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=10 -runtime=1000 -group_reporting -name=mytest
典型的使用:
fio -     filename=/dev/sdc1 -direct=1 -rw=randread -bs=4k -size=60G -numjobs=64 –runtime=10 -group_reporting-name=fileXXX
参数说明:
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的 data 目录。
direct=1 测试过程绕过机器自带的 buffer 。使测试结果更真实。
rw=randwrite 测试随机写的 I/O
rw=randrw 测试随机写和读的 I/O
bs=16k 单次 io 的块文件大小为 16k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为 5g ,以每次 4k 的 io 进行测试。
numjobs=30 本次的测试线程为 30.
runtime=1000 测试时间为 1000 秒,如果不写则一直将 5g 文件分 4k 每次写完为止。
ioengine=psync io 引擎使用 pync 方式
rwmixwrite=30 在混合读写的模式下,写占 30%
group_reporting 关于显示结果的,汇总每个进程的信息。
此外
lockmem=1g 只使用 1g 内存进行测试。
zero_buffers 用 0 初始化系统 buffer 。
nrfiles=8 每个进程生成文件的数量。
###############################################
顺序读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -threa d -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
随机写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
顺序写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
混合随机读写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
###################
pg_test_fsync :测试磁盘的 fsync 速率。适用于选择最快的 wal_sync_method
ubuntu 14 安装 :apt-get install postgres-xc

<<pg_test_fsync>>