2017-01-09 49 views
0

Dropwizard版本:0​​.9.2Dropwizard請求處理推遲

我在活服務器上有一個非常簡單的dropwizard rest api。 它前面有一個nginx。 對於許多請求,nginx顯示客戶端超時(狀態499),因爲我們的服務違反了SLA(150毫秒)。 在檢查訪問日誌和應用程序日誌時,看起來該請求延遲到達dropwizard(在nginx已宣佈客戶端超時後大約250ms)。

論Dropwizard側啓用調試日誌,發現該選擇線程醒來晚

我已經嘗試了許多東西,包括: 1)設置選擇數到200300400500。沒有幫助。 2)增加接受者數量到32,50等。 3)更改GC策略 4)將dropwizard的版本從0.9.2更改爲0.9.1。

+0

- 我會建議使用dropwizard 1.0 + – Vyacheslav

+0

升級到1.0.5,仍然有同樣的問題 –

+0

我不認爲這是DW。嘗試刪除nginix並直接與DW交談,以查看這是否解決了您的問題(或者至少確定這是否是您的應用程序或配置的問題) – pandaadb

回答

0

你是否嘗試過在你的config.yaml中增加線程?

server: 
    ... 
    minThreads: 20 
    maxThreads: 400 
+0

dropwizard中的默認線程數是1024,我將選擇器線程設置爲400,接受者設置爲32,管理端口也設置10個線程。有一個大小爲100的專用線程池。剩餘的線程將是應用程序線程。正如互聯網上所建議的那樣,如果您的應用程序線程超過選擇器的數量,這是沒有用的。建議是保持它大致等於選擇器線程。還嘗試從默認的30秒減少空閒時間到10秒。還嘗試配置logback的異步appender的隊列大小,以檢查它是否阻塞了某些東西。 –