Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-dev] Help explaining why FutureCallback.get would be showing up as a hotspot in profiling?

Greetings,

After moving from Jetty 7.6.5 to 9.0M0 we've seen a degradation in
performance and I am attempting to troubleshoot.

The hotspot I am seeing is that several seconds may be spent in
FutureCallback.get (line 115), which is just: a _done.await()

Would somebody please educate me on if this is a red flag or typically
symptomatic of some issue I might be able to focus on (or any other
possible indicators)?

>From jetty/util/FutureCallback.java:
---snip---
 113    public C get() throws InterruptedException, ExecutionException
 114    {
*115        _done.await();
 116        if (_completed)
 117            return _context;
 118        if (_cause instanceof CancellationException)
 119            throw (CancellationException) new
CancellationException().initCause(_cause);
 120        throw new ExecutionException(_cause);
 121    }

---snip---

Here's the partial call graph I am looking at:
---snip---
org.eclipse.jetty.server.HttpOutput:write:174 (method time = 0 ms,
total time = 4885 ms)
 org.eclipse.jetty.server.HttpChannel:write:608 (method time = 0 ms,
total time = 4885 ms)
  org.eclipse.jetty.server.HttpConnection:send:410 (method time = 0
ms, total time = 4885 ms)
   org.eclipse.jetty.server.HttpConnection:send:372 (method time = 0
ms, total time = 4885 ms)
    org.eclipse.jetty.server.HttpConnection:blockingWrite:419 (method
time = 0 ms, total time = 4885 ms)
     org.eclipse.jetty.util.FutureCallback:get:115 (method time = 4885
ms, total time = 4885 ms)
---snip---

If background is helpful, this jetty instance is running a single Solr
war, has a 50G heap, typically uses 12-20Gig, and is being hit with
only around 50-100 requests per Minute. (each request does need to
scan a 70Gig solr index, however, before the upgrade we were seeing
average and pretty tight response times around 100-200 ms. Now they
vary a lot more wildly (regularly spiking to 9000ms) and average
400-600ms.

Thanks,
      Aaron


Back to the top