2017-08-21 14 views
0

私はSpring Frameworkを使用してREST APIを開発しました。これをRHELのTomcat 8にデプロイすると、ローカルマシン(Windows 8.1)でのデプロイメントと比べて、POST要求とPUT要求の応答時間が非常に長くなります。 RHELサーバーでは7〜9秒かかりますが、ローカルマシンでは200ミリ秒未満です。Tomcat 8 - RHELにデプロイするとPOSTおよびPUTリクエストが遅くなる

RHELサーバーのRAMとCPUは、ローカルマシンのRAMとCPUの4倍です。デフォルトのTomcat設定は、WindowsとRHELの両方で使用されます。 GET要求はローカルマシンと同じかそれ以上の時間がかかるのに対して、最初のバイトに要した時間はPOST要求とPUT要求のほうが多いため、ネットワークレイテンシが排除されます。

Visual JVMを使用してリモートJVMのプロファイリングを試してみました。私のカスタムコードには大きなホットスポットはありません。

enter image description here

私は他のRHELサーバでこの同じ問題を再現することができました。この性能の問題を解決するのに役立つ風袋設定がありますか?

答えて

0

配置したプロファイリングログは、何も意味がありません。以下を示します。

ブロッキングキューがブロックされています。これが目的であるため、これは正常です - ブロックすること。これはそれから取ることが何もないことを意味します。

ソケットへの接続を待っています。どちらも普通です。

RHEL 8の物理/ハードウェアの設定は指定していません。ここのオペレーティングシステムは唯一のものではないかもしれません。それでもネットワークの待ち時間を解消することはできません。あなたはSANを持っている場合、SANは潜在的に潜在的な可能性があります。 SSDドライブを使用していて、RHELがSANを使用してレプリケーションを行っている場合は、そこにネットワーク遅延が発生する可能性があります。

オペレーティングシステムに焦点を当てるよりも、ディスクのIOを最初に確認する傾向があります。サーバーが共有されている場合、ディスクを占有する他のプロセスが存在する可能性があります。

GETリクエストに同じ時間がかかるため、レイテンシが排除されていると言われています。これはクライアントとアプリケーションサーバーの間のレイテンシだと言っているので、それを克服するには十分ではありません。アプリサーバーのマシンとSANまたはディスクの間の待ち時間や、そこにあるストレージをチェックしません。

関連する問題