3

実稼働環境でapache-tomcat-6.0.35を使用しています。私たちのアプリケーションは、スモールインスタンスを使用してAmazonEC2でホストされています。私たちが直面している問題は、apache tomcatが100%CPUを使用していることです。htopを実行して検証しましたが、tomcatの複数のスレッドが実行されていることが示されています。

OutアプリケーションはGrails2.0.1で開発されました。

なぜそれが起こっているのか私たちは困惑していますか?どんな体も解決策を提案できますか?

ありがとう

4

2 に答える 2

7

推定原因

これは、最近のうるう秒と、Linux、MySQL、Java、そして実際には Tomcat の一部を含むかなりの数の認識されていない / 準備ができていない IT システムへの影響によって引き起こされた可能性が最も高いです。ストーリー全体:

[...]、サイトを提供するために使用する Java 対応の Tomcat Web サーバーでリープ バグの問題が発生したと述べています。「<strong>Tomcat を実行している当社の Web サーバーからの応答はほとんどありませんでした (一部の要求は処理できました)」と、サイトの広報担当者からの電子メールを読みました。「サーバーをリセットするためにサーバーに接続できました。サーバーを再起動するだけで問題は解決しました。」[鉱山を強調]

回避策/修正

したがって、解決策は通常、電源をオフにして再度オンにすることです。つまり、問題のサーバーを再起動しますが、たとえば次のコンテキストで提案されているように、日付を設定するだけでこれを回避できる場合があります。

背景/提案されたソリューション

根底にある問題は非常にトリッキーですが、原則としてほとんど知られていないため、これについて警告し、説明し、原則として対処する方法について提案を提供する著名な投稿/ユーザーが存在することに注意してください。

于 2012-07-03T16:22:51.693 に答える
0

提供された情報では、確かなことは何も言えません。パフォーマンスの問題については、プロファイラー、特にJProfilerを使用してこの問題の原因を調査することをお勧めします。このようにして、問題がどこにあるかを特定することができます。

このプログラムには試用ライセンスがあります。ざっと見るにはそれで十分だと思います。

更新: あなたの質問を注意深く読んだ後、ウェブサイトで多数の tomcat インスタンスが実行されていることがわかりましたか? これは、以前の tomcat インスタンスが停止に失敗したことを意味します。それらは引き続き実行され、すべてのリソースを占有します。これは可能です。新しい tomcat プロセスを開始する前に、古い tomcat プロセスをすべて強制終了する必要があります。

Linux を使用している場合は、サーバーを再起動する前に、"kill -9" によって手動でプロセスを強制終了できます。

于 2012-07-05T03:41:09.423 に答える