Linuxでシステムの状態を確認する方法(uptime・df・free・ps)
システム負荷の確認
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