发布时间:2026-02-19
浏览次数:0
参数配置:
网站链接为,https冒号双斜杠两小点org斜杠减九点零杠doc双斜杠http点html句号。
的关键指标
关键指标涵盖吞吐量,还有响应时间,以及错误数,另外包括线程池,再有CPU,还有JVM内存。前三个指标属于我们最为关心的业务指标范围,身为服务器,所要达成的目标是必须能够以既快且优的状态去处理请求这样一种情况,所以吞吐量应当具备较大的数值,响应时间应该维持较短的时长,并且错误数应该保持较少的数量。跟系统资源有关的是后面三个指标,某个资源若出现瓶颈就会对前面的业务指标产生影响,比如说线程池里头线程数量不足会对吞吐量以及响应时间造成影响intellij idea tomcat配置,然而线程数要是太多就会耗费大量CPUintellij idea tomcat配置,这同样会对吞吐量产生影响,当内存不足的时候会触发频繁的GC从而耗费CPU,最终也会在业务指标上体现出来。
通过监控
远程连接
Linux上,在安装目标bin下,新建.sh,重启:
export JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
命令行查看指标
经ps命令查找进程,获取进程ID,通过ps -ef|grep,查看进程状态的大致信息,借助cat/proc/。
用于监控进程的,有关CPU以及内存资源用于使用情况的,执行top -p pid,查看的,关于网络连接的,比如在8080端口上处于监听连接请求状态的,使用- -na|grep 8080。
线程池的并发调优
对于线程池进行调优,这所指的是,要给所给予的线程池去设置恰当合适的参数,借此让线程池能够以又快且又好的状态去处理请求。
参数
描述
(int)线程优先级,默认是5(
.)
()是否线程,默认为true
()线程前缀
(int)线程池中的最大线程数,默认是200
(整型)最小的线程数量(会在线程空闲超出一段时长之后被回收),其默认值是25。
转型为整型的,线程所具备的最大的可空闲时长,一旦超出了这个时长,线程便会被回收掉,一直到线程数量剩余到某个数值,默认的情况是一分钟。
(int)线程池中任务队列的最大长度,默认是.
ads
()是否在线程池启动时就创建个线程,默认为false
.xml中配置线程池
.xml 配置
这里面最为关键核心的要点在于,究竟该如何去确定其值,要是这个参数所设置而成的数值偏小,那么便会出现线程饥饿的情况,并且请求的处理将会在队列之中排队等候,进而致使响应时间变得漫长;倘若参数值设置得过大,同样也是会存在问题的,这是由于服务器的CPU核数是有限的,线程数量过多会使得线程在CPU上来回进行切换,从而耗费大量的切换开销。
理论上,我们能够借助公式,即线程数=CPU核心数 * (1+ 平均等待时间/平均工作时间),算出一个具备指导意义的理想值,此值因受各种资源限制的缘故在实际场景中,我们需于理想的基础之上开展压测,从而获取最佳线程数。
应用中调整参数配置方式
yml中配置
server:
tomcat:
threads:
min-spare: 20
max: 200
connection-timeout: 5000ms
自动配置类
中的mizer类可以对进行定制化修改
@Configuration
public class MyTomcatCustomizer implements
WebServerFactoryCustomizer {
@Override
public void customize(TomcatServletWebServerFactory factory) {
factory.setPort(8090);
factory.setProtocol("org.apache.coyote.http11.Http11NioProtocol");
factory.addConnectorCustomizers(connectorCustomizer());
}
@Bean
public TomcatConnectorCustomizer connectorCustomizer(){
return new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
protocol.setMaxThreads(500);
protocol.setMinSpareThreads(20);
protocol.setConnectionTimeout(5000);
}
};
}
}
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码