mzgkworks.com

Stack the little bets.

Linuxでシステムの状態を確認する方法(uptime・df・free・ps)

   [Usage]    #Linux

システム負荷の確認

uptime コマンドを使用して、システム負荷を確認することができる。
「load average:」部分が1分、5分、15分の平均負荷を表す。
この数値がCPU数(コア数)以下であれば、CPU処理待ちなく特に問題ない状態。
オーバーが一時的ではなく継続しているようなら、処理見直し or スケールアップを検討。

$ uptime
# 現在時刻・稼働時間・ログインユーザー数・1分、5分、15分の平均負荷
 16:19:01 up 2 min,  1 user,  load average: 0.09, 0.08, 0.04

ディスクの使用状況

$ df -h コマンドを使用して、ディスクの使用状況を確認することができる。

# -h : サイズを見やすくしてくれる
# tmpfs : この文字列がつくものは仮想ファイルシステムなので無視してよい
$ df -h
ファイルシス                            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos_xxx-root    50G  1.4G   49G    3% /  # ← /ディレクトリ
devtmpfs                                  486M     0  486M    0% /dev
tmpfs                                     497M     0  497M    0% /dev/shm
tmpfs                                     497M  6.6M  490M    2% /run
tmpfs                                     497M     0  497M    0% /sys/fs/cgroup
/dev/vda1                                 497M  126M  371M   26% /boot
/dev/mapper/centos_xxx-home    48G   33M   48G    1% /home  # ← /homeディレクトリ
tmpfs                                     100M     0  100M    0% /run/user/1000

メモリとスワップの確認

$ free -h コマンドを使用して、メモリとスワップの使用状況が確認できる。
スワップが常態で使われているような場合、メモリが不足していると考えられる。

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           992M         85M        786M        6.5M        121M        777M
Swap:          2.0G          0B        2.0G
項目 説明
total 合計
used 利用中
free 未使用
shared 仮想的な共有メモリ
buff/cache バッファ及びキャッシュ
available アプリケーション起動時にスワップなしで使えるメモリ

メモリとディスクのアクセス速度の差を小さくするための仕組みとして、バッファとキャッシュがある。

バッファ

ディスクへデータを書き込む際に、いったんメモリ上のバッファ領域に書き込んだ時点で書き込み完了とし、後からバックグランドで実際にディスクへ書き込みを行う。

キャッシュ

ディスクからいったん読み出したデータをメモリ上のキャッシュ領域に残しておき、同じデータが再度アクセスされた場合はメモリ上のデータを利用する。

実行中のプロセスを確認

$ ps aux コマンドで現在実行中のプログラム(プロセス)の確認ができる。
| less コマンドへパイプしたり、| grep 検索名 コマンドへパイプして確認する。
オプションには「-」をつけない

# sshdを含むプロセスを表示する
# ユーザー・プロセスID・CPU占有率・メモリ占有率・仮想メモリ使用サイズ・物理メモリ使用サイズ
# 端末・状態・開始・稼働時間・コマンド
$ ps aux | grep sshd
root      1268  0.0  0.3  82560  3600 ?        Ss   16:17   0:00 /usr/sbin/sshd -D
root      2408  0.0  0.4 140788  5004 ?        Ss   16:17   0:00 sshd: centuser [priv]
centuser  2412  0.0  0.2 140788  2148 ?        S    16:17   0:00 sshd: centuser@pts/0
centuser  2446  0.0  0.0 112668   980 pts/0    S+   16:46   0:00 grep --color=auto sshd

プロセスの操作

$ kill コマンドで、不要なプロセスであったりエラーで終了しないプロセスを停止することができる。
TEAMを送ってもプロセスが反応しない場合は、KILLシグナルを送る。

シグナルID シグナル名 動作
9 KILL 強制終了
15 TERM 終了
18 CONT 再開
19 STOP 一時停止
# kill シグナルID プロセスID
$ kill -15 2412

# kill -s  シグナル名 プロセスID
$ kill -s KILL 2412