Open4
システム情報を知りたいときのLinuxコマンド あれこれ
CPU周り
- 各論理CPUの利用率を知りたい
sar -P ALL <interval> <total>
- 特定の論理CPUでプロセスを走らせたい
taskset -c <core> <command>
- プロセスが実行されてからの経過時間 (elapsed time) とCPU実行時間(execution time) を知りたい
ps -eo pid,comm,etime,time
メモリ周り
- 使用量を見たい
-
free
-
total
: システムのメモリ容量 -
free
: 見かけ上の空きメモリ容量 -
buff/cache
: バッファキャッシュ, ページキャッシュの容量 -
available
:free
+ いざとなったらカーネルが解放する領域
-
-
sar -r
-
kbmemfree
: 空きメモリ容量 -
kbmemused
: 使用メモリ容量 -
kbcached
: ページキャッシュ -
kbbuffers
: バッファキャッシュ -
kbpgtbl
: ページテーブル容量
-
-
▶ free
total used free shared buff/cache available
Mem: 528012292 39844068 353518812 63908 134649412 483640748
Swap: 16777212 301312 16475900
▶ sar -r 1 1
01時55分40秒 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
01時55分41秒 353520484 483642004 37940140 7.19 2808 130004892 112744420 20.70 43403684 121586948 108
平均値: 353520484 483642004 37940140 7.19 2808 130004892 112744420 20.70 43403684 121586948 108
- プロセスに割り当てられた(仮想)メモリ領域を確認したい
cat proc/<pid>/maps
- ページングに関する情報を見たい(ページフォールト発生回数など)
sar -B <interval> <total>
- プロセスに割り当てられた仮想メモリサイズ(vsz), 物理メモリサイズ(rss), ページフォールト回数(maj_flt, min_flt)を見たい
- メジャーフォールト: スワッピングが発生するページフォールト
- マイナーフォールト: メモリ内で完結するページフォールト
ps -eo pid,comm,vsz,rss,maj_flt,min_flt
- スワップ領域を確認したい
swapon --show
free
sar -S <interval> <total>
- スワッピングが発生しているかどうか確認したい
-
sar -W
: スワップイン, スワップアウトされているページ数を確認したい -
sar -S
: スワップ領域の使用量についての推移を確認したい
-
sar -W <interval> <total>
sar -S <interval> <total>
- transparent huge pageが有効かどうか確認したい
- transparent huge page: 仮想アドレス空間で連続するページが所定の条件を満たすと、それらをまとめて自動的にヒュージページにしてくれるLinuxの機能
-
madvise
:madvise()
というシステムコールで設定した所定のメモリ領域だけについて有効にする
▶ cat /sys/kernel/mm/transparent_hugepage/enabled
always [madvise] never
キャッシュ周り
- キャッシュメモリの情報を確認したい
-
/sys/devices/system/cpu/cpu<core_id>/cache/index<cache_id>/
内のファイルを見る -
type
: キャッシュするデータの種類 -
shared_cpu_list
: キャッシュを共有する論理CPUリスト -
size
: サイズ -
coherency_line_size
: キャッシュラインサイズ
-
ll /sys/devices/system/cpu/cpu0/cache/index0/
- <command>実行時に呼び出されるシステムコールを確認したい
- -oオプションで別ファイルに結果を書き込む
strace [-o <fname>] <command>
Miscellaneous
- ps コマンド
-
-e
オプション: 全てのプロセスを確認 -
-o
オプション: 指定したフォーマットでプロセス情報を表示
-