要約
この記事では、OKI AI エッジコンピューター「AE2100」向けのリソース確認方法を紹介します。
はじめに
AE2100では様々なAIを用いたアプリケーションを動作させることが可能です。
AIを用いたアプリケーションを動作させるには、各種リソースをうまく活用する必要があります。
各種リソースを確認するのに、一般的なコマンド使用した方法とAE2100独自の方法があります。
そこで、この記事ではAE2100上での各種リソースの確認方法をご紹介します。
対象とするリソースは以下になります。
- CPU
- CPU使用率
- CPU温度
- CPU周波数
- GPU
- GPU使用率
- GPU周波数
- VPU(MyriadX)
- VPU使用率
- メモリ
- メモリ使用率
- ディスク
- ディスク容量
- ディスクI/O
また、CPU使用率等の一部リソースは自動的に過去の使用状況を記録しているものもあります。
最後に記録されている過去のリソース使用状況の確認方法についても説明します。
CPU
CPU使用率
top
root@ae2100:~# top
top - 07:43:00 up 10 min, 1 user, load average: 7.11, 6.50, 3.58
Tasks: 173 total, 1 running, 120 sleeping, 0 stopped, 0 zombie
%Cpu(s): 53.6 us, 13.5 sy, 0.0 ni, 8.9 id, 23.3 wa, 0.0 hi, 0.7 si, 0.0 st
KiB Mem : 3619136 total, 927208 free, 1720272 used, 971656 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1726080 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10626 root 20 0 2814488 1.229g 93796 S 294.1 35.6 0:55.02 benchmark_app
269 root 20 0 2497996 133092 4544 S 17.6 3.7 1:55.36 4.3BOOT
top
コマンドではシステム全体だけでなく個々のプロセスのCPU使用率やメモリの使用量についても表示します。
ここではCPUに関する内容について説明します。メモリに関する内容はこちらを参照してください。
top
コマンドの表示は自動更新されて、リアルタイムな状況を確認することができます。
表示間隔はデフォルトで3秒になっています。
CPU使用率に関する情報を得るために注目すべき箇所のみ抽出して説明します。
システム全体のCPU使用率に関する情報は%Cpu(s)
の行に表示されています。
%Cpu(s): 53.6 us, 13.5 sy, 0.0 ni, 8.9 id, 23.3 wa, 0.0 hi, 0.7 si, 0.0 st
各項目の説明については以下の通りです。
項目 | 説明 |
---|---|
us | ユーザプロセス(OS上で動作するプロセス)のCPU使用時間の割合 |
sy | システムプロセス(OSを実現するために動作するプロセス)のCPU使用時間の割合 |
ni | nice値(プロセス実行の優先度)が変更されたユーザプロセスのCPU使用時間の割合 |
id | idle状態(待ち状態)のCPU使用時間の割合 |
wa | ディスクのI/O終了待ちをしているプロセスのCPU使用時間の割合 |
hi | ハードウェアの割り込み要求のCPU使用時間の割合 |
si | ソフトウェアの割り込み要求のCPU使用時間の割合 |
st | ハイパーバイザ(仮想マシンを実行しているソフトウェア)のCPU使用時間の割合 |
個々のプロセスの情報に関しては、CPU使用率が高いものが上から表示されるようになっています。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10626 root 20 0 2814488 1.229g 93796 S 294.1 35.6 0:55.02 benchmark_app
269 root 20 0 2497996 133092 4544 S 17.6 3.7 1:55.36 4.3BOOT
個々のプロセスのCPU使用率は%CPU
列に表示されています。
上記の例のbenchmark_app
プロセスであればCPU使用率は294.1%になります。
システム全体のCPU使用率はCPU全体を100%としたときの表記でしたが、
プロセスごとのCPU使用率はコア数×100%として表記します。
AE2100は全部で4コアなので400%を最大とした表記になります。
top
コマンドの詳細はman top
を参照してください。
CPU周波数
CPU温度
/var/log/ae2100/ae2100_rsc.log
root@ae2100:~# cat /var/log/ae2100/ae2100_rsc.log
DATE,CPU0_FREQ,CPU1_FREQ,CPU2_FREQ,CPU3_FREQ,GPU_FREQ,CPU_TEMP,CPU0_TEMP,CPU1_TEMP,CPU2_TEMP,CPU3_TEMP,SOC_TEMP,GPU_FREQ_ACT
20200702073302,1593646,1593664,1593642,1593644,100,32000,30000,32000,31000,31000,31000,200
20200702073401,1590604,1591054,1590971,1591325,650,43000,41000,42000,42000,43000,44000,650
20200702073501,1588371,1589465,1588111,1589503,650,43000,42000,42000,44000,44000,44000,650
20200702073601,1591553,1588800,1592494,1592096,650,44000,43000,43000,44000,44000,44000,650
AE2100ではCPUやGPUの周波数や温度等の統計情報を/var/log/ae2100/ae2100_rsc.log
に記録しています。
統計情報は1分ごとに記録されています。
/var/log/ae2100/
ディレクトリにはae2100_rsc.log-YYYYMMDD
または
ae2100_rsc.log-YYYYMMDD.gz
として過去の記録を保存しています。
より過去の統計情報を知りたい場合は、ローテートされたファイルを参照するようにしてください。
各項目の説明については以下の通りです。
項目名 | 説明 | 単位 |
---|---|---|
DATE | 統計情報収集日時 | YYYYMMDDHHMMSS |
CPU0_FREQ | CPU0の動作周波数 | KHz |
CPU1_FREQ | CPU1の動作周波数 | KHz |
CPU2_FREQ | CPU2の動作周波数 | KHz |
CPU3_FREQ | CPU3の動作周波数 | KHz |
GPU_FREQ | GPUの動作周波数 | MHz |
CPU_TEMP | CPU全体の温度 | ℃×1000 |
CPU0_TEMP | CPU0の動作周波数 | ℃×1000 |
CPU1_TEMP | CPU1の動作周波数 | ℃×1000 |
CPU2_TEMP | CPU2の動作周波数 | ℃×1000 |
CPU3_TEMP | CPU3の動作周波数 | ℃×1000 |
SOC_TEMP | SoCの温度 | ℃×1000 |
GPU_FREQ_ACT | GPUのアクト動作周波数 | MHz |
※ CPUXはCPUのコア0~3のことを指しています。
CPUのクロックが期待通り出ているか、負荷が一部のコアに偏っていないかなどを見ることで、
アプリケーションが正しく動作しているかの確認に使用できます。
GPU
GPU使用率
intel_gpu_top
root@ae2100:~# intel_gpu_top
render busy: 97%: ???????????????????? render space: 160/16384
task percent busy
CS: 99%: ???????????????????? vert fetch: 0 (0/sec)
GAM: 95%: ??????????????????? prim fetch: 0 (0/sec)
TSG: 86%: ?????????????????? VS invocations: 0 (0/sec)
VFE: 71%: ??????????????? GS invocations: 0 (0/sec)
GAFS: 4%: ? GS prims: 0 (0/sec)
TDG: 1%: ? CL invocations: 0 (0/sec)
GAFM: 0%: CL prims: 0 (0/sec)
SVG: 0%: PS invocations: 0 (0/sec)
SOL: 0%: PS depth pass: 0 (0/sec)
RS: 0%:
SF: 0%:
VS: 0%:
CL: 0%:
VF: 0%:
intel_gpu_top
コマンドでは今現在のGPUの使用率をリアルタイムに表示します。
表示は1秒ごとに更新されてrender busy
の行にGPUの使用率を表示しています。
また、実行するコマンドをintel_gpu_top -o <出力先ファイルパス>
とすることで、
GPU使用率ファイル出力することが可能です。
# time render% ops bitstr% ops bitstr% ops blitte% ops vert f prim f VS inv GS inv GS pri CL inv CL pri PS inv PS dep
1.00 100 167 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0
2.00 100 164 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0
3.00 100 166 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0
4.00 99 159 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0
5.00 100 161 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0
ファイル出力した場合も1秒おきに記録されていて、GPU使用率はrender%
列に記載されています。
注意点として、時刻情報time
が記録開始からの経過時間(秒)になっているので、
GPU使用率の推移を見たい場合は、記録開始時刻を別途記録しておく必要があります。
GPU周波数
/var/log/ae2100/ae2100_rsc.log
CPUの周波数及び温度で説明した/var/log/ae2100/ae2100_rsc.log
にGPUの周波数についても記録されています。
詳細は こちら を参照してください。
VPU
VPU(MyriadX)使用率
jounalctl(/var/log/syslog)
HDDLDaemonのコンフィグを変更することでVPU関連の統計情報が定期的にsyslogに出力されるようになります。
ただし、膨大な量の統計情報がsyslogへ出力されることになるため、一時的な使用を推奨します。
統計情報を確認する場合はjounalctl
コマンドを使用するか、/var/log/syslog
を直接参照してください。
HDDLDaemonのコンフィグは/usr/local/hddl/config/hddl_service.config
に配置されています。
ファイル形式はjsonになっています。
以下の項目を変更後の設定値へ変更することで、統計情報をsyslogへ出力するようになります。
項目 | 変更前 (デフォルト) |
変更後 | 説明 |
---|---|---|---|
debug_settings.debug_process.info_printer | off | on | 統計情報の出力有無の設定 |
debug_settings.info_printer.device_snapshot_mode | none | full | device snapshotの表示モードの切替設定 |
debug_settings.info_printer.client_snapshot_mode | none | base | client snapshotの表示モードの切替設定 |
debug_settings.info_printer.graph_snapshot_mode | none | base | graph snapshotの表示モードの切替設定 |
※ 上記はOpenVINOバージョン2020.3での情報になります。
各snapshotの表示モードを変更後は設定の反映が必要になります。
設定の反映にはsystemctl restart hddldaemon.service
コマンドを使用してください。
以下はそれぞれ有効にした場合の統計情報の出力例になります。
device snapshot
Jul 15 15:56:06 ae2100 hddldaemon[7738]: [15:56:06.4217][7880]I[DeviceManager.cpp:916] DeviceSnapshot(subclass=0):
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | deviceId | 1(0x1) | 0(00) |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | device | 4.3 | 4.1 |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | util% | 100.00 % | 100.00 % |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | thermal | 62.10(0) | 62.10(0) |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | scheduler | squeeze | squeeze |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | comment | | |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | resetTimes | 0 | 1 |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | cacheNum | 1 | 1 |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | cacheGraph0 | AlexNet | AlexNet |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | cacheGraph1 | | |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | cacheGraph2 | | |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | cacheGraph3 | | |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: +-------------+-------------------+-------------------+
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | status | RUNNING | RUNNING |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | fps | 60.85 | 60.79 |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | curGraph | AlexNet | AlexNet |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | rPriority | 0 | 0 |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | loadTime | 20210715 15:55:37 | 20210715 15:55:37 |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | runTime | 00:00:29 | 00:00:29 |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | inference | 650 | 651 |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | prevGraph | | |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | loadTime | | |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | unloadTime | | |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | runTime | | |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: | inference | | |
Jul 15 15:56:11 ae2100 hddldaemon[7738]: +-------------+-------------------+-------------------+
client snapshot
Jul 15 15:56:06 ae2100 hddldaemon[7738]: [15:56:01.4211][7880]I[ClientManager.cpp:417] ClientSnapshot(RegularPrint):
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | clientId | 7 |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | clientName | HDDLPlugin |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | clientFps | 121.51 |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | inferTimes | 0 |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: | waitNum | 0 |
Jul 15 15:56:06 ae2100 hddldaemon[7738]: +--------------+-------------------+
graph snapshot
Jul 15 15:55:25 ae2100 hddldaemon[7738]: [15:55:20.0743][7880]I[GraphManager.cpp:828] GraphSnapshot(RegularPrint):
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | graphId | 6 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | graphName | AlexNet |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | fpsIn | 121.79 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | fpsOut | 121.79 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | inferTimes | 1300 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | waitTaskNum | 0 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | isPending | False |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | pendingTime | 00:00:00 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | outCycleNum | 0 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | avgInferTime | 32.81 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | devReqNum | 2.00 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | deviceNum | 2 / 2 |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | graphTag | |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: | streamId | |
Jul 15 15:55:25 ae2100 hddldaemon[7738]: +--------------+-------------------+
HDDLDaemonのコンフィグについては2019年9月の古い情報ですが、ドキュメントも存在します。
古い情報なので参考程度になりますが、こちらも参照してください。
https://docs.openvinotoolkit.org/downloads/595850_Intel_Vision_Accelerator_Design_with_Intel_Movidius%E2%84%A2_VPUs-HAL%20Configuration%20Guide_rev1.3.pdf
メモリ
メモリ使用率
top
root@ae2100:~# top
top - 07:43:00 up 10 min, 1 user, load average: 7.11, 6.50, 3.58
Tasks: 173 total, 1 running, 120 sleeping, 0 stopped, 0 zombie
%Cpu(s): 53.6 us, 13.5 sy, 0.0 ni, 8.9 id, 23.3 wa, 0.0 hi, 0.7 si, 0.0 st
KiB Mem : 3619136 total, 927208 free, 1720272 used, 971656 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1726080 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10626 root 20 0 2814488 1.229g 93796 S 294.1 35.6 0:55.02 benchmark_app
269 root 20 0 2497996 133092 4544 S 17.6 3.7 1:55.36 4.3BOOT
CPU使用率の確認に使用したtop
コマンドでもメモリに関する情報を確認可能です。
システム全体のメモリ使用量に関する情報についてはKiB Mem
とKiB Swap
の行に表示されています。
KiB Mem : 3619136 total, 927208 free, 1720272 used, 971656 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1726080 avail Mem
KiB Mem
行は物理メモリに関する表示です。
各項目の説明については以下の通りです。全て単位はKiBになります。
項目 | 説明 |
---|---|
total | システムに搭載されたメモリの総量 |
free | 空きメモリ量 |
used | OSや各種プロセスに割り当てているメモリ量 |
buff/cache | バッファやキャッシュへ割り当てているメモリ量 |
KiB Swap
行はavail Mem
を除いてスワップに関する表示です。
各項目の説明については以下の通りです。こちらも全て単位はKiBになります。
項目 | 説明 |
---|---|
total | システムで使用できるスワップの総量 |
free | 空きスワップ量 |
used | OSや各種プロセスに割り当てているスワップ量 |
avail Mem | すぐに割り当て可能なメモリ量 |
AE2100ではスワップが無効になっているのでtotal
、free
、used
は全て0になります。
KiB Swap
行の最後のavail Mem
のみ物理メモリについて表示しています。
avail Mem
は物理メモリのfree
全てとbuff/cache
のうち開放可能なメモリ量を足した値になっています。
そのため、実質的な空きメモリ量を確認したいときはavail Mem
を見る必要があります。
個々のプロセスについてもメモリに関する情報が表示されています。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10626 root 20 0 2814488 1.229g 93796 S 294.1 35.6 0:55.02 benchmark_app
269 root 20 0 2497996 133092 4544 S 17.6 3.7 1:55.36 4.3BOOT
メモリに関する各項目の説明については以下の通りです。
項目 | 説明 | 単位 |
---|---|---|
VIRT | 割当て済みの仮想メモリ量 | KiB |
RES | 物理メモリのうち実際に使用されているメモリ量 | KiB ※数値の後にgが付いている場合はGiB |
SHR | RESのうち共有メモリとして使用されているメモリ量 | KiB |
%MEM | 物理メモリ総量に対する使用中のメモリ量(=RES)の割合 | % |
ディスク
ディスク容量
df
root@ae2100:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 27510816 9818348 16271924 38% /
devtmpfs 1807352 4 1807348 1% /dev
tmpfs 1809568 0 1809568 0% /dev/shm
tmpfs 1809568 1084 1808484 1% /run
tmpfs 1809568 0 1809568 0% /sys/fs/cgroup
tmpfs 1809568 3412 1806156 1% /tmp
/dev/mmcblk1p1 1004608 534648 469960 54% /boot
tmpfs 361912 0 361912 0% /run/user/0
tmpfs 361912 0 361912 0% /run/user/15581
df
コマンドはディスク関連の情報をファイルシステムごとに表示します。
各項目の説明については以下の通りです。
項目 | 説明 |
---|---|
Filesystem | 対象ファイルシステム(ディスク)名 |
1K-blocks | ディスク総容量 |
Used | 使用中ディスク容量 |
Available | 空きディスク容量 |
Use% | ディスク総容量に対する使用中ディスク容量の割合 |
Mounted on | ファイルシステムのマウント先ディレクトリ |
オプション無しでdf
コマンドを実行した場合、1K-blocks、Used、Availableの単位はKBになります。
-m
オプションを指定すると単位をMBとして表示することが可能です。
また、-h
オプションを指定すると読みやすくなるよう自動で単位を選択して表示します。
df
コマンドは-i
オプションを付与することでiノードに関する情報を取得することもできます。
root@ae2100:~# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/root 1757840 256133 1501707 15% /
devtmpfs 451837 523 451314 1% /dev
tmpfs 452390 1 452389 1% /dev/shm
tmpfs 452390 777 451613 1% /run
tmpfs 452390 18 452372 1% /sys/fs/cgroup
tmpfs 452390 32 452358 1% /tmp
/dev/mmcblk1p1 0 0 0 - /boot
tmpfs 452390 4 452386 1% /run/user/0
各項目の説明については以下の通りです。
項目 | 説明 |
---|---|
Filesystem | 対象ファイルシステム(ディスク)名 |
Inodes | iノード総数 |
IUsed | 使用中iノード数 |
IFree | 空きiノード数 |
IUse% | ディスク総容量に対する使用中ディスク容量の割合 |
Mounted on | ファイルシステムのマウント先ディレクトリ |
空き容量はあるにもかかわらずファイルが作成できないというような場合に、
対象のファイルシステムの空きiノード数が枯渇しているというケースも考えられます。
ディスクI/O
iostat
root@ae2100:~# iostat -d 3 2
Linux 4.14.67-intel-pk-standard (ae2100) 07/16/21 _x86_64_ (4 CPU)
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
mmcblk1 3.67 18.50 46.54 4917752 12371401
mmcblk1rpmb 0.00 0.00 0.00 68 0
mmcblk1boot1 0.00 0.00 0.00 288 0
mmcblk1boot0 0.00 0.00 0.00 276 0
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
mmcblk1 0.33 0.00 12.00 0 36
mmcblk1rpmb 0.00 0.00 0.00 0 0
mmcblk1boot1 0.00 0.00 0.00 0 0
mmcblk1boot0 0.00 0.00 0.00 0 0
iostat
コマンドではI/Oデバイスの使用状況について表示します。
上記の例では-d 3 2
オプションを付与しています。
-d
はCPU使用率の表示をしないオプションで、デフォルトではCPU使用率についても表示します。
3 2
はそれぞれ使用状況の取得間隔秒数と回数を指定しており、ここでは3秒間隔で2回表示するということになります。
取得間隔秒数のみ指定することも可能で、その場合はCtrl+C等で停止するまで表示され続けます。
取得間隔秒数と回数を指定しない場合は一度のみ出力して終了します。
各項目の説明については以下の通りです。
項目 | 説明 | 単位 |
---|---|---|
Device | I/Oデバイス名 | - |
tps | 1秒当たりのI/Oリクエスト数 | 回 |
kB_read/s | 1秒当たりの読み出したデータ量 | KB |
kB_wrtn/s | 1秒当たりの書き込んだデータ量 | KB |
kB_read | 読み出したデータ総量 | KB |
kB_wrtn | 書き込んだデータ総量 | KB |
初回の表示は各項目でシステムが起動してからの平均値を表示します。
2回目以降は前回の表示からの差分を表示します。上記の例であれば3秒間での変化について表示します。
そのため、取得間隔と回数を指定しない場合はシステムが起動してからの平均値のみ表示されることになります。
リアルタイムなI/Oデバイスの使用状況を取得したい場合は、取得間隔や回数の指定が必要となります。
AE2100ではSDカード等を使用していなければ本体eMMCのデバイスについてのみ表示されます。
そのため、eMMCへのI/Oを確認したい場合はmmcblk1
の行を参照します。
詳細はman iostat
を参照してください。
過去のリソース使用状況
sar
一部リソースに関しては自動的に過去の使用状況を記録しています。
過去の使用状況を確認するにはsar
コマンドを使用します。
ここでは以下のリソースについて説明します。
- CPU使用率
- メモリ使用率
CPU使用率
root@ae2100:~# sar
Linux 4.14.67-intel-pk-standard (ae2100) 07/02/20 _x86_64_ (4 CPU)
07:33:02 CPU %user %nice %system %iowait %steal %idle
07:34:01 all 58.26 0.00 14.89 18.96 0.00 7.90
07:35:01 all 62.03 0.00 13.31 18.89 0.00 5.77
07:36:01 all 57.07 0.00 15.89 20.62 0.00 6.42
07:37:01 all 53.95 0.00 15.55 22.67 0.00 7.84
sar
コマンドを使用すると過去のCPUの使用状況を確認することができます。
使用状況の情報は1分ごとに記録されていて、コマンド実行した当日の00:00からの情報を表示します。
sar
コマンドの情報源になる記録は/var/log/sa
ディレクトリにsaXXやsarXXの名前で保存されています。
XXには日付の数字が入ります。(1日ならばsa01となります。)
当日以前の記録を参照したい場合はsar -f /var/log/sa/saXX
と参照するファイル名を指定して実行してください。
各項目の説明については以下の通りです。
項目 | 説明 |
---|---|
%usr | ユーザプロセスのCPU使用時間の割合 |
%nice | nice値が変更されたユーザプロセスのCPU使用時間の割合 |
%system | システムプロセスのCPU使用時間の割合 |
%iowait | ディスクのI/O終了待ちをしているプロセスのCPU使用時間の割合 |
%steal | ハイパーバイザのCPU使用時間の割合 |
%idle | idle状態のCPU使用時間の割合 |
メモリ使用率
root@ae2100:~# sar -r
Linux 4.14.67-intel-pk-standard (ae2100) 07/15/21 _x86_64_ (4 CPU)
00:00:01 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
00:01:01 2871028 3318432 748108 20.67 68556 399684 2383388 65.86 361424 265140 140
00:02:01 2870976 3318400 748160 20.67 68568 399668 2387048 65.96 361920 265148 0
00:03:01 2871592 3319044 747544 20.66 68584 399716 2387092 65.96 361460 265156 124
00:04:01 2870468 3317968 748668 20.69 68596 399756 2386148 65.93 362152 265156 248
sar
コマンドに-r
オプションを付与することでメモリに関する使用状況を出力します。
CPUと同様で使用状況の情報は1分ごとに記録されており、当日の00:00からの情報を表示します。
当日以前の記録を参照する方法もCPU使用率と同様で、ファイル名を指定して実行します。
各項目の説明については以下の通りです。
項目 | 説明 | 単位 |
---|---|---|
kbmemfree | 空きメモリ量 | KB |
kbavail | スワップ無しで割り当て可能なメモリ量(実質的な空きメモリ量) | KB |
kbmemused | カーネル以外で使用中のメモリ量 | KB |
%memused | 総メモリ量に対してkbmemusedが占めるメモリの割合 | % |
kbbuffers | カーネルがバッファとして使用しているメモリ量 | KB |
kbcached | カーネルがキャッシュとして使用しているメモリ量 | KB |
kbcommit | システム動作に必要な事前に確保されているメモリ量 | KB |
%commit | 総メモリ量に対してkbcommitが占めるメモリの割合 | % |
kbactive | 直近で使用されており、必要が無ければ解放されないメモリ量 | KB |
kbinact | 直近で使用されておらず、必要に応じて開放可能なメモリ量 | KB |
kbdirty | ディスクへの書き戻しを待っているメモリ量 | KB |
詳細はman sar
を参照してください。
まとめ
今回はAE2100で使用できる各種リソースの確認方法について説明しました。
一部はAE2100でのみ使用できる方法ですが、多くはLinuxのコマンドをベースとした確認方法となっています。
AE2100以外のシステムでリソースを確認したい場合にも参考にしていただければと思います。