----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/40668/#review107838 -----------------------------------------------------------
Ship it! Ship It! - Alejandro Fernandez On Nov. 24, 2015, 8:38 p.m., Jonathan Hurley wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/40668/ > ----------------------------------------------------------- > > (Updated Nov. 24, 2015, 8:38 p.m.) > > > Review request for Ambari, Alejandro Fernandez, Nate Cole, and Sid Wagle. > > > Bugs: AMBARI-14050 > https://issues.apache.org/jira/browse/AMBARI-14050 > > > Repository: ambari > > > 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 > > > Diffs > ----- > > > ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java > 56034d9 > > ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariServerTest.java > 621010a > > Diff: https://reviews.apache.org/r/40668/diff/ > > > Testing > ------- > > mvn clean test > > (thread dumps with simulated Runtime.getRuntime() calls) > > > Thanks, > > Jonathan Hurley > >
