Windows環境のCognosでtempディレクトリの使用状況を確認する


はじめに

Cognosのレポート実行時に一時ファイルがどの程度生成されているか、tempディレクトリの使用量はどの程度かを確認したいことって多いですよね。
Linux環境だとNMONなどで簡単に取得できるのですが、Windows環境だとなかなかそうはいかないです。

Windows環境においても特定のレポート実行時のtempの使用状況をモニターしたい場合の手法を確立することができましたのでご紹介します。

Windows環境でtempディレクトリの使用状況をモニターする

tempディレクトリの使用状況をモニターするPowerShellを仕掛けます。
PowerShellの中身はこんな感じです。

cognos_temp_monitor.ps1
$i = 1

cd E:\cognos\temp

while ($i -le 5) {
date >> 'F:\work\cognos_temp_monitor\cogtempmonitor.txt'
ls | ForEach-Object -Process { "$_"; Get-ChildItem -Path "$_" -Recurse -Force | ForEach-Object -Begin { $Len = 0 } -Process { $Len = $Len + $_.Length } -End { $Len / 1024 / 1024 / 1024 }; " " } >> 'F:\work\cognos_temp_monitor\cogtempmonitor.txt'
sleep 1;
}

※tempディレクトリ、ログ出力先ディレクトリ、ps1ファイル名、ログファイル名などは各環境に合わせて設定してください
※ps1コマンドを使用するので最小時間間隔は1秒となります

レポート実行前にps1スクリプトを実行し、temp使用状況を確認したい時間が終了したらps1スクリプトを停止します。

取得した結果をテキストエディタで整形する

PowerShellのログをExcelでグラフ化する事前準備としてテキストエディタで整形をします。
下記が手順になります。

  1. 取得したログファイルをテキストエディタで開きます。※ここではsakuraエディタで開いています
  2. 「置換」を開く (Ctrl+r でショートカット)
  3. 「正規表現」にチェックを入れる
  4. 1回目の文字列置換を行う

置換文字列は下記の通り
置換前: \r\n
置換後:  <半角スペース1文字>

  1. 2回目の文字列置換を行う

置換文字列は下記の通り
置換前: 2020年
置換後: \r\n2020年

※計測年によって2021年に読み替えてください

この置換処理により1行1秒ごとのデータに整形されます。
エディタでの事前作業は以上になります。

Excelにデータをコピーする

エディタで整形したデータをExcelにコピーしグラフを作成していきます。
手順は下記の通りです。

  1. テキストエディタ上の全文字列を全選択 & コピーをする
  2. 空白のExcelファイルを開き、エディタでコピーしたデータを貼り付ける
  3. Import Wizardを開く

  1. 「スペース」をキーに列を分割する。 ※特に意識することなく「Next」で進み「Finish」を押していけば、列の分割は完了します。

グラフ化して結果を確認する

最後に必要なデータを使ってグラフを作成します。

  1. vmmで始まる列の有無を確認する ※今回の環境ではだいたいAO列あたりから左側にありました。 ※udaファイルがあれば合わせてハイライトし合計する
  2. vmm列の右側のセル(ファイル容量が記載された列)を黄色くハイライトする (目印を付ける)

  1. 1列ずつ左にズレながらデータがあるか確認する (ctrl+↓ や ctrl+↑ を使ってカーソル移動するとデータ探すのが簡単です)
  2. 目印を付けた列を合計する列を準備する。

  1. Time列とGB列を選択してF11キーでグラフを作成する

以上でtempフォルダの一時ファイル使用量がグラフ化できます。
仕様業況を確認し、想定以上に大きな一時ファイルが作成されていないか、tempディレクトリの容量は適切化などの判断材料に活用ください。