diff options
author | Greg Wilkins | 2011-02-24 03:56:48 +0000 |
---|---|---|
committer | Greg Wilkins | 2011-02-24 03:56:48 +0000 |
commit | c952afa8fc2c12788f6e1bdf0ba44df3119b2f70 (patch) | |
tree | 4a995376c48e6f8bd8b2483d93d5d7b35cadf75f | |
parent | 1fd3bc1de230ef2b4cd83dc89022ea35c6b66ddf (diff) | |
download | org.eclipse.jetty.project-c952afa8fc2c12788f6e1bdf0ba44df3119b2f70.tar.gz org.eclipse.jetty.project-c952afa8fc2c12788f6e1bdf0ba44df3119b2f70.tar.xz org.eclipse.jetty.project-c952afa8fc2c12788f6e1bdf0ba44df3119b2f70.zip |
338035 Default acceptors 0.25*CPUs and improved selector/acceptor thread names
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2827 7e9141cc-0065-0410-87d8-b60c137991c4
4 files changed, 43 insertions, 18 deletions
diff --git a/VERSION.txt b/VERSION.txt index cc60fbaf86..b8620c2205 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -17,6 +17,7 @@ jetty-7.3.1-SNAPSHOT + 337878 Extra tests of security constraints + 337896 HttpExchange.timeout does not override HttpClient.timeout + 337898 set client HttpConnection max idle time from exchange timeout + + 338035 Default acceptors 0.25*CPUs and improved selector/acceptor thread names. + JETTY-1317 More elegent handling of bad URIs in requests + JETTY-1331 Allow alternate XML configuration processors (eg spring) + JETTY-1335 HttpClient's SelectConnector clean-up diff --git a/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java b/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java index 1cda046081..38b058713b 100644 --- a/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java +++ b/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java @@ -39,7 +39,6 @@ public class LikeJettyXml { public static void main(String[] args) throws Exception { - Log.getLog().setDebugEnabled(true); String jetty_home = System.getProperty("jetty.home","../jetty-distribution/target/distribution"); System.setProperty("jetty.home",jetty_home); diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java b/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java index a437a2f48a..ffde1b9907 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java @@ -793,6 +793,7 @@ public abstract class AbstractConnector extends HttpBuffers implements Connector return name + "@" + (getHost() == null?"0.0.0.0":getHost()) + ":" + (getLocalPort() <= 0?getPort():getLocalPort()); } + /* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */ @@ -817,7 +818,7 @@ public abstract class AbstractConnector extends HttpBuffers implements Connector _acceptorThread[_acceptor] = current; name = _acceptorThread[_acceptor].getName(); - current.setName(name + " - Acceptor" + _acceptor + " " + AbstractConnector.this); + current.setName(name + " Acceptor" + _acceptor + " " + AbstractConnector.this); } int old_priority = current.getPriority(); diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/nio/SelectChannelConnector.java b/jetty-server/src/main/java/org/eclipse/jetty/server/nio/SelectChannelConnector.java index 7d42d7a85c..f79c27acb4 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/nio/SelectChannelConnector.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/nio/SelectChannelConnector.java @@ -77,13 +77,22 @@ public class SelectChannelConnector extends AbstractNIOConnector public SelectChannelConnector() { _manager.setMaxIdleTime(getMaxIdleTime()); + setAcceptors(Math.max(1,(Runtime.getRuntime().availableProcessors()+3)/4)); } /* ------------------------------------------------------------ */ @Override public void accept(int acceptorID) throws IOException { - _manager.doSelect(acceptorID); + ServerSocketChannel server = _acceptChannel; + if (server!=null && server.isOpen()) + { + SocketChannel channel = _acceptChannel.accept(); + channel.configureBlocking(false); + Socket socket = channel.socket(); + configure(socket); + _manager.register(channel); + } } /* ------------------------------------------------------------ */ @@ -238,30 +247,45 @@ public class SelectChannelConnector extends AbstractNIOConnector super.doStart(); - // start a thread to accept new connections - _manager.dispatch(new Runnable() + // start a thread to Select + for (int i=0;i<getAcceptors();i++) { - public void run() + final int id=i; + _manager.dispatch(new Runnable() { - final ServerSocketChannel server=_acceptChannel; - while (isRunning() && _acceptChannel==server && server.isOpen()) + public void run() { + String name=Thread.currentThread().getName(); try { - SocketChannel channel = server.accept(); - channel.configureBlocking(false); - Socket socket = channel.socket(); - configure(socket); - _manager.register(channel); + Thread.currentThread().setName(name+" Selector"+id+" "+SelectChannelConnector.this); + while (isRunning()) + { + try + { + _manager.doSelect(id); + } + catch(ThreadDeath e) + { + throw e; + } + catch(IOException e) + { + Log.ignore(e); + } + catch(Exception e) + { + Log.warn(e); + } + } } - catch(IOException e) + finally { - Log.ignore(e); + Thread.currentThread().setName(name); } } - } - }); - + }); + } } /* ------------------------------------------------------------ */ |