私はローカルマシン上でTomcat/Springサーバーを実行しています。サーバーにPOST要求をすばやく連続して送信する別のプログラムを実行しています。各リクエストは、リモートPostgresqlデータベースの更新を引き起こし、次のリクエストが送信される前に終了します(応答コードをフラッシュします)。サーバーがオーバーロードされました
約100リクエスト後、サーバーは応答に時間がかかり始めます。約200リクエスト後、サーバーは応答を停止し、EclipseまたはWindowsタスクマネージャーで手動でkillするまで、使用可能なすべての処理を行います。
ガベージコレクションに関するエラーが発生したサーバーもありますが、これを試した最後の数回は見たことがありません。このガベージコレクションのエラーを見たときに、20回のリクエストごとに5秒のポーズを追加して、サーバーにガベージコレクションの時間を与えようとしましたが、役に立たなかったようです。
このサーバーの過負荷の原因を特定して解決するにはどうすればよいですか。
メモリリークがあります。 –
@ KarthikeyanVaithilingam-それは実際に役立って、正しい方向に私を指摘、ありがとう。私は今、http://stackoverflow.com/questions/40119/how-to-find-a-java-memory-leakを見ています... –
JVMエクスプローラのプロファイリングを使用して、各要求は、しかし決して廃棄されませんでした。関連する要求の最後に各セッションを無効にすることによって、メモリの問題は解決されました。 –