2016-07-12 51 views
0

我有一個運行在使用嵌入式Jetty服務器的GCE應用程序,在GCE實例中,由負載平衡器驅動。我使用TCP負載平衡器加載測試設置,在延遲20毫秒的情況下,我可以達到2400 QPS。但與HTTP負載平衡器設置相同,我只能在012ms以下延遲1000ms,延遲低於20ms。區別btw Gcloud TCP vs HTTP負載平衡器

調試時我發現使用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

詳細瞭解非HTTP負載平衡器。這是LVS的一種嗎?如果是,那麼答案可能很簡單 - LVS比HTTP LB具有更好的性能。 – user1641854

回答

0

原來,這能解決問題:

httpConnector.setIdleTimeout(100L); 

雖然我不知道爲什麼有gcloud TCP負載均衡器,這不是一個問題呢。