This is a strange issue. I am trying to get a server upgraded from Windows Server 2016 Data Center to anything newer. We have tried 2019, and 2022. This server is an ETL server for running Talend Open Studio, it is a connection between MS Sql Server and IBM DB2 for i. The problem is that the connection to DB2 is 100 times slower when the host is Windows 2019 or 2022, and this is just not workable for us.
We noticed this when we got new faster hardware for the server. We installed Windows Server 2022 Datacenter on it and migrated a Talend job over to test with, and the new server, while quite fast when running app that stayed on the server, nearly ground to a halt when connecting to DB2. The architecture looks like this:
A single IBM i instance running IBM i v7.2. A number of MS SQL Server machines running SQL Server 2014, 2017, and 2019. A VM on older hardware running Windows Server 2016 and Talend Open Studio (TOS) v7.3. And, a VM on new hardware running Windows Server 2022 and Talend Open Studio v7.3. Source data is on SQL Server, this data is processed by TOS and written to DB2 using JDBC.
In our initial testing we were getting throughput of around 1000-1200 rows per second on the old 2016 Talend server. The new hardware, inexplicably, only manager 17-20 rows per second. On IBM i, the same pool of jobs are handling all ODBC/JDBC requests. The initial reads from the SQL Servers were much faster on the newer Talend Server than they were on the older Talend Server, and both servers were using the same JDBC drivers for DB2, that is jtOpen 9.8. The only difference was Windows 2016 (fast) vs. Windows 2022 (slow) and the JVM loaded on each, One was using Java 8, while the other was using Java 11.
Our infrastructure guys couldn't find any material configuration differences between the Windows servers, and on the network, there is only a single hop from the Talend Servers to the IBM i (they are all on the same subnet).
Infrastructure spun up two identical VMs to test Windows. On one they put an empty Windows 2016 server, and on the other they put an empty Windows 2022 server. I installed Java 11, Talend 7.3, and the same test Talend model on both servers. Both Talend servers are connected to the same SQL Server for input, and the same IBM i for output. The Windows 2016 server managed around 2000 rows per second on the new hardware, the Windows 2022 server managed only 19 rows per second. We spun up a new VM same as the other two, and put Windows 2019 on it. I installed the same Java, and Talend software on it, and it only managed 20 rows per second. I upgraded Java to Java 17 on the Windows 2022 server and installed a copy of Talend v8.0. That only managed 17 rows per second.
So where do I look next? We don't really want to be stuck with an old version of Windows, but some of our data migration jobs take 13 to 18 hours on the old hardware. That would take months on the newer Windows servers.
What could be causing the slowdown? The only difference is Windows 2016 which is, relatively, fast, and windows 2019/2022 which is 100x slower.
Note: There are no errors, it just runs slowly.