はじめに
linuxの基本を復習するためにまずはリソース管理を復習します。
リソースとはCPU、メモリ、ディスク等のことを指します。
AWSでは柔軟にリソースのサイズを後から変更可能ですが、オンプレミスでは予めキャパシティプランニングでリソースサイズを予測して決めていました。
JP1/SSOにてプロセス管理、NNMでネットワーク監視を経験 過去にジョブ処理にてシェルスクリプトを作成してメモリ使用率、CPU使用率の値%を取得して処理の判定に使用したこともあります。
リソースサイズの確認はサーバに障害が発生したときに実行することがあります。
監視サーバでリソースグラフにて、現在の値は確認出来ますが。
メモリ使用率は分かりやすい%表示で確認するにはsarコマンドがお勧めです。 負荷テストの時に%表示の方が分かりやすいです。
便利コマンド
wコマンド
現在何のユーザがログインしているかを確認するときに使用しています。
一人のユーザが複数のターミナルを開いたらターミナルの数の分表示されます。
同じゲストOSのrootユーザです。
TTYはゲストOS側のコンソール端末
pts/0はTera TermからSSH接続した疑似端末
沢山のターミナルを開いて作業するケースもありますが、どのターミナルで作業したのかを記録に残す現場の場合は、TTYやpts/xは大切な情報となります。
[root@server01 ~]# w
23:06:17 up 0 min, 2 users, load average: 0.57, 0.20, 0.07
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root tty1 23:05 24.00s 0.00s 0.00s -bash
root pts/0 23:06 1.00s 0.00s 0.00s w
[root@server01 ~]#
Load AverageはCPU使用率そのものではなく、実行中・実行待ちや一部のI/O待ち状態のタスク数の平均を表す。
1コアCPUでLoad Averageが1なら、ざっくり言えば1つの処理能力に対して平均1タスク程度が実行中または待機している状態
[root@server01 ~]# cat /proc/cpuinfo | grep "cpu cores"
cpu cores : 1
[root@server01 ~]#
1コア
Load Average 0.5
→ まだ余裕がある
Load Average 1.0
→ CPU能力をおおむね使っている
Load Average 2.0
→ 1コアに対して平均2タスク程度あり、待ちが発生している可能性
sarコマンド
sarコマンドはsysstatパッケージに含まれているため、環境によっては初期状態ではインストールされていない場合があります。
sarコマンドを使用するときはこれから監視するサーバでメモリ使用率を監視するために、メモリの負荷試験のために使用していました。
[root@server01 cron.d]# sar -r 1 1
Linux 5.14.0-611.5.1.el9_7.x86_64 (server01) 08/14/26 _x86_64_ (1 CPU)
23:25:06 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
23:25:07 1215244 1398908 164584 9.41 2708 299416 175700 4.57 166032 201288 0
Average: 1215244 1398908 164584 9.41 2708 299416 175700 4.57 166032 201288 0
[root@server01 cron.d]#
[root@server01 cron.d]#
sarが読み込むシステム活動データファイルです。標準では /var/log/sa/saDD 形式で保存され、DD が日付です。
8/14のsysstatの定期収集データから、10分おきのメモリ情報を確認しています。
[root@server01 cron.d]# sar -r -f /var/log/sa/sa14
Linux 5.14.0-611.5.1.el9_7.x86_64 (server01) 08/14/26 _x86_64_ (1 CPU)
23:20:12 LINUX RESTART (1 CPU)
23:30:15 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
23:40:15 1215244 1398928 164592 9.41 2708 299436 175284 4.56 166040 201308 0
Average: 1215244 1398928 164592 9.41 2708 299436 175284 4.56 166040 201308 0
まとめ
普段は監視サーバでリソースは監視しています。監視サーバは今までZabbix、nagios、JP1の経験があります。
Zabbixではアイテムキーでリソース情報を取得、nagiosはプラグインでリソース情報を取得。
障害が発生した際に、サーバに接続してリソースの状態を確認することがあります。
監視サーバでlinuxコマンドを使用しているケースも稀にあります。
監視やスクリプトでリソースの値のみを取得する場合は、目的に合ったコマンドを選ぶと良いです。
topコマンドはCPUやメモリなど複数の情報を一括で確認できる点は便利ですが、メモリ使用率など特定の値だけを取得したい場合は、情報量が多いと感じます。