Fio模拟Mysql服务器IO压力脚本
- 狗尾草 - Erlang非业余研究原创文章,转载请注明: 转载自Erlang非业余研究. 本文链接地址: Fio模拟Mysql服务器IO压力脚本. fio是个非常好用的io压力模拟工具,功能非常齐全, 有兴趣的同学参看 这里. 这里我用fio模拟我们线上mysql服务器的压力来为厂家送来的pci-ssd卡做压力测试,底下是脚本(已经测试正确),也许有的同学有用.
原创文章,转载请注明: 转载自Erlang非业余研究
本文链接地址: Fio模拟Mysql服务器IO压力脚本
fio是个非常好用的io压力模拟工具,功能非常齐全, 有兴趣的同学参看 这里。
这里我用fio模拟我们线上mysql服务器的压力来为厂家送来的pci-ssd卡做压力测试,底下是脚本(已经测试正确),也许有的同学有用。
$ cat mysql-test # QPS: 40000(10 cores) # Dataset: 200G # R/W: 8/2 # ThreadPool Num: 64 # IO ThreadNum: 32 [global] runtime=86400 time_based group_reporting directory=/u03 ioscheduler=deadline thread refill_buffers [mysql-binlog] filename=test-mysql-bin.log bsrange=512-1024 ioengine=sync rw=write size=24G sync=1 rw=write overwrite=1 fsync=100 rate=64K invalidate=1 numjobs=64 [innodb-data] filename=test-innodb.dat bs=16K ioengine=psync rw=randrw size=200G direct=1 rwmixread=80 numjobs=32 rate=3M thinktime=600 thinktime_spin=200 thinktime_blocks=2 [innodb-trxlog] filename=test-innodb.log bsrange=512-2048 ioengine=sync rw=write size=2G fsync=1 overwrite=1 rate=256K invalidate=1 numjobs=64 $ sudo fio mysql-test mysql-binlog: (g=0): rw=write, bs=512-1K/512-1K, ioengine=sync, iodepth=1 ... mysql-binlog: (g=0): rw=write, bs=512-1K/512-1K, ioengine=sync, iodepth=1 innodb-data: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync, iodepth=1 ... innodb-data: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync, iodepth=1 innodb-trxlog: (g=0): rw=write, bs=512-2K/512-2K, ioengine=sync, iodepth=1 ... innodb-trxlog: (g=0): rw=write, bs=512-2K/512-2K, ioengine=sync, iodepth=1 fio 1.50.2 Starting 160 threads ...
要注意的事项是:
1. 对iops的限制是针对每个线程的,总的限制是 限制*线程数
2. 在thinktime_blocks个io开始前先等待thinktime(其中thinktime_spin用于消耗cpu, 剩余时间用于sleep)
3. 每个io需要花费时间。这个时间随着设备的不同差别很大,最好的方法是测试。用一个线程测试,然后用strace查看。
玩得开心!
Post Footer automatically generated by wp-posturl plugin for wordpress.