• ベストアンサー

サーバ高負荷の原因を特定したいのです

サーバを立てていますが、高負荷の警告がたびたび出ます。不在時に出るのことが 多いので、その時間にどんな処理が動いているのか特定できません。その時間に スケジューリングしている処理はないのですが。 イベントログにもその時間の記録はなく、他に「何時に」「何の処理」が動いて いたか」を記録する方法はないでしょうか。(高負荷となった時間はわかります) サーバはWindowsServer2003EnterpriseEditionSP1です。 カウンタログを取ってみましたが、何の処理が動いていたかは分かりませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>「その時間帯に何が稼動していたのか」を取得する方法が知りたいです。 ⇒その情報だけでいいのであれば、パフォーマンスログではなく "tasklist"コマンドを対象の時間に実行すればいいのでは?(batを作成して、タスクスケジューラーで実行するなど) ※2003、xpproで使用可能です。 http://www5f.biglobe.ne.jp/~ayum/command/022.html 【例】 (1)以下のコマンドを記載したbatファイルを作成 "tasklist /v > c:\log" ※この場合は、「c:\log」にlogを作成する (2)手順(1)で作成したbatをタスクスケジューラで対象の時間に実行する ように設定 (3)実行後、「c:\log」ファイルを開き、対象の時間に動いていたプロセスが記録されているので、確認する。 -- ただ、原因調査の場合は「いつ」「何が(CPUが)」「どのように(高負荷)」「何によって(oracleのプロセス)」などを知る必要があるので、やはりパフォーマンスログを仕掛けたほうが有効と考えます。 http://www.fmmc.or.jp/fm/nwts/w2003s/ch6/6_7.html

Bon21002
質問者

お礼

詳しい説明をありがとうございました。 確認したところOracle.exeの負荷が異常に高くなっていました。 なぜこの時間に発生したのかは不明なのですが、別の要件でサーバ再起動を実施したところ(普段は24時間稼動しています)、出なくなりました。 Oracleの見直しを行う方向でおります。 どうもありがとうございました。

その他の回答 (1)

回答No.1

カウンタログとは、「パフォーマンスログ」のことでしょうか。 であれば、CPUとか、プロセスごとに状態をロギング出来るのでは? 事象が発生する時間が分かっていれば、タスクマネージャーで目視すればいいのでは?と考えますが、検討違いであればごめんなさい。。

Bon21002
質問者

お礼

回答ありがとうございます。 >事象が発生する時間が分かっていれば、タスクマネージャーで目視すればいいのでは? 発生時間が真夜中と早朝で、立ち会えないという事情があります。 >カウンタログとは、「パフォーマンスログ」のことでしょうか。 そうです。良く分かっていないのですが「プロセスごとに」というのは、例えばOracleの稼動状況のみ監視できるということでしょうか。 「その時間帯に何が稼動していたのか」を取得する方法が知りたいです。

関連するQ&A