使用sysbench压测磁盘io

时间:2022-08-05 03:35:54

Ⅰ、sysbench安装

cd /usr/local/src
yum -y install make automake libtool pkgconfig libaio-devel
git clone https://github.com/akopytov/sysbench.git
cd sysbench
./autogen.sh
./configure
make -j 4
make install
ldconfig /usr/local/mysql/lib [root@VM_42_63_centos sysbench]# sysbench --version;
sysbench 1.1.0-50966c8

Ⅱ、file io测试

2,1 生成测试文件

sysbench fileio --file-num=4 --file-block-size=16384 --file-total-size=110G prepare

2.2 看下参数

[root@VM_42_63_centos data]# sysbench fileio help
sysbench 1.1.0-50966c8 (using bundled LuaJIT 2.1.0-beta3) fileio options:
--file-num=N number of files to create [128]
--file-block-size=N block size to use in all IO operations [16384]
--file-total-size=SIZE total size of files to create [2G]
--file-test-mode=STRING test mode {seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw}
--file-io-mode=STRING file operations mode {sync,async,mmap} [sync]
--file-extra-flags=[LIST,...] list of additional flags to use to open files {sync,dsync,direct} []
--file-fsync-freq=N do fsync() after this number of requests (0 - don't use fsync()) [100]
--file-fsync-all[=on|off] do fsync() after each write operation [off]
--file-fsync-end[=on|off] do fsync() at the end of test [on]
--file-fsync-mode=STRING which method to use for synchronization {fsync, fdatasync} [fsync]
--file-merged-requests=N merge at most this number of IO requests if possible (0 - don't merge) [0]
--file-rw-ratio=N reads/writes ratio for combined test [1.5]

2.3 测两把看看

  • 先看随机读
[root@VM_42_63_centos sysdata]# sysbench fileio \
> --time=180 \
> --threads=24 \
> --file-total-size=110G \
> --file-test-mode=rndrd \
> --file-num=4 \
> --file-extra-flags=direct \
> --file-fsync-freq=0 \
> --file-block-size=16384 \
> run
sysbench 1.1.0-50966c8 (using bundled LuaJIT 2.1.0-beta3) Running the test with following options:
Number of threads: 24
Initializing random number generator from current time Extra file open flags: directio
4 files, 2.5GiB each
10GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random read test
Initializing worker threads... Threads started! Throughput:
read: IOPS=1752.15 27.38 MiB/s (28.71 MB/s)
write: IOPS=0.00 0.00 MiB/s (0.00 MB/s)
fsync: IOPS=0.00 Latency (ms):
min: 0.07
avg: 13.70
max: 687.59
95th percentile: 36.89
sum: 4319633.88
  • 再看随机写
[root@VM_42_63_centos sysdata]# sysbench fileio \
> --time=180 \
> --threads=24 \
> --file-total-size=110G \
> --file-test-mode=rndwr \
> --file-num=4 \
> --file-extra-flags=direct \
> --file-fsync-freq=0 \
> --file-block-size=16384 \
> run
sysbench 1.1.0-50966c8 (using bundled LuaJIT 2.1.0-beta3) Running the test with following options:
Number of threads: 24
Initializing random number generator from current time Extra file open flags: directio
4 files, 2.5GiB each
10GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random write test
Initializing worker threads... Threads started! Throughput:
read: IOPS=0.00 0.00 MiB/s (0.00 MB/s)
write: IOPS=1094.75 17.11 MiB/s (17.94 MB/s)
fsync: IOPS=0.53 Latency (ms):
min: 0.09
avg: 21.92
max: 3376.77
95th percentile: 94.10
sum: 4319984.68

随机读的iops为1752,随机写的iops为1094,读写非对称

清理测试文件用cleanup选项即可

我们主要看随机写的性能哦