Hello all, We have recently upgraded our software to utilize Tomcat 8.5.32 from Tomcat 7.0.81. With the upgrade, we are seeing an increased amount of I/Os happening between the Tomcat Server and the DB. We are looking for help to understand the cause of the increased amount of I/Os and possible solutions to improve our software to get a workaround.
Issue: Tomcat is one of the core components of our software. With 8.5.32 upgrade, due to the increased amount of I/Os, we are seeing a latency in our software. Due to the latency, the overall performance of the software has been degraded and the end users are seeing issues like - longer login times - longer wait time to load/reload the data. Troubleshooting: We ran a bunch of tests and confirmed that our packet captures show that 20x increase in the I/O operations between Tomcat 7.0.81 and 8.5.32. Here’s the matrix which shows number of I/O we captured between different versions of Our Software version and Tomcat versions. Our Software Version Tomcat 7.0.81 8.5.32 18 200 23,000 19 1200 240,000 Server Information: OS: Windows Server 2012 R2 Java : JRE1.8.0.111 Initial Memory Pool: 512 MB Maximum Memory Pool : 1024 MB Note: There are other software running on the server. DB Connection Configuration: Here’s how the connection from the Tomcat Server to DB Server look like: Tomcat 7.0.81: <Resource name="jdbc/heartbeatdb" auth="Container" type="javax.sql.DataSource" maxActive="200" maxIdle="30" maxWait="10000" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://<Server>\<instance>;database=heartbeat;integratedSecurity=true" validationQuery="SELECT 1" testWhileIdle="true" timeBetweenEvictionRunsMillis="3600000" numTestsPerEvictionRun="30" minEvictableIdleTimeMillis="14400000" removeAbandoned="true" removeAbandonedTimeout="300" logAbandoned="true"/> Tomcat 8.5.32: <Resource name="jdbc/heartbeatdb" auth="Container" type="javax.sql.DataSource" maxTotal="200" maxIdle="30" maxWaitMillis="10000" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://<Server>\<instance>;database=heartbeat;integratedSecurity=true" testWhileIdle="true" validationQuery="SELECT 1" timeBetweenEvictionRunsMillis="3600000" numTestsPerEvictionRun="30" minEvictableIdleTimeMillis="14400000" removeAbandonedOnBorrow="true" removeAbandonedOnMaintenance="true" removeAbandonedTimeout="300" logAbandoned="true" /> Let me know if you need more information from our side. We can also provide full server.xml configuration from both the versions of the software. We are new to Tomcat Support group, so let us know if this is the right way to request for help. If you want to learn more about our company, you can click the links in the signature. Thanks, Aadit -- Aadit Shah | Mobile Heartbeat<http://www.mobileheartbeat.com/> Solutions Engineer aadit.s...@mobileheartbeat.com<mailto:aadit.s...@mobileheartbeat.com> Phone: (781) 238-0000,,2036