概述
原创文章,转载请注明: 转载自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.
最后
以上就是阔达蚂蚁为你收集整理的fio模拟mysql写入速度_Fio模拟Mysql服务器IO压力脚本的全部内容,希望文章能够帮你解决fio模拟mysql写入速度_Fio模拟Mysql服务器IO压力脚本所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复