在 Debian 上运行 JSP(通常是 Tomcat / Jetty 等 Java Web 容器) 时,性能优化一般从 系统层、JVM 层、Web 容器层、应用层、数据库层 几个方面入手。下面给你一套实用、可落地的优化思路。
# 查看
ulimit -n
# 修改(/etc/security/limits.conf)
* soft nofile 65535
* hard nofile 65535
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
sysctl -p
cat /sys/block/sda/queue/scheduler
# 推荐:mq-deadline / none(云服务器)
以 Tomcat + OpenJDK 为例:
JAVA_OPTS="-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
建议:
# JDK 8
-XX:+UseParallelGC
# JDK 11+
-XX:+UseG1GC
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/log/tomcat/
<Connector
port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="500"
minSpareThreads="50"
acceptCount="1000"
connectionTimeout="20000"
enableLookups="false"
/>
enableLookups="false"
<Context reloadable="false" />
location /static/ {
root /var/www/html;
expires 30d;
}
gzip on;
gzip_types text/html text/css application/javascript;
SELECT *top / htopjstack / jmapab / wrk / JMeter如果你能告诉我:
我可以给你一份针对性的配置示例。