Linuxのシステム負荷を調べる時に使うコマンド
今回は、システムの負荷状況を調べる際に使用するコマンドを書いていきたいと思います。
vmstat コマンド
システム全体の負荷を見るならこれ。2で2秒ごとの情報更新。
[vagrant@develop-env ~]$ vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 764092 2108 144864 0 0 2353 650 875 3035 25 32 42 0 0
0 0 0 764092 2108 144896 0 0 0 0 40 69 0 0 100 0 0
0 0 0 764092 2108 144896 0 0 0 0 40 72 0 1 99 0 0
0 0 0 765108 2108 144896 0 0 0 325 53 78 0 1 99 0 0
0 0 0 765108 2108 144896 0 0 0 9 51 97 1 0 99 0 0
以下は、man vmstatから抜粋したものをGoogle翻訳かけたものです。
Memoryのswpd,free CPUのwaあたりは、確認することが多いかもしれないですね。
Procs
r:実行可能なプロセスの数(実行中または実行待機中)。
b:割り込み不可能なスリープ状態のプロセスの数。
Memory
swpd:使用されている仮想メモリの量。
free:アイドルメモリの量。
buff:バッファとして使用されるメモリの量。
cache:キャッシュとして使用されるメモリの量。
inact:非アクティブなメモリの量。 (-aオプション)
active:アクティブなメモリの量。 (-aオプション)
Swap
si:ディスクからスワップインされたメモリの量(/ s)。
so:ディスクにスワップされたメモリの量(/ s)。
IO
bi:ブロックデバイスから受信したブロック(blocks / s)。
bo:ブロックデバイスに送信されたブロック(blocks / s)。
System
in:1秒あたりの割り込み数(クロックを含む)。
cs:1秒あたりのコンテキストスイッチの数。
CPU
これらは、合計CPU時間の割合です。
us:カーネル以外のコードの実行に費やされた時間。 (ユーザー時間、素敵な時間を含む)
sy:カーネルコードの実行に費やされた時間。 (システム時刻)
id:アイドル時間。 Linux 2.5.41より前のバージョンには、IO待機時間が含まれています。
wa:IOの待機に費やされた時間。 Linux 2.5.41より前は、アイドル状態に含まれていました。
st:仮想マシンから盗まれた時間。 Linux 2.6.11以前は不明。
参考:Vmstat の出力結果はどのように解釈すれば良いですか? https://access.redhat.com/ja/solutions/3054501
top コマンド
CPUの使用率やメモリの使用率などを一覧で表示できる。
htopコマンド
CentOS標準ではインストールされていないので、以下でインストール
# EPELリポジトリを追加
$ sudo yum install epel-release
# htopをインストール
$ sudo yum install htop
df コマンド
ディスク容量が逼迫してきた時にまず、こちらのコマンドでどのくらいの容量を食っているのか調べることが多いです。
使用例
[vagrant@develop-env ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 485M 0 485M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 13M 483M 3% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/mapper/centos-root 41G 854M 41G 3% /
/dev/sda1 1014M 133M 882M 14% /boot
/dev/mapper/centos-home 20G 136M 20G 1% /home
vagrant 238G 73G 166G 31% /vagrant
tmpfs 100M 0 100M 0% /run/user/1000
この例だと、/vagrant の共有ディレクトリの使用割合が多いことがわかりますね。
du コマンド
dfコマンドでざっくりとどのディレクトリがdiskを食っているか分かった、
duコマンドでその詳細を探っていきます。
使用例
[vagrant@develop-env ~]$ sudo du -sh /vagrant/*
4.0K /vagrant/Vagrantfile
ディレクトリ更に存在する場合は、
[vagrant@develop-env ~]$ sudo du -sh /vagrant/xxx/*
などとコマンドを入力してみて、深堀りしていきます。
いずれ、どの場所がdiskを食っているのかが分かります。
ログを吐き出させているファイルなどが該当することが多いです。(ログローテーションのし忘れとか)
ps コマンド
現在実行中のプロセスを知ることが出来る。
僕は以下のように「a,u,x」とオプションを付けていっぺんに表示させることが多いです。
使用例
[vagrant@develop-env ~]$ ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.6 127968 6664 ? Ss 02:28 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 02:28 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 02:28 0:00 [kworker/0:0H]
root 5 0.0 0.0 0 0 ? S 02:28 0:00 [kworker/u2:0]
root 6 0.0 0.0 0 0 ? S 02:28 0:00 [ksoftirqd/0]
root 7 0.0 0.0 0 0 ? S 02:28 0:00 [migration/0]
~
~
省略
~
~
この記事が気に入ったらサポートをしてみませんか?