0


tomcat maxThread 压力测试 700 并发以内最好

以前一直简单的认为多线程=高效率。其实多线程本身并不能提高 cpu 效率,线程过多反而会降低 cpu 效率。当 cpu 核心数<线程数时,cpu 就需要在多个线程直接来回切换,以保证每个线程都会获得 cpu 时间,即通常我们说的并发执行。所以 **max-threads **的配置绝对不是越大越好。

4cpu 32G 内存,目前测试: 700合适.

tomcat 配置内存分配: JAVA_OPTS="-server -Xmx2g -Xms2g -Xmn512m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Duser.timezone=GMT+8"

里我们分别测试五分钟持续压测情况下200、400、600、800、1000的并发情况

这里我们分别测试1分钟持续压测情况下100、150、200、400、600、800、1000的并发情况

按50用户同时的点击率相当于200用户的在线率计算 :

600并发 为稳定值,即76点击4 = 304人在线为佳, 最高并发1000,支持300点击4= 1200人左右,

800并发开始出现错误,3.8%左右,为服务器返回不稳定。

300-1200人同时在线会卡顿,但系统不崩溃,因为后台用了apr模式 + 线程池技术。

100并发: 吞吐量每秒 9.4 , 页面正常

150:并发: 吞吐量每秒 37-42 , 页面正常

200:并发: 吞吐量每秒 41-51 , 页面正常

300:并发: 吞吐量每秒 41-51 , 页面加载有慢

400:并发: 吞吐量每秒 63 , 页面加载5秒才加载完成。

600:并发: 吞吐量每秒 76 , 页面加载5秒才加载完成,系统正常。

700:并发: 吞吐量每秒 345 ,出错率 1.8% 页面第一次加载5秒加载完成,系统正常。

800:并发: 吞吐量每秒 340 , ,出错率 3.3% 页面第一次加载5秒加载完成,系统正常。

1000:并发: 吞吐量每秒 225 , 页面第一次加载5秒加载完成,系统正常。

在性能稳定的情况下,才可以套用公式去计算出最大并发数

1:稳定状态下,最大 RPS= 793/S

2:稳定情况下,响应时间大约长期保持在160 ms

3:稳定情况下,峰值并发数大约是 793*160(并发数 = RPS * 响应时间)=126

4:稳定情况下,峰值并发=平均并发 + 3*√平均并发,所以得出平均并发大约是 96


并发数 = RPS * 响应时间


本文转载自: https://blog.csdn.net/u012140492/article/details/130802451
版权归原作者 java之迷 所有, 如有侵权,请联系我们删除。

“tomcat maxThread 压力测试 700 并发以内最好”的评论:

还没有评论