Windows サービスとして使用される C# プログラムがあるとします。サービスが暴走し、CPU とメモリを狂ったように消費しているとしましょう。これは本番システムであるため、すぐに再起動する必要があります。そのため、実行時の情報を収集する時間があまりありません。たぶん、タスクマネージャーをざっと見てください...それだけです。
その後、私が持っているのは、事後分析用のlog4netログファイルとWindowsイベントログだけです。
問題の原因がわかったとします。他の誰かがそれを修正し、おそらくプログラマーが追加のログを追加するので、次回同様の問題をより迅速に見つけることができます. それにもかかわらず、私はまだログ ファイルの品質に依存しており、次回は何らかの形でログに問題が現れることを願っています。
事後分析を行う他の方法もありますか? スレッド ダンプ (Java など)、メモリ ダンプなど、事後分析に役立つものでしょうか? ビルトインの .NET フレームワーク ツールが役立つのではないでしょうか?
私は実際のプロジェクトの経験と、ほとんどのプログラマーにとって非常に現実的なこのメンテナンスの問題にどのように取り組もうとしているのかに非常に興味があります。