ミッションたぶんPossible

どこにでもいるシステムエンジニアのなんでもない日記です。たぶん。

WindowsとLinuxでCPU, HDD, メモリの使用率を調べる方法


 仕事で使うことになったので、備忘録的にメモメモ。LinuxWindowsでそれぞれCPU, HDD, メモリ使用率を取得して、ログとして都度吐き出す、という簡単なコマンドとその活用法を調べました。


Linux: CPU, メモリ使用率

 「top」コマンドで出力可能。オプションは「-d」、コマンドの実行間隔を秒単位で指定できます。以下例。Ctrl+cでコマンドを止めるまで出力を繰り返します。

[root@centos01] # top -d 60 >> top.txt

topコマンドを60秒間隔で実行し、実行結果を「top.txt」に出力






Linux: HDD使用率

 「df」コマンドで出力可能。ただし、「top」と違い、一回動かすと動作を停止してしまうので、繰り返し実行するようシェルスクリプトを書いてあげる必要があります。以下例。


- chkhdd.sh -

while true
do
date >> hdd.txt
df >> hdd.txt
sleep 3600
done

※「while true」で無限ループを作り、3600秒(=1時間)間隔で実行するよう「sleep」を実行、「df」コマンドの出力には日時がないので、「date」コマンドで日時を付加しています。





Windows: CPU使用率

 typeperfコマンドを使用します。実行するとPC全体のCPU使用率を取得できます。

C:\> typeperf -sc 1440 -si 60 "\Processor(_Total)\% Processor Time" > typeperf.txt

※1分(60秒)間隔で1日(1440回)実行する場合の記述





Windows: メモリ使用率

 tasklistコマンドを使用します。tasklistは単発動作で終了してしまうので、繰り返し実行するようにバッチファイルを書いてあげる必要があります。


- chkmmr.bat -

@echo off
:label01
echo %date% %time%
tasklist
ping localhost -n 10 > nul
goto label01

※10秒間隔で実行する場合の記述。ファイル出力する場合にはバッチファイル実行時、後ろに「 > xxx.log」等ファイル名を記述すること





Windows: HDD使用率

 全然知らなかったんですが、「dir」コマンドで指定ディレクトリの空き容量って取れるんですね。今まで散々(たぶん一番)叩いてきたコマンドなのに…。必要なのは一番最後の行だけなので、ログファイル回収後そこだけ別途解析してやればいいと思います。


- chkmmr.bat -

@echo off
:label01
echo %date% %time%
dir C:\
ping localhost -n 10 > nul
goto label01

※10秒間隔で実行する場合の記述。ファイル出力する場合にはバッチファイル実行時、後ろに「 > xxx.log」等ファイル名を記述すること