50プロセス管理(CentOS7)

50プロセス管理(CentOS7)

Linuxマシンが突然遅くなった感じたら.....

・メモリーの使用率チェック

・CPUの利用状況チェック


●メモリーの状況確認(静的)

基本形  現在使用されているメモリーjの状況一覧表示する

free [オプション] 

-m  MByte単位で表示する

[guest@aso ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1520         111        1290          19         117        1267
Swap:          1039           0        1039
[guest@aso ~]$


●CPUの利用状況確認(静的)

基本形  現在実行されているプロセスを一覧表示する

ps [オプション] 

a  自分以外のユーザのプロセスも表示する
u  ユーザ名と開始時刻を表示する
x  制御端末のないプロセスも表示する

PID  プロセスID
VSZ  仮想メモリのサイズ
RSS   使用中の物理メモリ量
TTY  制御端末

[guest@aso ~]$ ps aux | head ← 最初の10行しか表示していません
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.2 125468  3872 ?        Ss   15:47   0:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    15:47   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   15:47   0:00 [kworker/0:0H]
root         5  0.0  0.0      0     0 ?        S    15:47   0:00 [kworker/u2:0]
root         6  0.0  0.0      0     0 ?        S    15:47   0:00 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    15:47   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    15:47   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    15:47   0:01 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<   15:47   0:00 [lru-add-drain]
[guest@aso ~]$


●freeとpsの内容をまとめて動的に表示する

基本形  プロセスの一覧を逐次監視する

top [オプション] 

-d秒       表示を更新する間隔(デフォルト3秒)
-uユーザ名    指定したユーザのプロセスのみ表示する
-pプロセスID  指定したプロセスIDのプロセスのみ表示する(複数指定可能)

$ top -d 1      1秒間隔表示で使うとよい
q         で終了させます

      ①      ②      ③         ④
  top - 15:21:24 up  5:17,  2 users,  load average: 0.00, 0.00, 0.00
⑤ Tasks: 138 total,   1 running, 137 sleeping,   0 stopped,   0 zombie
⑥ Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
⑦ Mem:   1403512k total,  1109428k used,   294084k free,    85424k buffers
⑧ Swap:  2097144k total,        0k used,  2097144k free,   700628k cached
                        ⑨  ⑩    ⑪  ⑫   ⑬
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  179 root      20   0     0    0    0 S  0.3  0.0   0:06.38 scsi_eh_1
    1 root      20   0 19352 1500 1188 S  0.0  0.1   0:01.11 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.36 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.50 watchdog/0
    7 root      20   0     0    0    0 S  0.0  0.0   0:06.26 events/0
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm
   13 root      20   0     0    0    0 S  0.0  0.0   0:00.14 sync_supers
   14 root      20   0     0    0    0 S  0.0  0.0   0:00.15 bdi-default
   15 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0
   16 root      20   0     0    0    0 S  0.0  0.0   0:01.70 kblockd/0


①現在時刻
②システムが起動してからの経過時間
③ユーザ数
④CPU負荷(1分間,5分間,15分間の平均)

⑤プロセスの実行状況
⑥CPUの利用状況
⑦メモリの利用状況
⑧スワップの利用状況

⑨仮想メモリ(KB)
⑩実メモリ(KB)
⑪CPU使用率
⑫メモリ使用率
⑬CPU時間

【注目

④load average 平均して何個分の仕事があるかということ

        CPUのコア数と合わせて見る

        load average ≧ CPUコア数

        デュアルコア(×2)の時は2以上が過負荷

                  クアッドコア(×4)の時は4以上は過負荷


⑪⑬CPU負荷と時間   使用率が高く、長時間動いているプロセスは怪しい

⑫メモリ使用率の高いプロセスは怪しい

④load averageが高く⑪CPU使用率が低い 状況はDisk/IOの負荷がかかりすぎ
                   (つまりSWAP過剰の状態の可能性が高い)


○ topコマンド実行中に「1」キーを押下することで、CPU全体でサマリーされていた使用率をコアごとに表示させることができる。

○ 表示されているプロセスをソートする場合は、ソートする内容に応じて、実行画面上で以下のようにキーを押下する。



○ 負荷試験を行うyesコマンド

yesコマンドはひたすらyを標準出力するコマンド yes "引数テキスト" で引数テキストをひたすら出力可能

これをひたすらnullデバイスにリダイレクトするとCPUに負荷がかかる


[root@inspiron ~]# yes > /dev/null &
[11] 2344
[root@inspiron ~]#

何回か実行しながらtopコマンドでCPUの状況を確認してみる

過負荷になるとデスクトップログイン等が遅くなる!!

topコマンド実行中に「k」キーを実行することで、指定したPIDのプロセスをkillすることが出来る。



●過負荷時の対処法

怪しいプロセスは終了させましょう


基本形  指定したプロセスにシグナルを送り終了させる

kill [-s シグナル] pid 

-SIGTERM    プログラム内に実装された終了処理を実行する

-SIGKILL    強制終了させる(ファイルが壊れる可能性あり)


以上2つのオプションで終了できないときは最終手段としてオプションなしで実行する!!