😸

[自分用メモ]本番インフラ対応時によく使うコマンド:top

2022/09/29に公開

本番対応でよく使うコマンドをメモしておく

  • 自社で運用サポートしている案件等ではよくサーバー負荷状況についての問い合わせがくる
  • あるいはWebへのアクセスが遅いようなのだけども何かサーバー負荷が発生しているか等・・
  • よく使うコマンド・Tipsを整理しておこうと思います。(自分用メモです
  • この記事ではtopコマンド(uptimeコマンド)がメイン

前提環境

  • 現在対応している案件で使用しているのが多いOSはCentOS7 と Amazon Linux2
  • Ubuntsuは実務ではいじったことないので一旦割愛

topコマンド

topコマンド実行

  • 現在実行中のプロセスを継続的に監視できる(表示は3秒ごとに更新される)
$top #デフォルト、CPU使用率順に表示
$top -a #メモリリ使用率順に表示
$top -p [PID] #特定のプロセスを監視
$top -d 1 #1秒ごとに更新、指定した間隔で更新可能
$top -c #実行されているコマンドの内容をフルパスで出力させる

参考
topコマンドの使い方

ヘッダーについて確認

  • 1行目
キー 説明
top 時刻
up OSが起動してからの時間
user コンソールにログインしているユーザー数
load average 左から[1分][5分][15分]平均の数値
ディスクIO待ちのプロセス数を示す。(システム全体の実行待ちプロセス数の平均値
ロードアベレージはuptimeコマンドでも確認できる
ロードアベレージの正常値は「CPUのコア数で判断

load average補足

今検証しているサーバーのCPUのコア数を調べると・・・
コア数は1:正常値は1以下と判断する

[developer@kuroiwa-t ~]$ grep cpu.cores /proc/cpuinfo | sort -u
cpu cores       : 1

uptimeコマンドでもロードアベレージが参照可能

[developer@kuroiwa-t ~]$ uptime
 12:06:00 up 82 days, 23:59,  1 user,  load average: 0.00, 0.04, 0.05

※ロードアベレージが高い=「プロセスからディスクへの書き込みが積滞している」のであり、一般的なボトルネックの箇所と考えてよいかも

  • 2行目
キー 説明
Tasks 現在のプロセス状況を見ることができる

total:プロセスの総数
running:実行中のプロセス
sleeping:休止中のプロセス
stopped:実行を停止されたプロセス
zombie:コンピューターで、すでに処理が終了しているにもかかわらず、システム上で残存しているプロセス。CPUやメモリーなどの資源を占有するため、コンピューターの動作に悪影響を及ぼすことがある
  • 3行目
キー 説明
%Cpu(s) CPU使用状況。各使用時間の割合が確認できる

user:ユーザプロセス使用時間の割合
system:システムプロセス使用時間の割合
nice:nice値(優先度)を設定されたプロセス使用時間の割合
idle:アイドル状態(何もしていない)時間の割合
I/O wait:読み込み/書き込みオペレーションの完了待ち時間の割合
idle:アイドル状態(何もしていない)時間の割合
I/O wait:読み込み/書き込みオペレーションの完了待ち時間の割合
hardware interrupt:ハードウェア割り込み時間の割合
software interrupt:ソフトウェア割り込み時間の割合
steal:CPUリソースを他サーバに割かれてしまい割り当てられなかった時間の割合
  • 4行目
キー 説明
KiB Mem メモリに関する情報

total:物理メモリ量
free :空いているメモリ量
used:割り当てられているメモリ量
buff/cache:バッファやキャッシュに割り当て中のメモリ量
  • 5行目
キー 説明
KiB Swap Swap領域に関する情報

total:物理メモリ量
free :空いているメモリ量
used:割り当てられているメモリ量
avail Mem:Swapに関してではなく、物理メモリの実質的な空き容量を指す

【参考】
Linuxのtop コマンドの見方 ~メモリやload averageの単位,定義,目安~

Discussion