Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-14050

Produce a Warning When Jetty Pool Size Is Too Low And Increase It

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 2.0.0
    • 2.2.0
    • ambari-server
    • None

    Description

      Ambari's default Jetty thread pool is configured at 25 threads. When deployed on a machine that has 48 "processors", Jetty's calculation for determining how many "Acceptor" and "Selector" threads to create never takes into account the core pool size. As a result, we get:

      • 12 "Acceptor" threads (these answer binds to port 8080)
      • 12 "Selector" threads (these pick available threads to answer bindings)
      • 1 free thread (these are the threads available to do stuff with)

      Notice that there's only 1 free thread. This means that Jetty effectively makes Ambari a single-threaded web application on larger systems!

      The "fix" is to increase the thread count in the ambari.properties, however nobody knows to do this since no warning is produced.

      I suggest:

      • Log a warning on server startup if we detect that the core pool size is less than 3/4 of the available processors on the system.
      • Automatically increase the core pool size to the min(100, double existing size) when the above is detected

      Attachments

        1. AMBARI-14050.patch
          20 kB
          Jonathan Hurley

        Issue Links

          Activity

            People

              jonathanhurley Jonathan Hurley
              jonathanhurley Jonathan Hurley
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: