Windows: Tomcat grabs 100% CPU after upgrading to 7.0.96

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Windows: Tomcat grabs 100% CPU after upgrading to 7.0.96

Childers, Paula
Windows Server 2008r2,  Oracle Java 1.7.0_231

We are running multiple (6) Tomcats (each as a service) on this server.  Recently installed 7.0.96 for all six, as an upgrade from 7.0.94.  

We are seeing at least one of the Tomcats will attempt to grab as much CPU as possible, until the system is at 100%.  

Tried different combinations of the different Tomcats running to see if the problem was with a specific one, but the behavior occurs in multiple combinations.  As long as there is more than one Tomcat running, one of them will try to grab 100% CPU.  (Almost like it is in a loop? Or competing for a resource?)

If I start up only one Tomcat, it runs normally.

Bumped logging to DEBUG, nothing additional showed up, all logs look normal.

Shut down all the 7.0.96 Tomcats, brought the previous 7.0.94 Tomcats back up, and all of them run normally, no CPU hogging - total CPU consumption fluctuates around 15% unless there is heavy usage.

None of the web applications have changed anytime recently.  

Java was updated from 1.7.0_221 to 1.7.0_231 at the same time as the Tomcat 7.0.96 upgrade, but the 7.0.94 Tomcats do not seem to have any problems with the newer Java version.

When we initially upgraded to 7.0.96, there were some issues with accessing certain files and disk areas due to the "default" user change to "local service" - we changed the user back to the previous "Local System" to allow time for examining the permissions changes that will be necessary to use "local service" in our environment.  
     
Is this a bug?
What else should I be trying?
 

       
       
---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Windows: Tomcat grabs 100% CPU after upgrading to 7.0.96

Christopher Schultz-2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Paula,

On 8/13/19 13:11, Childers, Paula wrote:
> Windows Server 2008r2,  Oracle Java 1.7.0_231

Thanks for that.

> We are running multiple (6) Tomcats (each as a service) on this
> server.  Recently installed 7.0.96 for all six, as an upgrade from
> 7.0.94.
>
> We are seeing at least one of the Tomcats will attempt to grab as
> much CPU as possible, until the system is at 100%.> Tried different
> combinations of the different Tomcats running to see if the problem
> was with a specific one, but the behavior occurs in multiple
> combinations.  As long as there is more than one Tomcat running,
> one of them will try to grab 100% CPU.  (Almost like it is in a
> loop? Or competing for a resource?)
>
> If I start up only one Tomcat, it runs normally.

Are you using 6 different installations, or a split-installation with
CATALINA_HOME and different CATALINA_BASES? It shouldn't really
matter, but it would be good to know.

> Bumped logging to DEBUG, nothing additional showed up, all logs
> look normal.
>
> Shut down all the 7.0.96 Tomcats, brought the previous 7.0.94
> Tomcats back up, and all of them run normally, no CPU hogging -
> total CPU consumption fluctuates around 15% unless there is heavy
> usage.
>
> None of the web applications have changed anytime recently.
>
> Java was updated from 1.7.0_221 to 1.7.0_231 at the same time as
> the Tomcat 7.0.96 upgrade, but the 7.0.94 Tomcats do not seem to
> have any problems with the newer Java version.
That shouldn't really affect much unless there happens to be a really
bad JVM bug. With a version number like that, I wouldn't expect a big
bug like that to be present. You might want to upgrade to an even more
recent version of Java. The world is pretty much on Java 12 at this
point. (I say this personally as a Java 8 hold-out.)

> When we initially upgraded to 7.0.96, there were some issues with
> accessing certain files and disk areas due to the "default" user
> change to "local service" - we changed the user back to the
> previous "Local System" to allow time for examining the permissions
> changes that will be necessary to use "local service" in our
> environment.

That should be "safe" as far as Tomcat is concerned. You may want to
investigate a little more about how best to set permissions for your
Tomcat user.

Can you take some thread dumps of the 100%-CPU-process a few seconds
apart to see what the JVM is doing? Feel free to post the whole thread
dump to the list if you aren't quite sure how to read it.

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl1S+TYACgkQHPApP6U8
pFja9xAAmn0BZIIIQXMB5T5Kc0CNqY3m5/qjlyZjnXzvJCRPmTp9hksKEoy0Upbd
u/aSii/Z9YpTVD6wrltv5yafncdeUcsJR7Xc1XBu59h9vo9KsSxL9x7zUEH0NJ64
KAHBgpqm8VKiXBsngi2LG57eUNAmop/FA8mmkiJm2pemcBb/Kf2HMZlpDVmpY+MA
sugWb/5/g3GbQvF9azXVZZ9LP0Ot4S7tBJH2w/8K/sEi+IXfAtRcYFivMtZo2G3l
7aXJ8oDDILlBoo9BMXAY1T0VJpB/VzQr5xkRjzgLiUDY7vXP9u7bKW6io+9x2Kxu
kqrchYiOcsLLddQqtpWEDdfgqplUm7tUxVtfD0YIdu50B/KFHQtdsxUsTIoWSxOq
bES9R2Z756/d/sdeh6g/o+1Svkp6vrKlMwfNhBl+9ZMHENhJMUr+fqdHlcMlFZF5
3AaQYOc/azgs0NkSuVkb2c3ThZXhAV7VQEbLPjeOWZFocJoZQCrbn5u0VwFAgFDo
2nYW/rA5SUBofoZCL6ejPg9WELIFVDUgdYeK2jc+TvQ5XJIU34X1Mnw6AkU3jKtp
Brch/ei8/uks45nBOMrDMiBWnvtgKSc+6kN+ak/juGsSjAp32YFBDOBSNjfaSDIm
iYInyuay9Cpto5lR5daR/fUK1OX6rANSamoFqYHt07y48Yj+VQQ=
=yfbP
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Windows: Tomcat grabs 100% CPU after upgrading to 7.0.96

