学习笔记 1.高性能编程 3.2.3 Tomcat参数调优

阅读: 评论:0

学习笔记 1.高性能编程 3.2.3 Tomcat参数调优

学习笔记 1.高性能编程 3.2.3 Tomcat参数调优

对于Tomcat的参数调优主要有下面4个主要的方向

配置项默认建议注意
Connection Timeout20s减少 
MaxThreads处理连接的最大线程数200增加不是越大越好
acceptCount(backlog)等待接收accept的请求数量限制100增加socket参数min(accept,/proc/sys/net/core/somaxconn)
maxConnections最大连接处理数

nio 1w

apr 8192

不变 

1、 测试环境准备 jmeter地址: .cgi

下载地址://jmeter/binaries/apache­jmeter5.0.zip

教程:.html

测试脚本:WebDemo测试用例.jmx       

                    
2、 连接数 调整 总共连接数 = acceptCount+ connections  

connections: Tomcat能接收的请求限制;  

acceptCount: 超过Tomcat能接收的请求数以后,堆积在操作系统的数量(windows 和 linux 略有不同);

用户请求首先进入accept队列中,Tomcat开始接受连接,当接受的连接达到最大值以后,也就是这些请求正在处理,当Tomcat接受的请求数量化已经达到最大值,就会向操作系统层面堆积进入acceptCount,在windows下当acceptCount和Connections都已经达到最大值,windows就会不让再进行连接,linux环境下则不同因为linux环境中有一个握手的队列,所以会在SYN queue中堆积一些数据,但是基本上不会进行对操作系统层面上进行调整,主要是对connections调整。

 


2.1 什么时候需要调整connections?如何调整?

connections小于maxThread的时候;需要调大;最好是比预期的最高并发数要大20%;反 正是堆积到tomcat的work处理线程池中(堆积占内存);

2.2 什么时候需要调整acceptCount?

想受理更多用户请求,却又不想堆积在tomcat中,利用操作系统来高效的堆积,可以调整为  最高并发数 ­ connections; 实际上不需要调整,tomcat默认100,linux默认128;最好是把连接控制交给应用程序,这 样方便管理。
启动方式: java ­jar web­demo­1.1.0.jar ­­at.max­connections=1 ­at.max­thread=1 ­­at.acceptCount=1
3、 并发处理线程数 调整 线程太少,CPU利用率过低,程序的吞吐量变小,资源浪费,容易堆积。 线程太多,上下文频繁切换,性能反而变低。

3.1 线程数调为多少合适?

场景代入:服务器配置2核,不考虑内存问题。收到请求,java代码执行耗时50ms,等待数 据返回50ms

理想的线程数量= (1 + 代码阻塞时间/代码执行时间) * cpu数量  

实际情况是跑起代码,压测环境进行调试。不断调整线程数,将CPU打到80~90%的利用 率。 java ­jar web­demo­1.1.0.jar ­­at.max­threads=500  

上面的公式的意思很简单,就是为了将CPU的使用效率达到最高,一个CPU的情况下,一个线程执行50ms后需要睡眠100ms,在这个线程睡眠的时候,可以让别的线程来执行,可以让两个线程执行完,两个线程执行完成后,睡眠的线程苏醒,继续执行,所以需要3个线程就可以让这个CPU一直处于工作状态。                                                                                                                  

4、 总结 请求多,CPU占用率高了,如果能接受很慢的响应,就加大。 否则就集群分流 认清现实,优化代码才是王道,配置只能是锦上添花!

下面是Tomcat的架构层

本文发布于:2024-01-31 15:14:25,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170668526829437.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:高性能   学习笔记   参数   Tomcat
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23