优化 Debian 上 JSP 性能 通常要从 操作系统、Java 运行环境、应用服务器、JSP 本身、数据库和架构 五个层面一起考虑。下面给你一套实用且可落地的优化清单,按优先级排列。
systemctl list-units --type=service --state=running
关闭无用服务,减少 CPU / 内存占用。
JSP 应用(尤其是 Tomcat)对文件句柄需求较大。
# 查看
ulimit -n
# 修改
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
ext4 或 xfsnoatime,nodiratime
java -version
/opt/tomcat/bin/setenv.sh
export JAVA_OPTS="-server \
-Xms1024m \
-Xmx1024m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/var/log/tomcat/heapdump.hprof"
✅ 建议:
-Xms = -Xmx(避免动态扩容)server.xml
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="400"
minSpareThreads="50"
acceptCount="150"
enableLookups="false"
compression="on"
compressableMimeType="text/html,text/xml,text/css,application/javascript"
URIEncoding="UTF-8" />
✅ 推荐:
conf/web.xml
<servlet>
<servlet-name>jsp</servlet-name>
<init-param>
<param-name>development</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
✅ 生产环境一定要关闭 development 模式
<Host name="localhost" appBase="webapps"
unpackWARs="true"
autoDeploy="false">
❌ 不推荐:
<%
// 大量业务逻辑
%>
✅ 推荐:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
避免 scriptlet(<% %>)
<%@ page buffer="64kb" autoFlush="true" %>
推荐:
示例(HikariCP):
maximumPoolSize=20
minimumIdle=10
select *location ~* \.(js|css|png|jpg|gif)$ {
expires 30d;
}
✅ 强烈推荐架构
Nginx → Tomcat → JSP
ab -n 10000 -c 200 http://localhost:8080/index.jsp
| 项目 | 建议 |
|---|---|
| OS | Debian 11/12 |
| JDK | OpenJDK 17 |
| GC | G1 |
| 容器 | Tomcat 9/10 |
| 架构 | Nginx + Tomcat |
| JSP | 只做展示 |
| 数据库 | HikariCP |
如果你愿意,我可以:
✅ 帮你 分析具体 JSP 慢的原因
✅ 给你 针对你服务器配置(CPU / 内存)的 JVM 参数
✅ 告诉你 Tomcat 和 Nginx 的最佳搭配配置
你可以直接贴: