[undertow-dev] Unable to concurrently use all available IO Threads under load on Red Hat

R. Matt Barnett barnett at rice.edu
Wed Jul 25 13:40:13 EDT 2018


I did. I set the concurrency level of ab to 128. I still see only 4 
overlaps:

    $ java -jar undertow-test-0.1.0-jar-with-dependencies.jar &

    Server started on port 8080
    1
    2
    3
    4

    $ netstat -t | grep apigateway_loadge | grep -c ESTABLISHED
    126


What is the algorithm for mapping connections to IO threads?  As a new 
Undertow user I had assumed round robin, but it sounds like this is not 
the case.


-- Matt


On 7/25/2018 11:49 AM, Bill O'Neil wrote:
> Did you try setting the concurrency level much higher than 8 like I 
> suggested earlier? You are probably having multiple connections 
> assigned to the same IO threads.
>
> On Wed, Jul 25, 2018 at 12:26 PM, R. Matt Barnett <barnett at rice.edu 
> <mailto:barnett at rice.edu>> wrote:
>
>     Corrected test to resolve test/set race.
>
>
>     https://gist.github.com/rmbarnett-rice/1179c4ad1d3344bb247c8b8daed3e4fa
>     <https://gist.github.com/rmbarnett-rice/1179c4ad1d3344bb247c8b8daed3e4fa>
>
>
>     I've also discovered this morning that I *can* see 1-8 printed on Red
>     Hat when I generate load using ab from Windows, but only 1-4 when
>     running ab on Red Hat (both locally and from a remote server).  I'm
>     wondering if perhaps there is some sort of connection reuse
>     shenanigans
>     going on.  My assumption of the use of the -c 8 parameter was "make 8
>     sockets" but maybe not.  I'll dig in and report back.
>
>
>     -- Matt
>
>
>     On 7/24/2018 6:56 PM, R. Matt Barnett wrote:
>     > Hello,
>     >
>     > I'm experiencing an Undertow performance issue I fail to
>     understand.  I
>     > am able to reproduce the issue with the code linked bellow. The
>     problem
>     > is that on Red Hat (and not Windows) I'm unable to concurrently
>     process
>     > more than 4 overlapping requests even with 8 configured IO Threads.
>     > For example, if I run the following program (1 file, 55 lines):
>     >
>     >
>     https://gist.github.com/rmbarnett-rice/668db6b4e9f8f8da7093a3659b6ae2b5
>     <https://gist.github.com/rmbarnett-rice/668db6b4e9f8f8da7093a3659b6ae2b5>
>     >
>     > ... on Red Hat and then send requests to the server using Apache
>     > Benchmark...
>     >
>     >       > ab -n 1000 -c 8 localhost:8080/
>     >
>     > I see the following output from the Undertow process:
>     >
>     >       Server started on port 8080
>     >
>     >       1
>     >       2
>     >       3
>     >       4
>     >
>     > I believe this demonstrates that only 4 requests are ever
>     processed in
>     > parallel.  I would expect 8.  In fact, when I run the same
>     experiment on
>     > Windows I see the expected output of
>     >
>     >       Server started on port 8080
>     >       1
>     >       2
>     >       3
>     >       4
>     >       5
>     >       6
>     >       7
>     >       8
>     >
>     > Any thoughts as to what might explain this behavior?
>     >
>     > Best,
>     >
>     > Matt
>     >
>     > _______________________________________________
>     > undertow-dev mailing list
>     > undertow-dev at lists.jboss.org <mailto:undertow-dev at lists.jboss.org>
>     > https://lists.jboss.org/mailman/listinfo/undertow-dev
>     <https://lists.jboss.org/mailman/listinfo/undertow-dev>
>
>     _______________________________________________
>     undertow-dev mailing list
>     undertow-dev at lists.jboss.org <mailto:undertow-dev at lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/undertow-dev
>     <https://lists.jboss.org/mailman/listinfo/undertow-dev>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/undertow-dev/attachments/20180725/82e45fd1/attachment-0001.html 


More information about the undertow-dev mailing list