Windows Server 2019 中的 Java 8 性能问题
Posted
技术标签:
【中文标题】Windows Server 2019 中的 Java 8 性能问题【英文标题】:Java 8 Performance Issues In Windows Server 2019 【发布时间】:2020-06-10 22:14:01 【问题描述】:我最近将一些计划作业从 Windows Server 2012 虚拟服务器迁移到了新的 Windows Server 2019 虚拟服务器,并注意到某些作业的性能明显下降。特别是使用 AS400 JDBC 连接池数据源与我们的 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 |运行时 | |-------------------------------------|------------ |-----------------------| |视窗服务器 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分钟到一个小时|如上所示,我尝试全新安装 server 2016 并没有遇到性能问题,但是当我尝试全新安装 Windows Server 2019 时,我能够重现性能下降。
这些都是具有相同数量的 CPU、RAM 并在同一主机上运行的虚拟服务器。
【问题讨论】:
您的项目大概更新了多少行? 可能与GC有关? @Eugene 如果它是同一个 jdk,为什么它在哪个服务器上会有所不同? 在使用 SSIS 包将 Windows Server 2008 R2 迁移到 Windows Sever 2019 时,我也遇到了同样的问题,在 Windows Server 2019 中的 Sybase 和 SQL Server 数据库之间加载数据要慢得多服务器配置:( @Ling 出于好奇,您是在虚拟服务器上运行此代码吗?我怀疑根据 JDK 8 的 oracle 认证系统配置不支持管理程序可能是一个问题:oracle.com/java/technologies/javase/jdk-jre-8-cs-config.html 【参考方案1】:Java 仅在 1.8.0_201 之后支持 Server 2019。
https://www.oracle.com/java/technologies/javase/products-doc-jdk8-jre8-certconfig.html
【讨论】:
OP 还测试了 Java 8 Update 202,它比该表中列出的 Java 8 Update 201 更新。以上是关于Windows Server 2019 中的 Java 8 性能问题的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server查询到“ ftatten”数据以进行报告