引言
Sysbench是一款开源免费的数据库性能压测工具,在对Oracle、MySQL和PostgreSQL数据库的性能测试方面表现卓越。它功能强大且使用便捷,能够对数据库性能展开全面测试,从而为后续的数据库性能评估与优化工作提供有力支持。
Sysbench内置了大量实用的测试用例,同时还支持用户进行自定义扩展。无论是针对服务器环境,还是数据库的读、写、混合操作,它都可以实现完整的性能压测。值得一提的是,Sysbench的测试用例由Lua脚本提供,这种脚本易于编写和使用,极大地提高了测试效率,为用户带来了极大的便利。
一、安装SysBench
下载地址:
大家也可以从我的网盘进行下载
链接: https://pan.baidu.com/s/1-QyMdmojXb9xUZ8eGbSIZQ
提取码: 78kr
安装依赖
[root@myoracle ~]# yum -y install make automake libtool pkgconfig libaio-devel openssl-devel mysql-devel
解压
[root@myoracle ~]# unzip sysbench-master.zip [root@myoracle sysbench-master]# ./autogen.sh
编译安装
[root@myoracle sysbench-master]# ./configure
[root@myoracle sysbench-master]# make -j
[root@myoracle sysbench-master]# make install
查看是否安装成功
[root@myoracle sysbench-master]# sysbench --version
安装完成后,压测脚本默认会安装在 /usr/local/share/sysbench 目录下
二、操作系统层面的压力测试:
测试CPU写入速度
测试内存写入速度
[root@myoracle sysbench]# sysbench cpu --cpu-max-prime=10000 --threads=4 run
测试内存写入速度
[root@myoracle ~]# sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=read run
测试内存写入速度
[root@myoracle ~]# sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=write --memory-access-mode=rnd run
测试内存多线程
[root@myoracle ~]# sysbench memory --memory-total-size=10G --memory-block-size=8k --threads=100 run
IO测试
[root@myoracle ~]# sysbench fileio --file-total-size=1G prepare
[root@myoracle ~]# sysbench --time=300 --threads=2 fileio --file-total-size=10G --file-num=2 --file-block-size=512 --file-test-mode=seqwr run
三、数据库层面测试:
准备测试数据
root@localhost:(none)>create database testdb;[root@myoracle sysbench-master]# sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=testdb --table_size=1000000 --tables=20 --time=300 oltp_read_write prepare
执行测试用例
[root@myoracle sysbench-master]# sysbench oltp_read_write --mysql-socket=/tmp/mysql.sock --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=testdb --threads=8 --time=60 run
清理测试数据
[root@myoracle sysbench-master]# sysbench oltp_read_write --mysql-socket=/tmp/mysql.sock --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=testdb --tables=10 cleanup
以下是对这段内容的重点梳理与总结:
四、重点指标介绍
1. QPS(每秒查询率)
- 定义:是对特定查询服务器在规定时间内处理流量多少的衡量标准,对应fetches/sec,即每秒的响应请求数,也代表着最大吞吐能力。例如在因特网上,常被用于衡量域名系统服务器的性能。
- 含义理解:可简单理解为每秒能处理的查询请求数量。
2. TPS(每秒事务数)
- 定义:是软件测试结果的测量单位,一个事务指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机从发送请求开始计时,收到服务器响应后结束计时,依此来计算完成的事务个数。
- 含义理解:即每秒能够完成的完整事务数量,一个事务包含从客户机发起到服务器响应的整个过程。
3. 95% event的执行耗时
- 定义:表示95%的事件都能在这个时间内完成。
- 含义理解:该指标用于了解系统在高负载下的性能表现,能帮助识别潜在的性能瓶颈。
指标间关系
- 在某些简单的请求响应场景中,每个请求就是一个事务,此时QPS和TPS可以是等价的。
- 但在复杂系统里,如电商网站,一个事务可能包含浏览商品、添加购物车、下单、支付等多个步骤,每个步骤又可能产生多个请求,所以通常TPS会小于QPS。
注意事项
在评估系统性能时,不能仅关注QPS和TPS,还需综合考虑其他因素,如响应时间、错误率、资源利用率等。这些因素共同影响着系统整体性能的评估。
欢迎关注公众号《小周的数据库进阶之路》,更多精彩知识和干货尽在其中。
版权归原作者 我科绝伦(Huanhuan Zhou) 所有, 如有侵权,请联系我们删除。