【发布时间】:2020-09-30 22:01:07
【问题描述】:
我们有一个基于 Spring 构建的 Java 应用程序。我们在具有以下配置的服务器上运行它。
总内存:32GB
没有。 CPU : 8 核 (Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz)
对于数据库,我们使用的是 AWS MySQL aurora。
我们正在使用以下server.xml 配置和setenv.sh 配置在tomcat 8 服务器上部署我们的应用程序战争。
server.xml
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" minSpareThreads="20" maxIdleTime="60000" />
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="60000"
keepAliveTimeout="15000"
maxKeepAliveRequests="1"
redirectPort="8443" />
<Connector port="8443" protocol="HTTP/1.1"
connectionTimeout="3000000"
SSLEnabled="true"
sslEnabledProtocols="TLSv1.2"
scheme="https"
compression="on"
secure="true"
compressionMinSize="1024"
noCompressionUserAgents="gozilla, traviata" useSendfile="false"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,text/css,img/png"/>
setenv.sh
export CATALINA_OPTS="$CATALINA_OPTS -Xms2048m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx6144m"
export CATALINA_OPTS="$CATALINA_OPTS -Xss512k"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=512m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseParallelGC"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxGCPauseMillis=1500"
export CATALINA_OPTS="$CATALINA_OPTS -XX:GCTimeRatio=9"
export CATALINA_OPTS="$CATALINA_OPTS -server"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+DisableExplicitGC"
使用上述配置,当我们对大约 40 个用户执行负载测试时,CPU 利用率会达到 90% 以上,然后服务器变得无响应。
我对性能调优还很陌生,而且在 tomcat 方面也没有太多专业知识。 谁能帮我理解一下?
谢谢!
【问题讨论】:
标签: java performance spring-mvc tomcat tomcat8