ColdFusionアプリケーションの誤動作に関するWindows CPU通知
-
08-07-2019 - |
質問
ColdFusionで書かれたWebアプリケーションがあり、定期的にサーバーのCPUの100%の使用を開始し、ColdFusionサービスをクラッシュさせます。
問題を自分で再現することができなかったので、CPU使用率が上昇し始めたときに電子メールで通知するユーティリティを見つけたいので、サーバーにアクセスしてFusionReactorを見て続いて、不正なコードを特定します。
Googleで検索して適切なユーティリティが見つからなかったので、この種の監視を行うことができるツールを他のプログラマが見つけたかどうかを尋ねると思いました。私のニーズの詳細を考えると、私は自分の監視ツールを書くことを望まない。
全体的な問題にアプローチするための他の提案があれば、私もそれらを聞きたいです。
回答への応答:
Windows perfmonを使用してコマンドラインをトリガーすることは有望です。誰でもそれを行う方法についてのチュートリアルを教えてもらえますか?
SNMPトラップを受信するように設定された監視システムはありません。
ColdFusion 8 Standard Editionを実行していますが、ColdFusionパフォーマンスモニタリングツールは含まれていません。エンタープライズのみが含まれています。
Peter Boughtonの答えはおそらく問題を解決することを可能にしますが、CPUが急上昇し始めるので積極的に問題に対処するのに役立たないので、私はまだ通知ソリューションを探しています。
解決
数週間前に同様の問題が発生し、AlwaysUpというプログラムに転送されました。
http://www.coretechnologies.com/products/AlwaysUp/
以下の任意の組み合わせでプロセスを監視します
- メモリ使用量
- CPUの使用法
- 無反応
- カスタムスクリプトを実行して、リセットする必要があるかどうかを判断します
ここから、サービスを再起動するか、通知メールを送信するか、ログを記録するスクリプトを実行するなどができます
30日間のデモがあり、2日目に販売されました。問題の一番下に到達するまでの間に迅速に修正できます。
他のヒント
Windowsでは、Windowsに標準装備されているパフォーマンスおよび監視ツール(perfmon)を使用できます。 CPUが特定のポイントに達すると、ほとんどのシステム監視ツールで取得できるSNMP通知をトリガーし、そのように警告することができます。また、コマンドを実行したり、特定に役立つその他のさまざまな便利な操作を実行したりすることもできます。
Coldfusion 8を実行している場合は、別の代替手段であるパフォーマンスモニターを使用できます。アラートを設定して、メールを送信したり、別の基準について別のCFCを呼び出したりすることができます。
サーバーモニターを頻繁に使用します-アラートをあまり使用していなくても、セットアップが簡単に見えるので、おそらく検討する価値があると思いますが、これは素晴らしいツールです。
全体的なアプローチについて...
当社では、1台のサーバーからWindows Perfmonを使用して30秒ごとにすべてのCFサーバーをポーリングし、合計CPUや平均応答時間などのメトリックを取得します。これをCSVファイルに記録します。数分ごとにスケジュールされたタスクが実行され、これらのファイルの詳細が読み取られ、DBテーブルに保存されます。次に、ファイルが大きくなりすぎないようにファイルを切り捨てます。
最後に、1日に1回、すべてのサーバーのCPUおよび平均応答時間をグラフ化した、すべてのサーバーメトリックスの詳細レポートを技術部門に送信します。
これは、サーバーのパフォーマンスを開発者の意識に留め、傾向(CPU使用率の低下など)を早期に発見するための優れた方法であることがわかりました。メトリックスの測定を開始するまで、パフォーマンスが悪いかどうかわからないため、非常に効果的であることがわかりました。
この通知は必ずしも発生する必要はありません-FusionReactorにはログファイルがあるため、発生後にこれらを確認し、その時点で実行中のスクリプトを特定できます。
また、いつ発生するかわからない場合、ログの1つにメモリとCPUの使用率が含まれていると確信しています。ただし、現在の名前を思い出すことはできませんが、ログし、関連情報を見つける必要があります。