首页 > 数据库 > mysql > 正文

mysql基准测试工具 sysbench
2021-08-17 17:49:42 点击:

yum -y install sysbenchecho "* hard nofile 65535* soft nofile 65535">> etc security limits confulimit -acore file siz
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) unlimited



sysbench --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


相关热词搜索:sysbench mysql

上一篇:mysql添加用户并授权
下一篇:最后一页