Note that there are some explanatory texts on larger screens.

plurals
  1. POfailed HTTP requests on Tomcat
    primarykey
    data
    text
    <p>My web app is running on 64-bit Java 6.0.23, Tomcat 6.0.29 (with Apache Portable Runtime 1.4.2), on Linux (CentOS). Tomcat's JAVA_OPTS includes -Xincgc, which is supposed to help prevent long garbage collections.</p> <p>The app is under heavy load and has intermittent failures, and I'd like to troubleshoot it.</p> <p>Here is the symptom: Very intermittently, an HTTP client will send an HTTP request to the web app and get an empty response back.</p> <p>The app doesn't use a database, so it's definitely not a problem with JDBC connections. So I figure the problem is perhaps one of: memory (perhaps long garbage collections), out of threads, or out of file descriptors.</p> <p>I used javamelody to view the number of threads that are being used, and it seems that maxThreads is set high enough to not be running out of threads. Similarly, we have the number of available of file descriptors set to a very high number.</p> <p>The app does use a lot of memory. Does it seem like memory is probably the culprit here, or is there something else that I might be overlooking?</p> <p>I guess my main confusion, though, is why garbage collections would cause HTTP requests to fail. Intuitively, I would guess that a long garbage collection might cause an HTTP request to take a long time to run, but I would not guess that a long garbage collection would cause an HTTP request to fail.</p> <hr> <p>Additional info in response to Jon Skeet's comments...</p> <p>The client is definitely not timing out. The empty response happens fairly quickly. When it fails, there is no data and no HTTP headers.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload