首页 >
数据库 >
mysql
mysql基准测试工具 sysbench
时间:2021-08-17 17:49:42 点击: 来源: 作者:
yum -y install sysbench
echo "* hard nofile 65535
* soft nofile 65535
">>/etc/security/limits.conf
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlim ...
yum -y install sysbench
echo "* hard nofile 65535
* soft nofile 65535
">>/etc/security/limits.conf
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 63389
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 63389
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimitedsysbench --version
sysbench fileio --file-num=10 --file-total-size=50G prepare
sysbench 1.0.17 (using system LuaJIT 2.0.4)
10 files, 1048576Kb each, 10240Mb total
Creating files for the test...
Extra file open flags: (none)
Creating file test_file.0
Creating file test_file.1
Creating file test_file.2
Creating file test_file.3
Creating file test_file.4
Creating file test_file.5
Creating file test_file.6
Creating file test_file.7
Creating file test_file.8
Creating file test_file.9
10737418240 bytes written in 83.49 seconds (122.65 MiB/sec).#这里给出一个每秒写入的数据量122.65MB/s, 这里的写入是顺序写入的,表示磁盘的吞吐量为122.65MB/s。
一般对顺序的读写称为吞吐量,对随机的IO使用IOPS来表示。
ll -h
total 10G
-rw-------. 1 root root 1.0G May 26 18:00 test_file.0
-rw-------. 1 root root 1.0G May 26 18:00 test_file.1
-rw-------. 1 root root 1.0G May 26 18:01 test_file.2
-rw-------. 1 root root 1.0G May 26 18:01 test_file.3
-rw-------. 1 root root 1.0G May 26 18:01 test_file.4
-rw-------. 1 root root 1.0G May 26 18:01 test_file.5
-rw-------. 1 root root 1.0G May 26 18:01 test_file.6
-rw-------. 1 root root 1.0G May 26 18:01 test_file.7
-rw-------. 1 root root 1.0G May 26 18:01 test_file.8
-rw-------. 1 root root 1.0G May 26 18:01 test_file.9数据准备好之后,进行测试:
这里进行随机读写测试:
sysbench fileio --file-num=10 --file-total-size=10G --file-block-size=16384 --file-test-mode=rndrw --file-io-mode=sync --file-extra-flags=direct --time=100 --threads=16 --report-interval=10 run
顺序读的测试:
sysbench fileio --file-num=10 --file-total-size=10G --file-block-size=16384 --file-test-mode=seqrd --file-io-mode=sync --file-extra-flags=direct --time=100 --threads=16 --report-interval=10 run
测试阶段完成之后,需要进行最后的cleanup阶段:
sysbench fileio --file-num=10 --file-total-size=10 cleanup
mysql -uroot -p
create database sbtest; #创建数据库
准备数据,时间比较长,可以把table_size设置的小一点:
sysbench /usr/share/sysbench/oltp_read_write.lua --tables=3 --table_size=10000000 --mysql-user=root --mysql-password=Qian123# --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-db=sbtest prepare
在MySQL shel1中查看数据:
mysql> select count(*) from sbtest1;
mysql> show tables;
sysbench /usr/share/sysbench/oltp_point_select.lua --tables=3 --table_size=10000000 --mysql-user=root --mysql-password=Qian123# --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-db=sbtest --threads=1280 --time=100 --report-interval=5 run
min #最小响应时间
avg #平均响应时间
max #最大响应时间
95th percentile #95%的响应时间是这个数据
–threads=N #指定测试使用多少线程数,默认为1
TPS与QPS的大小基本一致,说明这个lua脚本中的一个查询一般就是一个事务!
清理数据:
sysbench /usr/share/sysbench/oltp_read_write.lua --tables=3 --table_size=10000000 --mysql-user=root --mysql-password=Qian123# --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-db=sbtest cleanup
准备压测数据:
sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password='Qian123#' --mysql-db=sbtest --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=3000 --time=120 prepare
压测
sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password='Qian123#' --mysql-db=sbtest --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=3000 --time=120 run
测试结果导出到文件中,便于后续分析:
sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password='Qian123#' --mysql-db=sbtest --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=3000 --time=120 run >> ./mysysbench.log
”您可通过以下微信二维码,赞赏作者“