Open4

システム情報を知りたいときのLinuxコマンド あれこれ

mitk232mitk232

CPU周り

  • 各論理CPUの利用率を知りたい
sar -P ALL <interval> <total>
  • 特定の論理CPUでプロセスを走らせたい
taskset -c <core> <command>
  • プロセスが実行されてからの経過時間 (elapsed time) とCPU実行時間(execution time) を知りたい
ps -eo pid,comm,etime,time
mitk232mitk232

メモリ周り

  • 使用量を見たい
    • 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/
mitk232mitk232
  • <command>実行時に呼び出されるシステムコールを確認したい
    • -oオプションで別ファイルに結果を書き込む
strace [-o <fname>] <command>
mitk232mitk232

Miscellaneous

  • ps コマンド
    • -eオプション: 全てのプロセスを確認
    • -oオプション: 指定したフォーマットでプロセス情報を表示