2

Webアプリのメモリ使用量を見つけるためのランタイムソリューションを探しています。さまざまなクライアントが複数のWebアプリをデプロイするTomcatを含むフレームワークを提供しています。そのうちの1つが大量のメモリを消費するため、プロセス全体がクラッシュすることがあります。これを検出し、問題のあるWebアプリをアンデプロイ\再デプロイするマネージャーWebアプリ(Tomcatのマネージャーなど)が欲しいのですが。別の解決策(それは不可能だと思います)は、ヒープのスライスを各Webアプリに個別に割り当てることです。

クライアントに既存のWebアプリを変更するように要求することは可能ですが、私はそうしません。

何かご意見は?

4

3 に答える 3

3

各 webapp の割り当てをインターセプトすることはできず、ガベージ コレクターからのコールバックもないため、各 webapp が使用するメモリ量を知ることはできません。複数の Tomcat インスタンスをデプロイして、1 つの「不正な」Web アプリケーションが他のすべての Web アプリケーションを強制終了しないようにする方がよいと思います (Web アプリケーションごとに最大 1 つの Tomcat ですが、重要度に応じて、グループを作成してインスタンスの数を制限することもできます)。さまざまなアプリケーションの)。

于 2012-09-04T11:44:16.477 に答える
1

Tomact は単一の Java プロセスとして実行されるため、アプリケーションごとにメモリを割り当てるのは困難です。MaxPermSize,-Xmxのみを増やすことができます。

Tomcat のリークディテクターを確認できますが、他のアプリのソースコードを変更できないため、ほとんど役に立ちません。

于 2012-09-04T11:42:40.977 に答える
0

あなたが見たいのはVisualVMだと思います。これにより、JVMでのTomcatsのメモリ使用量の概要がわかります。

http://techblog.zabuchy.net/2012/monitoring-of-tomcat-with-visualvm-and-visualgc/

于 2012-09-04T11:39:24.833 に答える