在 Debian 上“优化 JSP”一般包含系统层(Debian + JVM)、Web 容器层(Tomcat/Jetty)、JSP/应用层三个方向。下面按实用优先级给你一套可落地的优化方案。
uname -m
# 应为 x86_64 / aarch64
建议 Debian 11/12 + 5.x 内核。
JSP/Tomcat 高并发时容易报 Too many open files
ulimit -n
永久修改:
/etc/security/limits.conf
tomcat soft nofile 65535
tomcat hard nofile 65535
systemctl disable bluetooth
systemctl disable cups
减少资源占用。
apt install openjdk-17-jdk
编辑:
/etc/default/tomcat9
# 或
/usr/share/tomcat9/bin/setenv.sh
示例(4G 内存服务器):
JAVA_OPTS="-Xms2g -Xmx2g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+HeapDumpOnOutOfMemoryError \
-Djava.awt.headless=true"
要点:
-Xms = -Xmx 避免动态扩容<!-- conf/web.xml -->
<servlet>
<servlet-name>jsp</servlet-name>
<init-param>
<param-name>development</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
避免首次访问慢:
jspc 预编译 JSP 为 classjspc-maven-plugin<Connector
port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="200"
minSpareThreads="20"
acceptCount="100"
compression="on"
compressibleMimeType="text/html,text/xml,text/css,application/javascript"
/>
keepAliveTimeout="30000"
maxKeepAliveRequests="100"
✅ 推荐:
❌ 不推荐:
<%
// 大量 Java 代码
%>
<%@ page cache="true" %>
或配合 Nginx 缓存。
location ~ \.jsp$ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
好处:
apt install htop
jstat -gcutil <pid> 1000
jstack <pid> > thread.txt
可视化:
如果你能告诉我:
我可以给你更精确的配置模板。