Jetty のベンチマークを取ってみた
- Linux version 2.6.18-164.el5xen
- Memory: 532480k
- http://localhost:8080/
Jetty 6
w/o keepalive
concurrency | num | [#/sec] | |||
10 | 10000 | 1352.23 | |||
100 | 10000 | 3793.19 | |||
1000 | 10000 | 3836.32 |
w/ keepalive
concurrency | num | [#/sec] | |||
10 | 10000 | 3351.16 | |||
100 | 10000 | 8065.65 | |||
1000 | 10000 | 6684.50 |
Jetty 7
w/o keepalive
concurrency | num | [#/sec] | |||
10 | 10000 | 910.58 | |||
100 | 10000 | 2116.24 | |||
1000 | 10000 | 2488.36 |
w/ keepalive
concurrency | num | [#/sec] | |||
10 | 10000 | 1333.15 | |||
100 | 10000 | 3350.84 | |||
1000 | 10000 | 4750.80 |
どっちとも負荷を与え続けると
2010-05-17 12:09:34.718:INFO::org.eclipse.jetty.io.nio.SelectorManager$SelectSet@3ff2947d JVM BUG(s) - injecting delay38 times
の警告を出したり
2010-05-17 11:31:19.828:WARN::EXCEPTION java.io.IOException: Too many open files at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145) at org.eclipse.jetty.server.nio.SelectChannelConnector$1.acceptChannel(SelectChannelConnector.java:75) at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:668) at org.eclipse.jetty.io.nio.SelectorManager.doSelect(SelectorManager.java:182) at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:135) at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:852) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:437) at java.lang.Thread.run(Thread.java:619)
のExceptionをたまに吐くけど、よくわかんない。
- -
追記:2010/05/17 19:40
http://b.hatena.ne.jp/kazuhooku/20100517#bookmark-21584084
id:kazuhooku「too many open files は ulimit -n == 1024 だからでは? 」
おっしゃるとおりです><
ファイルディスクリプタ増やしたら出なくなりました。