読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】サーバーが重い。ps aux と ps -ef の違い、top・free・uptime・watch の見方【LPICレベル1】

20レスカテゴリ:Linux
1: 名無しさん

サーバーが重くて、何が動いてるか見たい
ps aux と ps -ef、どっちを打ったらええん?

2: 名無しさん

前提のおさらい。コマンドは「コマンド オプション 引数」で、オプションの書き方にはハイフン付きとハイフンなしがある

3: 名無しさん

>>1
どっちも全部のプロセスを出す。ps の man の例では、ps -ef が標準の書き方、ps aux(ハイフンなし)が BSD の書き方

4: 名無しさん

>>3
見出しの行
ps aux:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ps -ef:UID PID PPID C STIME TTY TIME CMD

5: 名無しさん

>>4
aux は CPU とメモリの割合と STAT(状態)が見やすい。-ef は PPID(親プロセスの ID)が出る。TIME は使った CPU 時間

6: 名無しさん

>>4
STAT の文字
R 実行中・実行待ち
S 待ち(割り込み可能)
D 割り込めない待ち(I/O など)
T 止められている
Z ゾンビ(終わったのに親が後始末してない)
後ろの < 優先度が高い、N 低い、s セッションリーダー、+ フォアグラウンド

7: 名無しさん

>>1
自分のプロセスだけとか、欲しい欄だけとかは?

8: 名無しさん

>>7
ps -u ユーザー名、ps -p PID、-o で欄を選べる
ps -o pid,ppid,ni,stat,comm -p 4321 → PID・親・nice 値・状態・名前だけ
ps aux --sort=-%cpu で CPU の多い順

9: 名無しさん

ずっと見ていたいときは?

10: 名無しさん

>>9
top。一定の間隔で表示を更新する。上の数行に全体のようす、その下にプロセスの一覧

11: 名無しさん

>>10
top の中で使うキー
P CPU の順、M メモリの順、T CPU 時間の順
k PID を聞いてシグナルを送る
r PID を聞いて nice 値を変える
q 終了

12: 名無しさん

>>10
一覧の PR と NI は、優先度と nice 値。top -b -n 1 で1回だけ出して終わる(バッチモード)

13: 名無しさん

>>1
メモリは?

14: 名無しさん

>>13
free(-h で GiB などの単位つき)。欄は total used free shared buff/cache available
free が小さくても、buff/cache はキャッシュで必要なら空けられるから、新しく使える目安は available(free の man)

15: 名無しさん

>>1
uptime は?

16: 名無しさん

>>15
今の時刻、起動してからの時間、ログインしているユーザー数、ロードアベレージ(過去1分・5分・15分の平均)を1行で出す。w の1行目と同じ

17: 名無しさん

>>16
ロードアベレージは、実行中か実行待ち、または割り込めない待ちのプロセスの数の平均。CPU が8個(nproc で確認)なら、8前後まではだいたい回ってる目安

18: 名無しさん

>>1
同じコマンドを何回も打って見比べるのがだるい

19: 名無しさん

>>18
watch コマンド で既定2秒ごとにくり返して全画面で表示。-n 5 で5秒ごと、-d で変わったところを強調

20: 名無しさん

>>3
一覧は ps aux か ps -ef、ずっと見るなら top、メモリは free の available、負荷は uptime。整理できた

管理人のひとこと