技术标签: MySQL sysbench 基准测试 服务器 mysql
因为公司技术部是小作坊规模,没有专业的数据库管理员和专业的运维人员,所以这些就是我后端的工作,所以我就自己瞎搞,但是总感觉至少要对数据库在当前的硬件条件和配置下有一个基本的性能有个了解,网上找了很多博文,有的版本过老,但是各有可参考的价值,我这里根据自己的需求写一份,主要是安装,使用,和测试目标
一.测试目标
1.获取性能参数
2.网络对性能影响(因为公司服务器不是都在一个局域网内,有的程序需要外网访问数据库)
二.mysql硬件环境及软件版本
服务器类型:华为云服务器
硬件参数: CPU:4核 内存:8G 系统盘:80G 挂载盘:3T
MySQL版本:5.7.26 (安装可以自行百度)
三.sysbench 安装
这个是获取最新新的版本,这种安装比较方便
yum install sysbench
通过:sysbench --version 查看是否安装成功
sysbench 参数说明请查看这篇博文:https://blog.51cto.com/bilibili/2173243
四.测试
1.测试数据准备
sysbench /usr/share/sysbench/oltp_read_write.lua --time=180 --mysql-host=192.168.100.127 --mysql-port=33506 --mysql-user=test --mysql-password=123456 --mysql-db=pcms --table-size=500000 --tables=15 --threads=8 prepare
2.开始测试
局域网内测试
sysbench /usr/share/sysbench/oltp_read_write.lua --time=180 --mysql-host=127.0.0.1 --mysql-port=43306 --mysql-user=test --mysql-password=123456 --mysql-db=test --table-size=500000 --tables=15 --threads=15 --report-interval=10 run >> /tmp/sysbenchMysql.log
sysbench 1.0.17 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 15
Report intermediate results every 10 second(s)
Initializing random number generator from current time
Initializing worker threads...Threads started!
[ 10s ] thds: 15 tps: 1000.31 qps: 20024.55 (r/w/o: 14019.07/4003.35/2002.13) lat (ms,95%): 23.52 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 15 tps: 1133.51 qps: 22677.94 (r/w/o: 15874.26/4536.65/2267.02) lat (ms,95%): 20.37 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 15 tps: 1222.80 qps: 24450.38 (r/w/o: 17114.76/4890.12/2445.51) lat (ms,95%): 18.61 err/s: 0.00 reconn/s: 0.00
[ 40s ] thds: 15 tps: 1239.30 qps: 24794.12 (r/w/o: 17355.85/4959.58/2478.69) lat (ms,95%): 18.28 err/s: 0.00 reconn/s: 0.00
[ 50s ] thds: 15 tps: 1258.82 qps: 25175.07 (r/w/o: 17622.96/5034.47/2517.64) lat (ms,95%): 17.95 err/s: 0.00 reconn/s: 0.00
[ 60s ] thds: 15 tps: 1297.58 qps: 25952.98 (r/w/o: 18166.67/5191.14/2595.17) lat (ms,95%): 17.32 err/s: 0.00 reconn/s: 0.00
[ 70s ] thds: 15 tps: 1299.12 qps: 25974.88 (r/w/o: 18184.14/5192.60/2598.15) lat (ms,95%): 17.01 err/s: 0.00 reconn/s: 0.00
[ 80s ] thds: 15 tps: 1277.58 qps: 25546.23 (r/w/o: 17880.47/5110.61/2555.15) lat (ms,95%): 17.32 err/s: 0.00 reconn/s: 0.00
[ 90s ] thds: 15 tps: 1258.04 qps: 25170.11 (r/w/o: 17621.16/5032.76/2516.18) lat (ms,95%): 17.95 err/s: 0.00 reconn/s: 0.00
[ 100s ] thds: 15 tps: 1291.35 qps: 25826.83 (r/w/o: 18077.45/5166.69/2582.69) lat (ms,95%): 17.32 err/s: 0.00 reconn/s: 0.00
[ 110s ] thds: 15 tps: 1236.71 qps: 24738.07 (r/w/o: 17315.99/4948.55/2473.53) lat (ms,95%): 17.95 err/s: 0.00 reconn/s: 0.00
[ 120s ] thds: 15 tps: 1317.98 qps: 26355.11 (r/w/o: 18449.73/5269.52/2635.86) lat (ms,95%): 16.71 err/s: 0.00 reconn/s: 0.00
[ 130s ] thds: 15 tps: 1299.33 qps: 25991.09 (r/w/o: 18192.69/5199.74/2598.67) lat (ms,95%): 17.01 err/s: 0.00 reconn/s: 0.00
[ 140s ] thds: 15 tps: 1282.60 qps: 25646.41 (r/w/o: 17953.53/5127.68/2565.19) lat (ms,95%): 17.32 err/s: 0.00 reconn/s: 0.00
[ 150s ] thds: 15 tps: 1304.99 qps: 26103.03 (r/w/o: 18271.31/5221.75/2609.97) lat (ms,95%): 17.01 err/s: 0.00 reconn/s: 0.00
[ 160s ] thds: 15 tps: 1325.80 qps: 26509.77 (r/w/o: 18557.55/5300.61/2651.61) lat (ms,95%): 16.71 err/s: 0.00 reconn/s: 0.00
[ 170s ] thds: 15 tps: 1281.29 qps: 25630.90 (r/w/o: 17941.26/5127.06/2562.58) lat (ms,95%): 17.63 err/s: 0.00 reconn/s: 0.00
[ 180s ] thds: 15 tps: 1307.89 qps: 26155.60 (r/w/o: 18309.19/5230.74/2615.67) lat (ms,95%): 17.01 err/s: 0.00 reconn/s: 0.00
SQL statistics:
queries performed:
read: 3169138
//总select数量
write: 905468
//总update、insert、delete语句数量
other: 452734
//commit、unlock tables以及其他mutex的数量
total: 4527340
transactions: 226367 (1257.48 per sec.)
//通常需要关注的数字(TPS)
queries: 4527340 (25149.53 per sec.)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)General statistics:
total time: 180.0153s
//即max-time指定的压测实际
total number of events: 226367
//总的事件数,一般与transactions相同
Latency (ms):
min: 3.97
avg: 11.93
//95%的语句的平均响应时间
max: 230.39
95th percentile: 17.95
sum: 2699503.77Threads fairness:
events (avg/stddev): 15091.1333/33.63
execution time (avg/stddev): 179.9669/0.01
外网测试
sysbench /usr/share/sysbench/oltp_read_write.lua --time=180 --mysql-host=130.12.22.12--mysql-port=6306 --mysql-user=test --mysql-password=123456--mysql-db=test --table-size=500000 --tables=15 --threads=15 --report-interval=10 run >> /tmp/sysbenchMysql.log
外网ping 数据库服务器结果
sysbench 1.0.17 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 15
Report intermediate results every 10 second(s)
Initializing random number generator from current time
Initializing worker threads...Threads started!
[ 10s ] thds: 15 tps: 23.09 qps: 476.78 (r/w/o: 336.01/93.18/47.59) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 15 tps: 23.30 qps: 470.32 (r/w/o: 330.31/93.30/46.70) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 15 tps: 22.80 qps: 453.00 (r/w/o: 315.50/92.10/45.40) lat (ms,95%): 846.57 err/s: 0.00 reconn/s: 0.00
[ 40s ] thds: 15 tps: 24.00 qps: 478.00 (r/w/o: 335.10/94.80/48.10) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 50s ] thds: 15 tps: 23.80 qps: 474.00 (r/w/o: 331.70/94.70/47.60) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 60s ] thds: 15 tps: 23.70 qps: 476.80 (r/w/o: 333.90/95.40/47.50) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 70s ] thds: 15 tps: 23.70 qps: 474.20 (r/w/o: 331.80/95.00/47.40) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 80s ] thds: 15 tps: 23.80 qps: 476.40 (r/w/o: 333.30/95.50/47.60) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 90s ] thds: 15 tps: 23.80 qps: 475.50 (r/w/o: 333.00/95.10/47.40) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 100s ] thds: 15 tps: 23.60 qps: 473.10 (r/w/o: 331.20/94.60/47.30) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 110s ] thds: 15 tps: 23.90 qps: 477.90 (r/w/o: 334.60/95.40/47.90) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 120s ] thds: 15 tps: 23.70 qps: 471.40 (r/w/o: 329.70/94.50/47.20) lat (ms,95%): 707.07 err/s: 0.00 reconn/s: 0.00
[ 130s ] thds: 15 tps: 23.90 qps: 477.80 (r/w/o: 334.50/95.30/48.00) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 140s ] thds: 15 tps: 24.00 qps: 478.70 (r/w/o: 334.60/96.20/47.90) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 150s ] thds: 15 tps: 23.60 qps: 476.10 (r/w/o: 333.60/95.30/47.20) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 160s ] thds: 15 tps: 23.60 qps: 472.20 (r/w/o: 331.70/93.20/47.30) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 170s ] thds: 15 tps: 23.90 qps: 476.10 (r/w/o: 332.80/95.60/47.70) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
[ 180s ] thds: 15 tps: 24.10 qps: 480.30 (r/w/o: 335.10/96.90/48.30) lat (ms,95%): 694.45 err/s: 0.00 reconn/s: 0.00
SQL statistics:
queries performed:
read: 59892
write: 17112
other: 8556
total: 85560
transactions: 4278 (23.68 per sec.)
queries: 85560 (473.61 per sec.)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)General statistics:
total time: 180.6521s
total number of events: 4278Latency (ms):
min: 543.21
avg: 632.34
max: 1634.02
95th percentile: 694.45
sum: 2705150.07Threads fairness:
events (avg/stddev): 285.2000/24.38
execution time (avg/stddev): 180.3433/0.18
3.测试结果对比(关键数据对比)
局域网 | 外网 | |
transactions | 226367 (1257.48 per sec.) | 4278 (23.68 per sec.) |
queries | 4527340 (25149.53 per sec.) | 85560 (473.61 per sec.) |
avg(ms) | 11.93 | 632.34 |
4.对应目标结论
1)测试结果的性能数据基本满足当前业务,和一段时间内业务增长后的性能需求。
2)远程连接数据库对性能有很大的影响,所以高并发的服务还是放在局域网内。
四.结论
sysbench 基准测试结果并不能完全衡量一个系统的性能,可以作为一种对比的参照,比如硬件差别,系统配置差异(比如mysql的配置文件,可以不断调整配置参数,通过sysbench检测差异),网络差异等因素带来的影响。预估mysql的性能与业务需求的性能,作为一种简单,快捷,成本低的参考数据来源。这些都是一些个人之见,这些测试都是为了当前工作需要,随着公司的发展,会聘请专业人士解决,毕竟这个测试涉及知识层面太过于浅薄。
文章浏览阅读5.5k次,点赞26次,收藏9次。在曲折地安装完graphviz之后,运行代码时出现这个问题(安装graphviz的教程:https://blog.csdn.net/wyx100/article/details/80253072or https://blog.csdn.net/Snowy_susu/article/details/90439423?ops_request_misc=&request_id=&..._invocationexception: program terminated with status: 1. stderr follows: form
文章浏览阅读4k次。环境:Elasticsearch:7.4.1Springboot:2.2.1Spring-data-elasticsearch:3.2.0IDE:STS_3.9.2.RELEASEpom.xml配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0..._spring data elasticsearch health check close spring 3.2
文章浏览阅读2.4k次,点赞2次,收藏11次。文章目录1.软硬件连接2.图形化编程块3.代码块4.实验成果实验材料与环境1、硬件Arduino开发板、舵机SG90、RFID-RC522读卡器、校园卡、杜邦线若干2、软件Mixly IDE(下载地址:https://pan.baidu.com/s/1vKnY-vC4LU0qMFitArEXfw提取码:tbfe)实验内容【1】读取校园卡ID号。【2】读取到指定校园卡时S..._csdnrfidmixly
文章浏览阅读53次。springboot基于Springboot的企业cms内容管理系统。springboot基于Vue和Springboot的会议室管理系统。开发软件:eclipse/myeclipse/idea。springboot中小型企业物流管理系统的设计与实现。springboot微信小程序的食谱大全“食全食美”springboot基于微信小程序的舟袍设计工作室。ssm基于web的佳茗天香茶品销售平台的设计与实现。springboot医考答题练习系统的设计与实现。springboot微信小程序的火锅店点餐系统。_基于web的多媒体素材管理系统zip
文章浏览阅读1k次。通常我们实现动画效果会用到CSS中的class类,这也是比较基本的方式实现动画。_vue 动画
文章浏览阅读340次。亲爱的读者们,我们今天非常荣幸地向大家推荐一本全新力作——《从ROS1到ROS2无人机编程实战指南》。这本书站在初学者的角度,从入门到进阶,再到实战,循序渐进,是学习ROS1和ROS2的最佳选择。如今已在全国范围内上市,购书即可享受次日达的快捷服务!本书的创作初衷源于帮助那些渴望投身于无人机或机器人开发的初学者。目前,国内关于ROS的书籍相当稀缺,大部分都是国外翻译版,内容可能更偏向于机器人学的公..._从ros1到ros2无人机编程实战指南
文章浏览阅读1.1w次,点赞5次,收藏41次。通过前面的文章我们已经知道我们为什么要搭建HomeAssistant,那么本篇文章我们就来给大家讲解如何通过群辉NAS的Docker搭建HomeAssistant,以及其基本的配置和使用。_群晖接入米家
文章浏览阅读9.2k次,点赞7次,收藏13次。Windows 10下载安装openjdk及环境变量配置(以openjdk 8为例)Windows 10下载安装openjdk及环境变量配置下载地址https://www.azul.com/downloads/zulu-community/?package=jdk安装双击已下载的安装包点击Next,安装目录可以自己定义点击Next进入安装界面进行安装安装完成后显示如下界面设置环境变量1.进入环境变量配置界面1.右键点击计算机–>属性–>高级系统设置–>高级_openjdk环境变量配置
文章浏览阅读1.7k次,点赞2次,收藏15次。如何打印模型_python打印模型
文章浏览阅读498次,点赞14次,收藏4次。伦茨、KEB、西门子、力士乐、施耐德电气、、鲍米勒、丹佛斯、派克、三菱、Allen Bradley、ABB、罗克韦尔、东芝、Gerfan、松下、Proface、台达、Beckhoff、Omron欧姆龙、Sumitomo住友、Sodick沙迪克、SedoTreepoint、WEINVIEW威纶通、Axiomtek艾讯、Portwell瑞传、Laetus.......等各大知名进口品牌工控机。W275 x H206 x D38.2 毫米 [W10.85 x H8.11 x D1.50 英寸]
文章浏览阅读4.3k次。Apipost是一个用于Web开发的接口调试工具,由国人开发。目前版本:7.0类似的产品还有,不过个人感觉功能上不如Apipost好用。_apipost上传文件接口
文章浏览阅读389次,点赞10次,收藏10次。案例,生成的巡检报告邮件。