Author: fhanik
Date: Wed May 2 21:36:44 2012
New Revision: 1333221
URL: http://svn.apache.org/viewvc?rev=1333221&view=rev
Log:
Modify the default pollerThreadCount
as processors go, it gets very polluting and resource wasting to have 24,48 or
64 and more poller threads
Very hard for applications to see a performance benefit of more than 2 pollers
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml
Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1333221&r1=1333220&r2=1333221&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Wed
May 2 21:36:44 2012
@@ -333,7 +333,7 @@ public class NioEndpoint extends Abstrac
/**
* Poller thread count.
*/
- protected int pollerThreadCount =
Runtime.getRuntime().availableProcessors();
+ protected int pollerThreadCount =
Math.min(2,Runtime.getRuntime().availableProcessors());
public void setPollerThreadCount(int pollerThreadCount) {
this.pollerThreadCount = pollerThreadCount; }
public int getPollerThreadCount() { return pollerThreadCount; }
Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1333221&r1=1333220&r2=1333221&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed May 2 21:36:44 2012
@@ -88,6 +88,11 @@
<bug>53173</bug> (<rev>1333116</rev>) :
Properly count down maxConnections (fhanik)
</fix>
+ <update>
+ Update default value of pollerThreadCount for the NIO connector.
+ The new default value will never go above 2 regardless of
+ available processors. (fhanik)
+ </update>
</changelog>
</subsection>
<subsection name="Cluster">
Modified: tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml?rev=1333221&r1=1333220&r2=1333221&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/config/http.xml Wed May 2 21:36:44 2012
@@ -608,8 +608,15 @@
<attribute name="pollerThreadCount" required="false">
<p>(int)The number of threads to be used to run for the polling events.
- Default value is <code>1</code> per processor. Can't see a reason to go
- above that. But experiment and find your own results.</p>
+ Default value is <code>1</code> per processor up to and including
version 7.0.27.
+ Default value as of version 7.0.28 is <code>1</code> per processor but
not more than 2.<br/>
+ When accepting a socket, the operating system holds a global lock. So
the benefit of
+ going above 2 threads diminishes rapidly. Having more than one thread
is for
+ system that need to accept connections very rapidly. However usually
just
+ increasing <code>acceptCount</code> will solve that problem.
+ Increasing this value may also be beneficial when a large amount of
send file
+ operations are going on.
+ </p>
</attribute>
<attribute name="pollerThreadPriority" required="false">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]