热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者比较重要的内容,希望大家能够喜欢,不足之处请大家多提宝贵地意见,我们一起提升,守住自己的饭碗。
引言
Sysbench是一款开源免费的数据库性能压测工具,在对Oracle、MySQL和PostgreSQL等数据库的性能测试方面表现卓越。它功能强大且使用便捷,能够对数据库性能展开全面测试,从而为后续的数据库性能评估与优化工作提供有力支持。
Sysbench内置了大量实用的测试用例,同时还支持用户进行自定义扩展。无论是针对服务器环境,还是数据库的读、写、混合操作,它都可以实现完整的性能压测。值得一提的是,Sysbench的测试用例由Lua脚本提供,这种脚本易于编写和使用,极大地提高了测试效率,为用户带来了极大的便利。
默认支持MySQL,如果需要测试Oracle/PostgreSQL,则在configure时需要加上–with-oracle或者–with-pgsql参数
一、安装SysBench
下载地址:
“https://github.com/akopytov/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%的事件都能在这个时间内完成。 含义理解:该指标用于了解系统在高负载下的性能表现,能帮助识别潜在的性能瓶颈。 总结
文中的概念来源于互联网,如有侵权,请联系我删除。
欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。如果觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。




