tomcat用JMeter压力测试大并发报错 Cannot get Jedis connection
1.用Jmeter测试100线程,系统正常,访问有点一慢而已
2.再Jmeter测试200线程,部分正常,部分报错 Cannot get Jedis connection,错误信息: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionExcep,如下图
3.网上查资料说修改redis连接JedisPoolConfig参数
redis.maxTotal=1000 原来是200改成1000 ,这个参数要大于请求线程并发数
redis.maxIdle=500 原来是50改成500
4.重启tomcat再次用Jmeter测试200线程 ,出现另外一个错,报 read time out 错:Read timed out; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out 如下图
5.再修改redis连接JedisConnectionFactory参数
redis.time0ut=30000 原来这个参数没有设置,系统默认是2000 (2秒) 改成30000(30秒)
6.重启tomcat再次用Jmeter测试200线程,测试正常,一边测试一边手动打开页面有点慢.
7.再测试500,800,1000线程,会有大量的请求失败,测试也没有意义了,一般来说如果单个tomcat并发数每秒超过200应该想办法Nginx用负载均衡来解决,
欢迎加入JAVA技术交流QQ群:179945282
欢迎加入ASP.NET(C#)交流QQ群:17534377