Sysbench测试及说明

安装及说明

安装:

yum install sysbench.x86_64

文档: manual page sample page

相对于单线程的sql-bench(MySQL提供的测试套件), sysbench在CPU, IO, Mutex, Thread等方面具有更为全面和仿真的特性, 在数据库主机中着重测试CPU, IO, Memory方面.

CPU测试

--cpu-max-prime : 基本的素数运算,可以指定大点

sysbench --test=cpu --cpu-max-prime=50000 --num-threads=10 run

Memory测试

默认传输100G大小的数据量,做read/write操作, 可以指定thread数量来测试

sysbench --test=memory --num-threads=10 --memory-total-size=300G run 

IO测试

IO测试的前流程是生成文件,测试,清除文件; 测试条目包括:顺序读/写,随机读/写,混合(随机)读/写等,默认读写比率为1.5.

sysbench --test=fileio --file-total-size=200G  prepare    #生成文件
sysbench --test=fileio --file-total-size=200G --num-threads=10 --file-test-mode=seqrd --max-time=100 --max-requests=0 run  #顺序读
sysbench --test=fileio --file-total-size=200G --num-threads=10 --file-test-mode=rndrd --max-time=100 --max-requests=0 run  #随机读
sysbench --test=fileio --file-total-size=200G --num-threads=10 --file-test-mode=seqwr --max-time=100 --max-requests=0 run  #顺序写
sysbench --test=fileio --file-total-size=200G --num-threads=10 --file-test-mode=rndwr --max-time=100 --max-requests=0 run  #随机写
sysbench --test=fileio --file-total-size=200G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run     #混合随机读写
sysbench --test=fileio --file-total-size=200G  cleanup    #清除文件

多次写测试的过程中, 生成的文件会有很大的变动, 最好在不同的写测试过程中重新生成测试文件.

说明

测试指标相对单一,在CPU和Memory方面,运算和传输本身是很快的,不同参数的指定对结果的影响也很大,可以简单的和其它线上主机做对比来决定测试主机是否可以做应用主机.

对数据库主机方面,IO是很大的瓶颈,可以通过 sysbench, benchyou 等工具对 db 进行持续性压测. 1w转的硬盘+raid5随机写为1k+左右,混合读写会高点,腾讯云ssd 随机 io 2k 左右, 生产环境使用 R640 + (三星或 Intel) ssd 的随机 io 在 1.5w ~ 2.5w 左右.