/ /フルヒープメモリが原因でサーバーが遅くなります-ガベージコレクションを有効にしますか? (終了)-Java、メモリ、ガベージコレクション

ヒープメモリがいっぱいになるとサーバーのガベージコレクションが遅くなる(Closed) - java、memory、garbage-collection

nginx、apache、tomcat7を備えたWebサーバーがあります。 このサーバーでjavaプログラムを実行します。 また、パテでサーバーにアクセスできます。

通常、1日1回サーバーのヒープメモリ(CMS Old Gen-100%のヒープメモリ)がいっぱいで、プログラムが本当に遅くなっています。次に、サーバーにログインし、tomcat7サービスを再起動します。ヒープメモリがクリアされ、プログラムが再び正常に実行されます。

そこで、2つの質問があります。

  1. プログラムまたはサーバーからガベージコレクションを実行する必要がありますか?
  2. ガベージコレクションがサーバー上にある場合、どのように有効にしますか?

これがあなたにとって十分な情報であるかどうかはわかりません。何か必要な場合はお知らせください。

敬具

編集:

最大メモリプールタイプ CMS Old Genヒープメモリ316.81 MB Edenスペースヒープメモリ66.56 MB サバイバースペースヒープメモリ8.31 MB 合計391.68 MB

これはApache Managerからの抜粋です(残念ながら、まだ写真を投稿できません。)CMS Old Genが100%になっていると、プログラムの実行が非常に遅くなります。 アプリのローカルバージョンでJVMモニターを起動して、リークがないか確認しました。どうやら、ガベージコレクターはそこで適切に実行されますが、サーバー上では実行されません。

助言がありますか?

そのため、ヒープサイズを増やして、リークを閉じようとしています。 手伝ってくれてどうもありがとう。またねー

回答:

回答№1は2

ガベージコレクターはデフォルトで実行されます。実行されていることを確認したい場合は、-Xloggc:{file}オプションを使用してjvmを起動し、アクティビティのデバッグ情報を取得できます。

コメントがすでに指摘しているように、tomcatを再起動してヒープをクリアする必要がある場合、おそらくアプリケーションでメモリリークが発生しています。