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 だからでは? 」

おっしゃるとおりです><
ファイルディスクリプタ増やしたら出なくなりました。