• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Web application worker threads running for a long time

 
Ankit Garg
Sheriff
Posts: 9519
22
Android Google Web Toolkit Hibernate IntelliJ IDE Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi guys,

In one of our web application we are having some issues with 100% CPU utilization and we are trying to figure out the cause. We've taken a thread dump at an interval of about half an hour and a few of the worker threads are runnable in both dumps and I'm trying to figure out whether they are serving the same request or different requests but don't have knowledge of thread dumps so looking for some help

Like this is the stack trace of one of the threads in the two dumps



From the looks of it the same thread is having a lock on different objects in both cases so it might be a different request but out of 50 worker threads same 5 threads are active in both dumps (and their stack trace is also the same apart from some hex codes) so its a little confusing. Can we know whether its the same request with thread dump? I can attach more thread dumps of the other 4 threads.

Thanks in advance.
 
Rishi Shehrawat
Ranch Hand
Posts: 218
Hibernate Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You can use VisualVM, it has a plugin for thread dump analysis. This can show blocked threads. You mentioned that you are investigating cause for 100% CPU utilization. Normally threads waiting on locks do not cause 100% CPU utilization. For 100% CPU utilization, it might be useful to look at GC activity. You can enable GC logs for this OR VisualVM can also be used.
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24208
35
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Looks like the same thread serving two unrelated requests, since the various stream objects that are being locked are a completely different set in the each stack trace. If looks like the threads are just working on compressing the response data.

What kind of data are being returned here -- anything really large?
 
Ankit Garg
Sheriff
Posts: 9519
22
Android Google Web Toolkit Hibernate IntelliJ IDE Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Rishi and Ernest. I'll take a memory dump and see if there's anything wrong there. As for the response, its just a normal web page though its heavier than a normal web page. I think the images don't matter and the size of the html itself is around 200KB in an extreme case (uncompressed). I'm using sitemesh, can sitemesh with the compression filter cause such problems?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic