我刚安装了一台新服务器(Xeon E5-2630 v4,256GB RAM,Ubuntu 18,Tomcat 8,Java 8)来取代目前已有4年历史的服务器(i5-2400,8GB RAM,Ubuntu 14,Tomcat) 7,Java 7)并且在测试期间发现,在一个大型测试页面上,新服务器比旧服务器慢10倍。稍后进行一些挖掘,也就是在我的开发机器(Java 8)上运行Tomcat 8(与apt-get一起安装)的情况,但是在运行Spring Tool Suite捆绑的tc服务器(也基于Tomcat8!)时则不行。
在样本页面上测试结果。所有4个实例上的相同spring应用程序war文件。在本地运行,应用程序在控制器中记录页面生成时间,并且在所有4上大致相同,因此问题必须在jsp生成或连接中(很可能是imo):
time wget http://localhost:8080/proteus/testpage
对于同一台机器上那么大的差异,我必须在连接设置/配置中遗漏一些非常基本的东西但是我在过去2天的大部分时间里一直在进行故障排除而没有取得任何进展。
如果有人对什么有什么建议,我会非常感激。在dev机器上工作似乎最简单,所以我从那里添加了一些信息。
问候。
在tcServer上将堆设置为-Xmx768m,在Tomcat 8上设置为-Xmx2048m。
tcServer版本信息:
Using CATALINA_BASE: /home/mjames/sts-bundle/pivotal-tc-server-developer-3.1.5.RELEASE/tomcat-8.0.36.A.RELEASE
Using CATALINA_HOME: /home/mjames/sts-bundle/pivotal-tc-server-developer-3.1.5.RELEASE/tomcat-8.0.36.A.RELEASE
Using CATALINA_TMPDIR: /home/mjames/sts-bundle/pivotal-tc-server-developer-3.1.5.RELEASE/tomcat-8.0.36.A.RELEASE/temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/mjames/sts-bundle/pivotal-tc-server-developer-3.1.5.RELEASE/tomcat-8.0.36.A.RELEASE/bin/bootstrap.jar:/home/mjames/sts-bundle/pivotal-tc-server-developer-3.1.5.RELEASE/tomcat-8.0.36.A.RELEASE/bin/tomcat-juli.jar
Server version: Pivotal tc Runtime 3.1.5.RELEASE/8.0.36.A.RELEASE
Server built: Jun 29 2016 20:36:49 UTC
Server number: 8.0.36.0
OS Name: Linux
OS Version: 4.4.0-116-generic
Architecture: amd64
JVM Version: 1.8.0_162-8u162-b12-0ubuntu0.16.04.2-b12
JVM Vendor: Oracle Corporation
tomcat 8版本信息:
Using CATALINA_BASE: /usr/share/tomcat8
Using CATALINA_HOME: /usr/share/tomcat8
Using CATALINA_TMPDIR: /usr/share/tomcat8/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.32 (Ubuntu)
Server built: Sep 27 2017 21:23:18 UTC
Server number: 8.0.32.0
OS Name: Linux
OS Version: 4.4.0-116-generic
Architecture: amd64
JVM Version: 1.8.0_162-8u162-b12-0ubuntu0.16.04.2-b12
JVM Vendor: Oracle Corporation
来自server.xml的连接器(两者都相同,将它们拆分为基础)
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
URIEncoding="UTF-8" redirectPort="8443" />
答案 0 :(得分:0)
Tomcat 和 tc服务器打包为不同的产品:
Tomcat是一个非常通用且可重配置的servlet容器。
tc Server是一个更全面,更生产就绪的Tomcat兼容应用服务器。
请参阅此处more extensive comparison of the 2 servers。
因此,他们的默认值是不同的。默认情况下,Tomcat被配置为较小的东西,而tc Server默认情况下会做出更大胆的假设。
请参阅Tomcat's default properties与tc Server default ones(以及由可用选项减少量导致的眩晕后),例如, tomcat 200 作为 tc服务器使用 300 时的最大线程数。
您可以想象,有许多设置会影响测试页的性能。
答案 1 :(得分:0)
找到一个解决方案,如果不是答案 - 我从来没有深入到问题的tomcat 8.0,但我从新服务器上的tar文件安装了8.5.29,并且性能就可以了。在2秒内测试页面下载(而不是Tomcat 8.0上的16s)仍然比英国的旧测试页面慢一点,但它在德国,它至少可以接受,我可以尝试在以后进一步优化日期...
完全相同的JRE(OpenJDK 1.8.0_162),War文件和server.xml,除setenv.sh中的以下内容外,其他所有内容都是默认配置
CATALINA_OPTS="-Xmx4096m -Dfile.encoding=UTF-8 -Dhttps.protocols=TLSv1.1,TLSv1.2 -Djdk.tls.client.protocols=TLSv1.1,TLSv1.2 -Djava.awt.headless=true"