如何利用mysqlslap测试mysql服务器支持的最大连接数?
发布于 作者:苏南大叔 来源:程序如此灵动~

想把mysql
的最大连接数设置修改成最大最优的?这个就是仁者见仁智者见智的事情了。每个服务器的硬件配置不同,网络环境不同,所能承载的最大连接数也是不同的。mysql
官方提供了mysqlslap
工具,可以辅助运维人员来确定适合自己服务器的最大连接数。

苏南大叔的“程序如此灵动”技术博客,记录苏南大叔的编程经验文章。测试环境:win10
,mysql@5.7.26
,mysqlslap@5.7.26
。
slap
,打脸... 给官方的命名的形象性点赞。
mysqlslap安装
不用刻意安装mysqlslap
程序,它是随着mysql
的安装而自动安装的。也就是理论上来说,有mysql
的地方,就必然有mysqlslap
程序。
当然也可以使用下面的命令,查看mysqlslap
的实际位置:

不识别编码默认选项
mysqlslap
不能识别默认的字符编码设置,会一直报错:
解决方案是:
执行mysqlslap
的时候,加个新的选项--no-defaults
。当然,也可以修改my.cnf
里面的配置,但是,苏南大叔认为这并不科学。

推荐的配置
mysqlslap
的-u
/-p
等设置和mysql
一样,就是要被“打脸”的服务器的配置信息。
执行的语句
在服务器端要执行什么语句?其中几个是属于查询类的?说实话,苏南大叔并不是很清楚要执行什么语句比较合适。所以,选择设置,自动生成sql
语句选项--auto-generate-sql
。
模拟多少客户端
模拟多少客户端,一共有两个设置,
- 一个是说设置多少个客户端
--concurrency
- 另外一个设置一共多少条查询(一个客户端可以执行很多条查询)
--number-of-queries
执行效果
可以先通过修改`配置,设置一个比较大的连接数配置。然后执行
mysqlslap`看看效果。
如果客户端的数量设置的比较多的话,要等一段实际,mysqlslap
才能执行完毕。这个时候会有个统计的结果出现。不过,貌似没有啥特别的用途。

或者观察一下,把--concurrency
设置为多少的时候,服务器会挂掉呢?

最合适的连接数
在使用mysqlslap
打脸的过程中,得到的最佳的max_connections
连接数设置是多少呢?【及时】查看一下status
可能会有所答案。
参考文章:
结束语
当然,mysqlslap
还有更多的参数可供选择。苏南大叔这边就不做叙述了,如果以后有用得到的参数,再做新的文章总结。


