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


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@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@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@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@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@redhat.com>
>> To: "Toby Crawley" <toby@tcrawley.org>
>> Cc: undertow-dev@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@tcrawley.org>
>> > To: undertow-dev@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@lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/undertow-dev
>> >
>> _______________________________________________
>> undertow-dev mailing list
>> undertow-dev@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/undertow-dev
>>
> _______________________________________________
> undertow-dev mailing list
> undertow-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/undertow-dev
_______________________________________________
undertow-dev mailing list
undertow-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/undertow-dev