[undertow-dev] Loss of perfomance between 1.3.0.Beta9 and 1.3.18.Final

Andrig T. Miller anmiller at redhat.com
Wed Mar 9 16:28:37 EST 2016


Stuart, 

I'm not sure what this undertow-speed app does, but I'm nervous that tuning for it, may undo some of the improvements we made in the performance lab. One thing I would suggest though, is using perf on Linux and creating a flamegraph for Beta9 and the Final. It's likely that some methods that were being inlined are no longer being inlined, and the flamegraphs and the underlying perf data will show that. In order to use perf you have to set the JVM parameter to preserve frame pointers: 

-XX:+PreserveFramePointer 

Ping anyone from the performance team, and they can help you with the setup of perf, and generating the flame graphs. 

Andy 

----- Original Message -----

> Hi Stuart,

> Toby asked me to try on my machine, and I see an even bigger
> throughput disparity. I'm using his test app:
> https://github.com/tobias/undertow-speed

> In one shell I run 'mvn clean compile exec:java' and in another I run
> './bench-avg.sh' and I get this output:

> jim at minty ~/apps/undertow-speed $ ./bench-avg.sh
> Requests per second: 14717.03 [#/sec] (mean)
> Requests per second: 14527.32 [#/sec] (mean)
> Requests per second: 14288.32 [#/sec] (mean)
> Requests per second: 14375.64 [#/sec] (mean)
> Requests per second: 14653.08 [#/sec] (mean)
> Average: 14512

> Then I run 'mvn clean compile exec:java -Pbeta9' in the first shell
> and re-run bench-avg.sh. I get this:

> jim at minty ~/apps/undertow-speed $ ./bench-avg.sh
> Requests per second: 24069.72 [#/sec] (mean)
> Requests per second: 25002.35 [#/sec] (mean)
> Requests per second: 24885.36 [#/sec] (mean)
> Requests per second: 25261.30 [#/sec] (mean)
> Requests per second: 24800.82 [#/sec] (mean)
> Average: 24803.4

> As you can see, quite a bit more than 7%, beta9 yields almost 70%
> better throughput for me!

> I set the option you suggested for 1.3.18 and I get slightly better numbers:

> jim at minty ~/apps/undertow-speed $ ./bench-avg.sh
> Requests per second: 15749.52 [#/sec] (mean)
> Requests per second: 15309.83 [#/sec] (mean)
> Requests per second: 15909.15 [#/sec] (mean)
> Requests per second: 16228.10 [#/sec] (mean)
> Requests per second: 16118.84 [#/sec] (mean)
> Average: 15862.6

> But nowhere close to beta9.

> Can you clone his app and reproduce locally?

> Thanks,
> Jim

> On Tue, Mar 8, 2016 at 6:35 PM, Stuart Douglas <sdouglas at redhat.com> wrote:
> > Can you re-run but with the following setting:
> >
> > .setServerOption(UndertowOptions.NO_REQUEST_TIMEOUT, -1)
> >
> > The default changed between these versions, so now idle connections will
> > eventually be timed out (otherwise browsers can hold connections for a
> > very time long which was causing people to have issues with FD
> > exhaustion).
> >
> > Stuart
> >
> > ----- Original Message -----
> >> From: "Stuart Douglas" <sdouglas at redhat.com>
> >> To: "Toby Crawley" <toby at tcrawley.org>
> >> Cc: undertow-dev at lists.jboss.org
> >> Sent: Monday, 7 March, 2016 10:59:27 AM
> >> Subject: Re: [undertow-dev] Loss of perfomance between 1.3.0.Beta9 and
> >> 1.3.18.Final
> >>
> >> This is not a known issue, I will investigate.
> >>
> >> Stuart
> >>
> >> ----- Original Message -----
> >> > From: "Toby Crawley" <toby at tcrawley.org>
> >> > To: undertow-dev at lists.jboss.org
> >> > Sent: Saturday, 5 March, 2016 7:29:00 AM
> >> > Subject: [undertow-dev] Loss of perfomance between 1.3.0.Beta9 and
> >> > 1.3.18.Final
> >> >
> >> > Is there a known decrease in throughput (measured with req/s)
> >> > between 1.3.0.Beta9 and 1.3.18.Final? We currently ship the former
> >> > with Immutant, and were looking at upgrading to the latter in the next
> >> > release, but noticed a decrease in throughput with a simple Clojure
> >> > benchmark app.
> >> >
> >> > I have replicated the basics of our benchmark app in Java[1], and saw a
> >> > decrease in req/s between the two versions of ~7% when testing with ab
> >> > and averaging the output of several runs.
> >> >
> >> > Is there something that changed between those versions that is known
> >> > to have reduced performance?
> >> >
> >> > - Toby
> >> >
> >> > [1]: https://github.com/tobias/undertow-speed
> >> > _______________________________________________
> >> > undertow-dev mailing list
> >> > undertow-dev at lists.jboss.org
> >> > https://lists.jboss.org/mailman/listinfo/undertow-dev
> >> >
> >> _______________________________________________
> >> undertow-dev mailing list
> >> undertow-dev at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/undertow-dev
> >>
> > _______________________________________________
> > undertow-dev mailing list
> > undertow-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/undertow-dev
> _______________________________________________
> undertow-dev mailing list
> undertow-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/undertow-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/undertow-dev/attachments/20160309/c3177c2a/attachment-0001.html 


More information about the undertow-dev mailing list