【发布时间】: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
标签: java windows java-8 db2 windows-server-2019