我正在运行WildFly 10 (最终版本),我有一个非常简单的JAX服务器应用程序。它只有一个测试端点,等待一个,然后返回HTTP状态。
@Path("/test")
public class TestEndpoint {
@GET
@Produces("application/json;charset=UTF-8")
public Response get() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return Response.ok().build();
}}
麻烦的是,通过这种设置,我只能每秒到达10请求。不用了,我正在用SoapUI LoadTest -100个线程测试,请求之间延迟1ms。当另一台计算机的另一个用户连接到这样的WildFly应用程序时,他每秒最多也会收到10个请求。所以看起来这个限制是每个用户的。
我已经在不同的服务器上,甚至在本地主机上尝试过这个应用程序,它似乎总是每秒10个请求(大约9.8-10.5 req )。(每秒)。所有CPU核心的使用率都很低(平均为8%)。
我买了一本名为“WildFly管理指南”的书,t在书中提到了一些的设置。
什么都帮不上忙。即使在压力测试下,jboss也表明了这一点:
{
"outcome" => "success",
"result" => {
"active-sessions" => 0,
"context-root" => "/",
"expired-sessions" => 0,
"max-active-sessions" => 200,
"rejected-sessions" => 0,
"server" => "default-server",
"session-avg-alive-time" => 0,
"session-max-alive-time" => 0,
"sessions-created" => 0,
"virtual-host" => "default-host",
"servlet" => {"com.test.ApiConfiguration" => undefined},
"websocket" => undefined
}
}这部分很有趣
"servlet" => {"com.test.ApiConfiguration" => undefined},
"websocket" => undefined这是我的配置:
<thread-pools>
<thread-pool name="default">
<max-threads count="1000"/>
<keepalive-time time="100" unit="milliseconds"/>
</thread-pool>
</thread-pools>Web 的性能--我还将用于应用程序的另一个部分。这个应用程序被打包在同一个WAR中。当部署到同一台服务器上时,应用程序可以每秒处理600-700个请求,但请求完成所需的时间较少,因此似乎限制仍然相同。
当然,我使用Resteasy作为WildFly中的默认JAX实现。
这是与WildFly相关的问题,还是其他问题?
发布于 2016-03-21 00:20:12
每次我看到这样的问题时,通常都会遇到客户端限制连接数量的问题。
默认情况下,Wildfly将创建16 * CPU的工作线程,这将给您超过10 req/秒(即使您只有一个CPU,它应该给您16) (IO线程在这里不应该相关)。
我会查看SoapUI设置“每个主机的最大连接”,我认为您会发现基准客户端只是没有创建足够的连接。
https://stackoverflow.com/questions/36112766
复制相似问题