不要单纯为了调优而去调优,应该有针对性的去发现不足,解决问题,以提高性能。
所以,调优的前提是做好各种监控分析,包括服务器基础资源使用、各个应用运行状况、代码质量、数据库状况、等等,根据业务的并发,服务器资源,以及存在的问题,有针对性的去优化。
==========正文==============
性能的提升,主要从以下几个方面入手:
1,架构调优
负载均衡,高可用,nginx + tomcat 动静分离,容器化 等, 不具体阐述
2 ,代码调优
(1),代码编写规范。
(2),pmd 、findbug、sonar 等工具,检测问题,并优化。 不具体阐述。
3,tomcat 相关参数优化,jvm调优。
(1),连接数,线程数,缓存,修改server.xml。
打开被注释的默认连接池配置
默认配置:
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
修改实例:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150"
minSpareThreads="100"
prestartminSpareThreads="true"
maxQueueSize="100"/>
参数讲解:
-
name: 线程名称
-
namePrefix: 线程前缀
-
maxThreads : 最大并发连接数,不配置时默认200,一般建议设置500~ 800 ,要根据自己的硬件设施条件和实际业务需求而定。
-
minSpareThreads:Tomcat启动初始化的线程数,默认值25
-
prestartminSpareThreads:在tomcat初始化的时候就初始化minSpareThreads的值, 不设置trueminSpareThreads 的值就没啥效果了 。
-
maxQueueSize: 最大的等待队列数,超过则拒绝请求
修改连接配置
默认配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改配置:
connectionTimeout="20000"
redirectPort="8443"
executor="tomcatThreadPool"
enableLookups="false"
maxIdleTime=
"60000"
acceptCount="100"
maxPostSize="10485760"
acceptorThreadCount="2"
disableUploadTimeout="true"
URIEncoding="utf-8"
keepAliveTimeout ="6000"
maxKeppAliveRequests="500"