リソース調査方法

CPU

CPU使用率

【MS-DOSコマンド】
> typeperf
 -sc 実行回数
 -si 実行間隔(秒)
 "\Processor(_Total)\% Processor Time"
 > 出力先

> typeperf -sc 100 -si 60 "\Processor(_Total)\% Processor Time" > test.txt
※70%未満で正常

【実行結果】
※test.txt
"(PDH-CSV 4.0)","\\DESKTOP-ORAH022\Processor(_Total)\% Processor Time"
計測日時 CPU使用率
"05/14/2017 08:27:49.424","4.750564"
"05/14/2017 08:27:54.428","7.587563"
"05/14/2017 08:27:59.437","7.570684"
"05/14/2017 08:28:04.444","3.045124"
"05/14/2017 08:28:09.449","2.588512"

終了しています。お待ちください…
コマンドは、正しく完了しました。

【Linuxコマンド】
vmstat (実行間隔秒)
-S (単位)
-n ヘッダを1度だけ表示
-t 時間を出力

Sオプション

単位 意味
k 1,000Byte
K 1,024Byte
m 1,000,000Byte
M 1,048,576Byte

例 $ vmstat 60 -S M -n -t >> vmstat.txt

※vmstat.txt(抜粋)
-cpu- —–timestamp—–
us sy JST
2 1 2017-05-18 23:03:55
0 1 2017-05-18 23:03:58
1 1 2017-05-18 23:04:01
0 1 2017-05-18 23:04:04
0 1 2017-05-18 23:04:07
CPU使用率=us+sy

メモリ

メモリ使用率

【全体】
CPU使用率と同様
typeperf "\Memory\Available MBytes"
typeperf "\Memory\Available Bytes"

計測日時 メモリ使用量
"(PDH-CSV 4.0)","\\~\Memory\Available MBytes"
"05/19/2017 06:37:29.586","427.000000"
"05/19/2017 06:37:30.586","427.000000"
"05/19/2017 06:37:31.586","426.000000"

【プロセス単位】
バッチファイルを作成して実行
※CTRL+Cで停止するまで実行継続

MS-DOSコマンド
※memory.bat
@echo off
:retry

tasklist
フィルタリング(省略可)
/FI (フィルタ)

ping localhost -n 実行間隔(秒) > nul
ping localhost -n 10 > nul

goto retry

【実行】
> memory.bat > memory.txt

【実行結果】
memory.txt
2017/05/14 8:33:41.53

イメージ名 PID セッション名 セッション# メモリ使用量
=== === === === === 
System Idle Process 0 Services 0 4 K
System 4 Services 0 11,036 K
smss.exe 412 Services 0 972 K
csrss.exe 860 Services 0 5,088 K
wininit.exe 960 Services 0 5,440 K
csrss.exe 972 Console 1 13,036 K

バッチ ジョブを終了しますか (Y/N)? バッチ ジョブを終了しますか (Y/N)?
2017/05/14 8:33:51.29

繰り返し・・・

フィルタリング

フィルター名 内容 使用例
IMAGENAME プロセス名(イメージ名) tasklist /FI "imagename eq excel*"
PID プロセスID tasklist /FI "pid eq 1000"
SERVICES プロセスが属するサービス名
CPU使用率と同様
例 $ vmstat 60 -S M -n -t >> vmstat.txt

※vmstat.txt(抜粋)
——–memory—- —–timestamp—–
free buff cache JST
421 192 805 2017-05-18 23:03:55
420 192 805 2017-05-18 23:03:58
420 192 805 2017-05-18 23:04:01
420 192 805 2017-05-18 23:04:04
420 192 805 2017-05-18 23:04:07

メモリ使用量=free+buff+cache
メモリ使用率=メモリ使用量/メモリ総量(↓total)

【メモリ情報】
$ free -m

total used free shared buff/cache available
Mem: 2000 565 886 7 548 1263
Swap: 2045 0 2045

【メモリファイル】
/proc/meminfo

キャッシュクリア

1)ページキャッシュのクリア
sysctl -w vm.drop_caches=1

2)ディレクトリエントリ(dentry)とinodeのクリア
sysctl -w vm.drop_caches=2

1)と2)
sysctl -w vm.drop_caches=3

ハードディスク

ハードディスク使用量

バッチファイルを作成して実行
※CTRL+Cで停止するまで実行継続

【MS-DOSコマンド】
※hd.bat
@echo off
:retry
echo %date% %time%
dir C:\
dir D:\
ping localhost -n 10 > nul
goto retry

【実行】
> memory.bat > hd.txt

【実行結果】
2017/05/14 17:24:55.05
ドライブ C のボリューム ラベルは YONE です
ボリューム シリアル番号は 986B-42B6 です

C:\ のディレクトリ

2017/05/01 15:06 1,024 .rnd
2017/05/14 10:15 <DIR> Program Files
2017/05/14 10:15 <DIR> Program Files (x86)
2016/12/19 23:39 <DIR> Users
2017/05/10 19:13 <DIR> Windows

1 個のファイル 1,024 バイト
6 個のディレクトリ 848,175,714,304 バイトの空き領域
ドライブ D のボリューム ラベルは Data です
ボリューム シリアル番号は 2C1F-A7F2 です

D:\ のディレクトリ

2017/05/13 16:18 <DIR> MyData
2017/05/13 05:28 <DIR> MyProject

0 個のファイル 0 バイト
4 個のディレクトリ 23,517,810,688 バイトの空き領域

繰り返し

シェルスクリプトを作成して実行
※CTRL+Cで停止するまで実行継続

【Linuxコマンド】
while [ true ]
do
 date >> hd.txt
 df -h >> hd.txt
 sleep 10
done

【実行】
$ sh hd.sh

【実行結果】
2017年 5月 15日 月曜日 06:25:25 JST
Filesystem Size Used Avail Use% Mounted on
tmpfs 201M 3.6M 197M 2% /run
/dev/sda1 14G 8.1G 4.9G 63% /
tmpfs 1001M 232K 1000M 1% /dev/shm
MyData 50G 29G 22G 57% /media/sf_MyData

繰り返し

ファイルシステム

ファイルシステム情報
$ df -T

inodeの領域
$ df -i

ディレクトリ毎のinode使用量出力
for dir in `ll|grep ^d|grep -v "\./"|awk '{print $9}'`; do echo `find ./$dir -true|wc -l` `pwd`/$dir; done | sort -nr

echo "==== `pwd` ====" ; for i in `ls -1`;do echo -n "## $i ### " ; echo "(`find ./$i -type f |wc -l`)" ;done | sort -r

前の記事

Spring Boot 8 テスト