Tomcat使用Jersey Jax-RS在单个服务器上执行15K req /秒

cod*_*ing 5 java tomcat scalability membase

我尝试在VPS上测试一些东西,并且每秒接近10K请求,这是一个simple 'hello world' servlet,更不用说调用membase了.

我的VPS是2 x Intel Xeon X5570,四核"Nehalem"架构.

注意:我不是java专家,也不是tomcat专家,这是默认设置.

有没有其他人处理过这么高的流量,可以解决一些问题?

我使用了apache bench,我运行了大概4-5次,对服务器做了大约100K的请求.

原创:如何在tomcat上处理2000多个请求/秒?

Bal*_*usC 16

打开NIO(非阻塞IO).默认情况下,此功能未启用.如果没有NIO,每个HTTP连接都由单个线程处理,并且限制取决于可用线程的数量.使用NIO,单个线程可以处理多个HTTP连接,并且限制取决于可用的堆内存量.大约2GB,你可以达到20K连接.

打开NIO是将Tomcat中元素的protocol属性更改为.<Connector>/conf/server.xml"org.apache.coyote.http11.Http11NioProtocol"

<Connector
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="80"
    redirectPort="8443"
    connectionTimeout="20000"
    compression="on" />
Run Code Online (Sandbox Code Playgroud)