您的位置:首页 > 运维架构

sysbench利用fabric磁盘IO测试

2016-01-07 01:52 405 查看
利用sysbench测试磁盘IO:

10台机器并发测试,一台fabric控制server,控制端需要安装fabric,测试server安装sysbench,测试时生成15G的测试文件;测试案例如下:
fabric的远程管理,可以看一下上篇博文:
http://xujunxian.blog.51cto.com/8614409/1730780



测试执行:
1、创建11台ubuntu台虚拟机,1台安装fabric,10台安装sysbench,并配置好IP地址,fabric需要直接访问安装sysbench的机器
2、将脚本fabric.py 拷贝至fabric服务器中,并运行命令:
fab sysbench>fabric.log测试完成后根据生成日志填入测试表中(填写10台总io)
脚本如下:
vim fabfile.py
from fabric.api import run
from fabric.context_managers import env
from fabric.context_managers import cd

env.hosts = ['10.32.32.30','10.32.32.31','10.32.32.32','10.32.32.33','10.32.32.34','10.32.32.35','10.32.32.36','10.32.32.37','10.32.32.38','10.32.32.39']
env.user = 'root'
env.password = '1qaz@WSX'
env.parallel = True

def host_type():
run('uname -s && ls -alh')

def sysbench():
with cd('/home/'):
run('echo block 512 threads=1 mode=rndrd')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=512 --init-rng=on --file-total-size=15G --file-test-mode=rndrd run')
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 512 threads=32 mode=rndrd')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=512 --init-rng=on --file-total-size=15G --file-test-mode=rndrd run')
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 4096 threads=1 mode=rndrd')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=4096 --init-rng=on --file-total-size=15G --file-test-mode=rndrd run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 4096 threads=32 mode=rndrd')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=4096 --init-rng=on --file-total-size=15G --file-test-mode=rndrd run')
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 65536 threads=1 mode=rndrd')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=65536 --init-rng=on --file-total-size=15G --file-test-mode=rndrd run')
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 65536 threads=32 mode=rndrd')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=65536 --init-rng=on --file-total-size=15G --file-test-mode=rndrd run')
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 512 threads=1 mode=rndrw')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=512 --init-rng=on --file-total-size=15G --file-test-mode=rndrw run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 512 threads=32 mode=rndrw')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=512 --init-rng=on --file-total-size=15G --file-test-mode=rndrw run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 4096 threads=1 mode=rndrw')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=4096 --init-rng=on --file-total-size=15G --file-test-mode=rndrw run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 4096 threads=32 mode=rndrw')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=4096 --init-rng=on --file-total-size=15G --file-test-mode=rndrw run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 65536 threads=1 mode=rndrd')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=65536 --init-rng=on --file-total-size=15G --file-test-mode=rndrw run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 65536 threads=32 mode=rndrd')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=65536 --init-rng=on --file-total-size=15G --file-test-mode=rndrw run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 512 threads=1 mode=rndrd flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=512 --init-rng=on --file-total-size=15G --file-test-mode=rndrd --file-extra-flags=direct run')
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 512 threads=32 mode=rndrd  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=512 --init-rng=on --file-total-size=15G --file-test-mode=rndrd --file-extra-flags=direct run')
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 4096 threads=1 mode=rndrd  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=4096 --init-rng=on --file-total-size=15G --file-test-mode=rndrd --file-extra-flags=direct run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 4096 threads=32 mode=rndrd  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=4096 --init-rng=on --file-total-size=15G --file-test-mode=rndrd --file-extra-flags=direct run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 65536 threads=1 mode=rndrd  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=65536 --init-rng=on --file-total-size=15G --file-test-mode=rndrd --file-extra-flags=direct run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 65536 threads=32 mode=rndrd  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=65536 --init-rng=on --file-total-size=15G --file-test-mode=rndrd --file-extra-flags=direct run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 512 threads=1 mode=rndrw flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=512 --init-rng=on --file-total-size=15G --file-test-mode=rndrw --file-extra-flags=direct run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 512 threads=32 mode=rndrw  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=512 --init-rng=on --file-total-size=15G --file-test-mode=rndrw --file-extra-flags=direct run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 4096 threads=1 mode=rndrw  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=4096 --init-rng=on --file-total-size=15G --file-test-mode=rndrw --file-extra-flags=direct run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 4096 threads=32 mode=rndrw  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=4096 --init-rng=on --file-total-size=15G --file-test-mode=rndrw  --file-extra-flags=direct run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 565536 threads=1 mode=rndrw  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=1 --file-block-size=65536 --init-rng=on --file-total-size=15G --file-test-mode=rndrw --file-extra-flags=direct run' )
run('sysbench --test=fileio --file-total-size=15G cleanup')

run('echo block 65536 threads=32 mode=rndrw  flag=direct')
run('sysbench --test=fileio --file-total-size=15G prepare')
run('sysbench --max-time=300 --max-requests=0 --test=fileio --num-threads=32 --file-block-size=65536 --init-rng=on --file-total-size=15G --file-test-mode=rndrw  --file-extra-flags=direct run')
run('sysbench --test=fileio --file-total-size=15G cleanup')
参数详解:
sysbench --max-time=300 测试时间5分钟,不用更改
--num-threads=1 测试进程,更需需要测试的项目进行更改
--file-block-size=512 块儿大小,需要根据测试需求更改
Rndrd 为随机读,rndrw为随机读写,根据需求测试
--file-extra-flags=direct 根据测试需求添加
--file-num=N 代表生成测试文件的数量,默认为128。
--file-block-size=N 测试时所使用文件块的大小,如果想磁盘针对innodb存储引擎进行测试,可以将其设置为16384,即innodb存储引擎页的大小。默认为16384。
--file-total-size=SIZE 创建测试文件的总大小,默认为2G大小。
--file-test-mode=STRING 文件测试模式,包含:seqwr(顺序写), seqrewr(顺序读写), seqrd(顺序读), rndrd(随机读), rndwr(随机写), rndrw(随机读写)。
--file-io-mode=STRING 文件操作的模式,sync(同步),async(异步),fastmmap(快速mmap),slowmmap(慢速mmap),默认为sync同步模式。
--file-async-backlog=N 对应每个线程队列的异步操作数,默认为128。
--file-extra-flags=STRING 打开文件时的选项,这是与API相关的参数。
--file-fsync-freq=N 执行fsync()函数的频率。fsync主要是同步磁盘文件,因为可能有系统和磁盘缓冲的关系。 0代表不使用fsync函数。默认值为100。
--file-fsync-all=[on|off] 每执行完一次写操作,就执行一次fsync。默认为off。
--file-fsync-end=[on|off] 在测试结束时执行fsync函数。默认为on。
--file-fsync-mode=STRING文件同步函数的选择,同样是和API相关的参数,由于多个操作系统对于fdatasync支持不同,因此不建议使用fdatasync。默认为fsync。
--file-merged-requests=N 大多情况下,合并可能的IO的请求数,默认为0。
--file-rw-ratio=N 测试时的读写比例,默认时为1.5,即可3:2。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  存储 压力测试 IOPs