Debian系统优化JSP响应时间的综合策略
free -h命令查看内存使用情况,根据应用需求调整/etc/default/tomcatX中的CATALINA_OPTS参数(如-Xms2048m -Xmx4096m)分配JVM堆内存。/etc/tomcatX/server.xml中配置:<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000" redirectPort="8443" />
<Connector port="8443" protocol="org.apache.coyote.http2.Http2Protocol"
SSLEnabled="true" maxThreads="150">
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
certificateFile="conf/localhost-rsa-cert.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
Executor定义线程池,优化maxThreads(最大线程数,如500)、minSpareThreads(最小空闲线程数,如50)、acceptCount(等待队列大小,如100),避免线程阻塞或过多创建。配置示例如下:<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="50" maxQueueSize="100" />
<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" />
-Xms)和最大堆(-Xmx)(如-Xms2048m -Xmx2048m),避免频繁垃圾回收(GC)导致的停顿。export CATALINA_OPTS="-Xms2048m -Xmx2048m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
-XX:MetaspaceSize)和最大大小(-XX:MaxMetaspaceSize),避免元空间溢出。javac命令或Tomcat的jasper工具编译:javac -d /path/to/classes -sourcepath /path/to/src /path/to/src/*.jsp
web.xml中配置JSP页面缓存,减少重复编译:<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
</jsp-property-group>
</jsp-config>
SELECT *,只查询必要字段;为常用查询字段添加索引;使用分页(LIMIT)减少大数据量查询的响应时间。HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
config.setUsername("user");
config.setPassword("pass");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
HikariDataSource dataSource = new HikariDataSource(config);
<%@ page cache="true" %>指令或过滤器实现。Cache-Control头),减少静态资源(CSS、JS、图片)的重复加载。server.xml中启用GZIP压缩,减少传输数据量(对HTML、CSS、JS等文本资源有效):<Connector port="8080" protocol="HTTP/1.1"
compression="on" compressableMimeType="text/html,text/xml,text/plain,application/json" />
/etc/sysctl.conf文件,优化TCP连接性能:net.core.somaxconn = 4096 # 增加监听队列长度
net.ipv4.tcp_tw_reuse = 1 # 允许重用TIME_WAIT状态的连接
net.ipv4.tcp_max_syn_backlog = 4096 # 增加SYN队列长度
执行sysctl -p使配置生效。access_log(访问日志)和catalina.out(应用日志),识别慢请求(如SQL查询慢、接口超时)。