Jmeter 测试mysql性能(实例)

想测试mysql操作某个查询或修改的性能,或其他增删性能,用Jmeter是如何实现的
1、在上一章节了写过下载导入mysql驱动包,这里就不在赘述,具体设置截图如下:
Jmeter 测试mysql性能(实例)
Jmeter 测试mysql性能(实例)
a.variable name
参数名称,与后面的sample中设置的variable name一致。含义为:通过该name指定了对该数据库进行测试
b.connection Pool Configuration:
max number of connections:最大连接数(可以自己查看要测试数据库的最大连接数,不可大于该数:show variables like ‘max_connections%’;)
max wait:最大建立连接的等待时间,大于该时间的话视为请求链接失败
time betweene viction runs:每XX毫秒运行一次空闲连接回收器(独立线程)。
auto commit:事务自动提交,选择yes后,之后的请求sql语句结束后会自动提交;否则不会提交,需要自己手动提交
c.connection validation by pool
当前设置的含义为:每5000毫秒 执行一次select 1 来确认池里面的连接还有效

2、上图中设置的最大连接数,不能大于数据库设置的最大连接数,查询数据库的最大连接数方法如下:
show variables like ‘max_connections%’;
Jmeter 测试mysql性能(实例)
Jmeter 测试mysql性能(实例)
3、查看当前的连接数和并发数
show status like ‘Threads%’;
Jmeter 测试mysql性能(实例)
Threads_connected 跟show processlist结果相同,表示当前连接数,Threads_running是代表当前并发数
Jmeter 测试mysql性能(实例)
4、添加JDBC取样器,这里设置添加了两个,分部测试查询和更新
Jmeter 测试mysql性能(实例)
Jmeter 测试mysql性能(实例)

5.如上设置,20秒并发20个线程,然后查看结果树和聚合报告
Jmeter 测试mysql性能(实例)
Jmeter 测试mysql性能(实例)

对于mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高.

如果max_used_connections跟max_connections相同 那么就是max_connections设置过低或者超过服务器负载上限了,低于10%则设置过大。

MySQL的max_connections参数用来设置最大连接(用户)数。每个连接MySQL的用户均算作一个连接。

MySQL无论如何都会保留一个用于管理员(SUPER)登录的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections。因此MySQL的实际最大可连接数为max_connections+1;
这个参数实际起作用的最大值(实际最大可连接数)为16384,即该参数最大值不能超过16384,即使超过也以16384为准;
增加max_connections参数的值,不会占用太多系统资源。系统资源(CPU、内存)的占用主要取决于查询的密度、效率等;

总体来说,该参数在服务器资源够用的情况下应该尽量设置大,以满足多个客户端同时连接的需求。否则将会出现类似”Too many connections”的错误。