5 Replies Latest reply on Aug 1, 2017 3:15 AM by masummymesingh

    IO Worker configuration for Undertow

    papegaaij

      We are trying to tune the worker for Undertow to improve throughput and performance, but don't understand the various options. The WildFly Admin Guide seems to contain no information at all about the IO subsystem and WildFly 8 Administration Guide by Francesco Marchioni only has 2 sentences on the subject. So my question is: What do the worker options do? What's the difference between io-threads, task-max-threads and core-max-threads? Which threads do what?

       

      Best regards,

      Emond Papegaaij

        • 1. Re: IO Worker configuration for Undertow
          papegaaij

          Is there anyone who can point me to the documentation of these settings?

          • 2. Re: IO Worker configuration for Undertow
            kobe_fans

            I do have the same question , like this:

            <subsystem xmlns="urn:jboss:domain:io:1.0">

                        <worker name="default" io-threads="5" task-max-threads="50"/>

                        <buffer-pool name="default" buffer-size="16384" buffers-per-slice="128"/>

            </subsystem>

            The configuration confused me , I use Jmeter to test wildfly , I want to improve the throughtout and performance by config io-threads and task-max-threads , but I don't know how to operation is available . Can someone tell me ? thanks

            • 3. Re: IO Worker configuration for Undertow
              f_marchioni

              Hello!

              sorry, it seems I've missed this thread. So I'll be glad to add some further explanation which will included as well in the book.

              Basically Undertow relies on the XNIO API for creating Worker threads using bounded-queue-thread-pool.

              The bounded-queue-thread-pool thread pool executor has a core, maximum size, and a specified queue length. If the number of running threads is less than the core size when a task is submitted, a new thread will be created; otherwise, it will be put in the queue. If the queue's maximum size has been reached and the maximum number of threads hasn't been reached, a new thread is also created. If max-threads is hit, the call will be sent to the handoff-executor. If no handoff-executor is configured, the call will be discarded.

              That being said, provided that there are enough io-threads to serve your http request, the core-max-threads (first) and the task-max-threads (after) are used to determine in the request is served or if it is going to be discarded.

              Hope it helps

              Francesco

              • 4. Re: IO Worker configuration for Undertow
                rafaelcba

                Hi f_marchioni,

                  Does the concepts you explained still applies to the latest Wildfly configuration? Does something changed? I see there is no thread subsystem anymore on Wildfly.

                • 5. Re: IO Worker configuration for Undertow
                  masummymesingh

                  I am also having same to issue for indentify max-threads in wildfy 10 .

                  Did you solve this problem ?