我有一个使用嵌入式Jetty服务器运行的泽西应用程序,在GCE实例中,由负载均衡器提供。我使用TCP负载均衡器加载测试设置,我能够以低于20ms的延迟获得大约2400 QPS。但是,与HTTP负载均衡器相同的设置我只能绕过< 1000 QPS,延迟低于20ms。
调试时我注意到使用HTTP LB时有更多打开的文件描述符。
以下是我的嵌入式码头配置,任何想法都会很棒! :)
int httpPort = 8080;
int maxThreads = 1024;
int minThreads = 32;
int idleTimeout = 500;
QueuedThreadPool pool = new QueuedThreadPool(maxThreads, minThreads, idleTimeout, new java.util.concurrent.ArrayBlockingQueue(6000));
Server server = new Server(pool);
ServerConnector httpConnector = new ServerConnector(server);
httpConnector.setPort(httpPort);
server.addConnector(httpConnector);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
context.setContextPath("/");
server.setHandler(context);
答案 0 :(得分:0)
原来这解决了这个问题:
httpConnector.setIdleTimeout(100L);
虽然我不确定为什么使用gcloud TCP负载均衡器还不是问题。