Windows Server 2019中的Java 8性能问题



我最近将一些计划作业从Windows Server 2012虚拟服务器迁移到新的Windows Server 2019虚拟服务器,并注意到某些作业的性能显著下降。特别是使用AS400JDBC连接池数据源与DB2数据库通信的作业。该数据库托管在IBM iSeries AS/400上。

在Windows Server 2019上,使用jdk1.8.0_131,我正在运行以下命令:

java -jar myproject.jar

这个项目只需连接到DB2数据库并执行一个SQL更新命令。在其他服务器上,相同的命令大约需要2.5分钟,但在Windows Server 2019上,需要15分钟到一个多小时。在作业运行期间,我监视了服务器和数据库上的CPU、RAM和网络活动,但没有什么突出的。以下是对各种操作系统和JDK的测试结果:

|服务器| JDK |运行时||-------------------------------------|-----------|-----------------------||Windows Server 2012 | 1.8.0_131 |约2.5分钟||Windows Server 2016(全新安装(|1.8.0_131|~2.5分钟||Windows Server 2019(生产版(|1.8.0_131|15分钟到一小时||Windows Server 2019(全新安装(|1.8.0_131|15分钟到一小时||Windows Server 2019(全新安装(|1.8.0_202|15分钟到一小时|

如上所示,我尝试了全新安装的服务器2016,没有遇到性能问题,但当我尝试了新安装的Windows Server 2019时,我能够复制性能下降。

这些都是具有相同数量的CPU、RAM并在同一主机上运行的虚拟服务器。

Java仅支持1.8.0_201之后的Server 2019。

https://www.oracle.com/java/technologies/javase/products-doc-jdk8-jre8-certconfig.html

这是由于Windows 2019网络算法的变化。您可以通过设置";TcpNoDelay";属性设置为true。

https://sourceforge.net/p/jt400/bugs/454/

最新更新