Help us understand the problem. What is going on with this article?

psコマンドまとめ

できること

プロセス単位でのCPU,メモリ,状態などの確認

実行結果

使い方: ps [オプション]

オプション 説明
a 端末を持つ全てのプロセスを表示(ターミナルから実行したものなど)
e 環境変数名を表示
x 端末のないプロセスも表示
u 実行ユーザ名の表示
r 実行中のプロセスのみ表示
-e,-A 全てのプロセスを表示
-f 完全なフォーマットで表示
-L スレッドの表示(LWPとNLWPカラムをつけてスレッドを表示する。)

LWP(light weight process):軽量プロセス(=スレッド)
NLWP(Number of LWP):プロセスの持つスレッド数

端末を持つプロセスの表示

↓のように、TTY(制御端末名)の項目に値を持つプロセスのみ表示される

# ps a
  PID TTY      STAT   TIME COMMAND
 2149 tty1     Ss+    0:00 /sbin/agetty --noclear tty1 linux
 3254 pts/0    Ss     0:00 -bash
 3634 pts/0    S      0:00 sudo su -
 3635 pts/0    S      0:00 su -

環境変数の表示

↓のようにCOMMANDの項目に環境変数が追加される

# ps e
  PID TTY      STAT   TIME COMMAND
 2149 tty1     Ss+    0:00 /sbin/agetty --noclear tty1 linux LANG= PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin TERM=linux LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC
 3634 pts/0    S      0:00 sudo su - XDG_SESSION_ID=1 HOSTNAME=webapp1 TERM=xterm-256color SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=10.0.2.2 55579 22 SSH_TTY=/dev/pts/0 USER=va
 3635 pts/0    S      0:00 su - HOSTNAME=webapp1 TERM=xterm-256color HISTSIZE=1000 LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5
 3636 pts/0    S      0:00 -bash TERM=xterm-256color HOME=/root SHELL=/bin/bash USER=root LOGNAME=root PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin XDG_SES

全プロセスの確認

# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.4 125460  2252 ?        Ss   09:57   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root         2  0.0  0.0      0     0 ?        S    09:57   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    09:57   0:03 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   09:57   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    09:57   0:00 [migration/0]
項目 説明
USER 実行ユーザ名
PID プロセスID
%CPU プロセスのCPU使用率
%MEM プロセスのメモリ使用率
VSZ プロセスが確保する仮想メモリサイズ
RSS プロセスが確保する物理メモリサイズ
TTY 制御端末名
STAT プロセスの状態
START 実行開始時刻
TIME 消費したCPU時間
COMMAND 実行コマンド

(補足)プロセスの状態「S」について

状態 説明 備考
S スリープ(割り込み可,イベント完了待ち) Interruptible sleep (waiting for an event to complete)
T 停止中 Stopped, either by a job control signal or because it is being traced.
D スリープ(割り込み不可,IO完了待ち) Uninterruptible sleep (usually IO)
R 実行中or実行可能 Running or runnable (on run queue)
Z ゾンビ状態 Zombie state: Process terminated and parent not waiting
W スワップアウト状態 paging (not valid since the 2.6.xx kernel)

スレッドの確認

↓の例ではmysqlの1プロセス(プロセスID:3113)が29個のスレッドを持つのがわかる

# ps -efL
UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
(一部省略)
mysql     3113  2811  3113  0   29 09:58 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log
mysql     3113  2811  3149  0   29 09:58 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log
mysql     3113  2811  3168  0   29 09:58 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log
mysql     3113  2811  3169  0   29 09:58 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log
mysql     3113  2811  3170  0   29 09:58 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log
m
(以下省略)
項目 説明
PPID 親プロセスのプロセスID
LWP スレッドのID
C プロセッサ使用率
NLWP プロセスにおけるスレッド数
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away