2017-01-09 7 views
0

Dropwizardバージョン:0.9.2Dropwizardのリクエスト処理が延期されています

私はライブサーバーでかなり簡単なdropwizardの残りのAPIを持っています。 その前にnginxがあります。 多くのリクエストに対して、nginxは、サービスがSLA(150 ms)に違反したため、クライアントのタイムアウト(ステータス499)を示しています。 アクセスログとアプリケーションログを調べると、要求がdropwizardに遅れて到着したように見えます(nginxがすでにクライアントのタイムアウトを宣言してから約250ms)。 200300400500にセレクタ数を設定) 1:Dropwizard側のデバッグログを有効にする

は、選択したスレッドは私が含む複数のものを試してみました後半

をウェイクアップしていることが分かりました。誰も助けなかった。 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の専用スレッドプールがあります。残りのスレッドはアプリケーションスレッドになります。インターネット上で提案されているように、アプリケーションのスレッドがセレクタの数を超えている場合は役に立たない。アドバイスは、それをセレクタスレッドとほぼ同じに保つことでした。また、idletimeoutをデフォルトの30秒から10秒に減らしました。また、ログバックの非同期アペンダーのキューサイズを設定して、何かをブロックしていたかどうかを確認しようとしました。 –

関連する問題