tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aadit Shah <aadit.s...@mobileheartbeat.com>
Subject Re: Help Needed : Increased amount of I/O - Tomcat 7.0.81 vs 8.5.32
Date Tue, 09 Apr 2019 19:19:04 GMT
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.shah@mobileheartbeat.com<mailto:aadit.shah@mobileheartbeat.com>
Phone: (781) 238-0000,,2036
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message