优化 Debian 上 JSP(Java Server Pages)性能,通常要从 操作系统、JVM、Web 容器、JSP 编译、应用架构 等多个层面入手。下面给你一套比较系统、可落地的优化方案。
systemctl list-units --type=service
systemctl disable xxx
减少 CPU / 内存消耗。
JSP 应用(Tomcat/Jetty)并发高时容易受限制。
ulimit -n
永久修改:
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
java -version
/opt/tomcat/bin/setenv.sh
export JAVA_OPTS="-server
-Xms2g
-Xmx2g
-Xmn512m
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=256m
-XX:+UseG1GC
-XX:+DisableExplicitGC
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/log/java/"
✅ 建议:
conf/server.xml
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="500"
minSpareThreads="50"
acceptCount="200"
connectionTimeout="20000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/css,application/javascript"/>
✅ 推荐:
enableLookups=false)<Context reloadable="false"/>
❌ 避免:
<%
// 大量业务逻辑
%>
✅ 推荐:
<%@ page cache="true" %>
<jsp:include page="header.jsp" flush="true"/>
conf/web.xml
<init-param>
<param-name>development</param-name>
<param-value>false</param-value>
</init-param>
maximumPoolSize=20
minimumIdle=5
select *location ~ \.(jpg|css|js|png)$ {
root /var/www/html;
expires 30d;
}
✅ 不要通过 JSP / Tomcat 处理静态资源
Nginx → Tomcat → JSP
jstat -gc pid
jstack pid
jmap -heap pid
| 现象 | 可能原因 |
|---|---|
| CPU 高 | JSP 中复杂逻辑 |
| 内存高 | Session 过大 |
| 响应慢 | GC 频繁 |
| TPS 低 | 阻塞 IO / 未用连接池 |
✅ Debian
✅ OpenJDK 17
✅ Tomcat 9/10
✅ Nginx 反向代理
✅ G1 GC
✅ JSP 只做展示
✅ 静态资源分离
如果你愿意,可以告诉我:
我可以给你 更精确的配置示例。