サーバー状況(OS、ディストリビューション、プロセス、メモリー、ディスク容量、周辺機器)を確認するためのコマンドを紹介します。
OS、ディストリビューション
uname|OS情報確認
下記コマンドで、起動されたマシンのOS名称
ホスト名
OSのリリース番号
OSのバージョン
OSのビット数
を確認できます。
uname -a
ディストリビューションの確認
Redhat/CentOSの場合、 /etc/redhat-release
に記述されています。
cat /etc/redhat-release
$ cat /etc/redhat-release
CentOS release 6.8 (Final)
プロセス、メモリー
ps aux
(プロセスごとのCPU、Memory利用率)
- VSS (virtual set size)
- 仮想メモリ(Kバイト)
- RSS (Resident set size)
- 物理メモリの消費量(Kバイト)
RSS利用順で表示したい場合、以下コマンドを実行します。
ps aux --sort rss
$ ps aux --sort rss
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 07:14 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:14 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 07:14 0:00 [ksoftirqd/0]
(省略)
apache 1968 0.0 0.6 310472 6160 ? S 07:14 0:00 php-fpm: pool www
apache 1969 0.0 0.6 310472 6160 ? S 07:14 0:00 php-fpm: pool www
root 1959 0.0 0.6 310472 6268 ? Ss 07:14 0:00 php-fpm: master process (/etc/php-fpm.conf)
ps -ef
(現在実行されているプロセスの情報)
オプション | 概要 |
---|---|
-e | すべてのプロセスを選択 |
-f | 完全なフォーマットで表示 |
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 07:14 ? 00:00:00 /sbin/init
root 2 0 0 07:14 ? 00:00:00 [kthreadd]
root 3 2 0 07:14 ? 00:00:00 [migration/0]
root 4 2 0 07:14 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 07:14 ? 00:00:00 [stopper/0]
(省略)
root 1959 1 0 07:14 ? 00:00:00 php-fpm: master process (/etc/php-fpm.conf)
apache 1964 1959 0 07:14 ? 00:00:00 php-fpm: pool www
apache 1965 1959 0 07:14 ? 00:00:00 php-fpm: pool www
apache 1967 1959 0 07:14 ? 00:00:00 php-fpm: pool www
apache 1968 1959 0 07:14 ? 00:00:00 php-fpm: pool www
pstree
(親子関係によるプロセス階層構造を表示)
$ pstree
init─┬─VBoxService───7*[{VBoxService}]
├─auditd───{auditd}
├─crond
├─dhclient
├─master─┬─pickup
│ └─qmgr
├─6*[mingetty]
├─mysqld_safe───mysqld───27*[{mysqld}]
├─nginx───nginx
├─ntpd
├─php-fpm───5*[php-fpm]
├─rpc.statd
├─rpcbind
├─rsyslogd───3*[{rsyslogd}]
├─sshd───sshd───sshd───bash───pstree
└─udevd───2*[udevd]
pmap
(プロセスのメモリマップを表示)
psなどで調べたPIDを引数に指定します。
pmap [PID]
$ ps -ef | grep nginx
root 2016 1 0 07:14 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 2020 2016 0 07:14 ? 00:00:00 nginx: worker process
vagrant 5582 5513 0 07:31 pts/0 00:00:00 grep nginx
$
$
$ sudo pmap 2016
2016: nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
00007f9bd1f99000 52K r-x-- /lib64/libnss_files-2.12.so
00007f9bd1fa6000 2044K ----- /lib64/libnss_files-2.12.so
00007f9bd21a5000 4K r---- /lib64/libnss_files-2.12.so
00007f9bd21a6000 4K rw--- /lib64/libnss_files-2.12.so
(省略)
top
(実行中プロセスをリアルタイム監視)
top - 07:33:43 up 19 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1020052k total, 497704k used, 522348k free, 12948k buffers
Swap: 1015804k total, 0k used, 1015804k free, 133772k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 19228 1504 1236 S 0.0 0.1 0:00.90 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
topコマンド実施後、
M
(大文字) と入力すると消費メモリ
の順に表示されます。P
(大文字) と入力するとCPU使用率
の順に表示されます。T
(大文字) と入力すると時間消費
の順に表示されます。
終了する際は q
を入力します。
vmstat
(CPU、Memoryなどをリアルタイム監視)
$ vmstat 1 6
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 320168 34492 249144 0 0 12 4 21 49 0 0 100 0 0
0 0 0 320144 34492 249144 0 0 0 0 18 41 0 0 100 0 0
0 0 0 320144 34492 249144 0 0 0 0 16 43 0 0 100 0 0
0 0 0 320144 34492 249144 0 0 0 0 27 57 0 0 100 0 0
0 0 0 320144 34492 249144 0 0 0 0 18 46 0 0 100 0 0
0 0 0 320144 34492 249144 0 0 0 0 17 44 0 0 100 0 0
メモリー
ディスクI/O
CPU利用率
のどこがボトルネックであるか判定するのに活用できます。
kill [PID]
(プロセスに対してシグナルを送信)
PID
を指定してシグナルを送信します。
kill [PID]
$ kill -9 2021
※シグナル
プロセスに送られるメッセージ。受け取ったシグナルに応じてプロセスは、終了や再起動を行なう。
killall [プロセス名]
(プロセスに対してシグナルを送信)
プロセス名
を指定してシグナルを送信します。
killall [プロセス名]
free
(システム全体の空きメモリ状況)
システム全体の空きメモリと利用メモリの量を表示します。
$ free
total used free shared buffers cached
Mem: 1020052 498804 521248 512 13916 133992
-/+ buffers/cache: 350896 669156
Swap: 1015804 0 1015804
オプション | 概要 |
---|---|
-k | KB単位で表示 (デフォルト) |
-m | MB単位で表示 |
- 個々のプロセスのメモリーの使用状況を調べるには
top
やps
を用います。 - Linuxでは、各プロセスにメモリを割り振った残りを
buffer
とcache
に利用しているため、free領域
にあまり割り当てられてないことが多いです。
ipcs
(プロセス間通信の状態を表示)
共有メモリー、セマフォ、メッセージキューを表示します。
$ ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
------ Semaphore Arrays --------
key semid owner perms nsems
------ Message Queues --------
key msqid owner perms used-bytes messages
ディスク
df
(ファイルシステムの使用状況を表示)
下記用途で使用します。
- どの様にパーティションが区切られているのかの確認
- 各パーティションに割り当てられた容量に対してどの程度使用しているかの確認
-hオプション
をつけると G
や M
など、適切な単位付きで容量を表示します。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 992M 56K 992M 1% /dev
tmpfs 1001M 0 1001M 0% /dev/shm
/dev/xvda1 7.8G 2.7G 5.1G 35% /
du
(指定したファイルの容量を表示)
指定したファイルやディレクトリの使用容量を集計します。引き数がない場合 カレント・ディレクトリ
の容量を集計します。
$ du httpd
4 httpd/healthd
1372 httpd/rotated
10864 httpd
$ du httpd/access_log
9480 httpd/access_log
-aオプション
をつけると、ディレクトリだけでなく、全ファイルの容量を表示します。
$ du -a httpd
4 httpd/error_log
9480 httpd/access_log
4 httpd/healthd
228 httpd/rotated/access_log1527516061.gz
204 httpd/rotated/access_log1530889261.gz
304 httpd/rotated/access_log1534107662.gz
384 httpd/rotated/access_log1539518461.gz
248 httpd/rotated/access_log1526104861.gz
1372 httpd/rotated
10864 httpd
周辺機器
lsusb
(USBデバイスの情報を表示)
USBデバイスの情報を表示します。
lspci
(PCIデバイスの情報を表示)
PCIとは、コンピュータのプロセッサと周辺機器との間で通信を行うための方法の1つです。
例えば、マザーボード上のPCIスロットにLANカード(PCIカード)を差し込みます。認識すればネットワークが使用できます。
lsmod
(ロード済みカーネルモジュールを表示)
カーネルモジュールとは、Linuxカーネルで動的に追加されるプログラム部品(モジュール)のことです。
カーネルを再構築せず機能を追加できます。代表的なものとしてデバイスドライバ(デバイス制御のプログラム)があげられます。
modprobe
(デバイスドライバのロード)
デバイスドライバを手動でロードする場合に利用します。通常は自動的にロードされます。