Suvendu Sekhar Mondal
On Tue, Aug 13, 2019, 11:24 PM Christopher Schultz <
[hidden email]> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Paula,
>
> On 8/13/19 13:11, Childers, Paula wrote:
> > Windows Server 2008r2,  Oracle Java 1.7.0_231
>
> Thanks for that.
>
> > We are running multiple (6) Tomcats (each as a service) on this
> > server.  Recently installed 7.0.96 for all six, as an upgrade from
> > 7.0.94.
> >
> > We are seeing at least one of the Tomcats will attempt to grab as
> > much CPU as possible, until the system is at 100%.> Tried different
> > combinations of the different Tomcats running to see if the problem
> > was with a specific one, but the behavior occurs in multiple
> > combinations.  As long as there is more than one Tomcat running,
> > one of them will try to grab 100% CPU.  (Almost like it is in a
> > loop? Or competing for a resource?)
> >
> > If I start up only one Tomcat, it runs normally.
>
> Are you using 6 different installations, or a split-installation with
> CATALINA_HOME and different CATALINA_BASES? It shouldn't really
> matter, but it would be good to know.
>
> > Bumped logging to DEBUG, nothing additional showed up, all logs
> > look normal.
> >
> > Shut down all the 7.0.96 Tomcats, brought the previous 7.0.94
> > Tomcats back up, and all of them run normally, no CPU hogging -
> > total CPU consumption fluctuates around 15% unless there is heavy
> > usage.
> >
> > None of the web applications have changed anytime recently.
> >
> > Java was updated from 1.7.0_221 to 1.7.0_231 at the same time as
> > the Tomcat 7.0.96 upgrade, but the 7.0.94 Tomcats do not seem to
> > have any problems with the newer Java version.
> That shouldn't really affect much unless there happens to be a really
> bad JVM bug. With a version number like that, I wouldn't expect a big
> bug like that to be present. You might want to upgrade to an even more
> recent version of Java. The world is pretty much on Java 12 at this
> point. (I say this personally as a Java 8 hold-out.)
>
> > When we initially upgraded to 7.0.96, there were some issues with
> > accessing certain files and disk areas due to the "default" user
> > change to "local service" - we changed the user back to the
> > previous "Local System" to allow time for examining the permissions
> > changes that will be necessary to use "local service" in our
> > environment.
>
> That should be "safe" as far as Tomcat is concerned. You may want to
> investigate a little more about how best to set permissions for your
> Tomcat user.
>
> Can you take some thread dumps of the 100%-CPU-process a few seconds
> apart to see what the JVM is doing? Feel free to post the whole thread
> dump to the list if you aren't quite sure how to read it.
>

In addition to Chris's suggestion, please use ProcessExplorer on the rouge
Tomcat process and identify the thread(s) which are consuming CPU. Once
identified, you can correlate threads from ProcessExplorer data with thread
dumps and determine what they are doing.


> - -chris
> -----BEGIN PGP SIGNATURE-----
> Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/
>
> iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl1S+TYACgkQHPApP6U8
> pFja9xAAmn0BZIIIQXMB5T5Kc0CNqY3m5/qjlyZjnXzvJCRPmTp9hksKEoy0Upbd
> u/aSii/Z9YpTVD6wrltv5yafncdeUcsJR7Xc1XBu59h9vo9KsSxL9x7zUEH0NJ64
> KAHBgpqm8VKiXBsngi2LG57eUNAmop/FA8mmkiJm2pemcBb/Kf2HMZlpDVmpY+MA
> sugWb/5/g3GbQvF9azXVZZ9LP0Ot4S7tBJH2w/8K/sEi+IXfAtRcYFivMtZo2G3l
> 7aXJ8oDDILlBoo9BMXAY1T0VJpB/VzQr5xkRjzgLiUDY7vXP9u7bKW6io+9x2Kxu
> kqrchYiOcsLLddQqtpWEDdfgqplUm7tUxVtfD0YIdu50B/KFHQtdsxUsTIoWSxOq
> bES9R2Z756/d/sdeh6g/o+1Svkp6vrKlMwfNhBl+9ZMHENhJMUr+fqdHlcMlFZF5
> 3AaQYOc/azgs0NkSuVkb2c3ThZXhAV7VQEbLPjeOWZFocJoZQCrbn5u0VwFAgFDo
> 2nYW/rA5SUBofoZCL6ejPg9WELIFVDUgdYeK2jc+TvQ5XJIU34X1Mnw6AkU3jKtp
> Brch/ei8/uks45nBOMrDMiBWnvtgKSc+6kN+ak/juGsSjAp32YFBDOBSNjfaSDIm
> iYInyuay9Cpto5lR5daR/fUK1OX6rANSamoFqYHt07y48Yj+VQQ=
> =yfbP
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>