本番サーバーの安定運用には定期的なリソース監視が欠かせません。この記事ではCPU・メモリ・ディスク・ネットワークを監視するコマンドと、継続的な監視の仕組みを解説します。
CPU・メモリの監視
# vmstat:システム全体の統計を定期表示(1秒ごとに5回)
$ vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1204512 186240 3528960 0 0 1 8 72 134 5 1 93 0 0
# 列の意味
# r: 実行待ちプロセス数(CPUコア数超えると過負荷)
# b: IOブロック中プロセス数
# wa: IO待ち時間(高い場合はディスクがボトルネック)
# us/sy: ユーザー/カーネル空間のCPU使用率
# sar:過去のリソース履歴を確認
$ sudo apt install sysstat
$ sar -u 1 5 # CPU使用率を1秒ごとに5回
$ sar -r 1 5 # メモリ使用状況
$ sar -d 1 5 # ディスクI/O
# sar で過去のログを確認
$ sar -u -f /var/log/sysstat/sa$(date +%d)
ディスクI/Oの監視
# iostat:ディスクI/O統計
$ iostat -x 1 5
# 主要な列
# r/s, w/s: 1秒あたりの読み書きリクエスト数
# await: I/O待ち時間(ミリ秒)。高い場合はディスクが遅い
# %util: ディスクの使用率(100%に近いとボトルネック)
# iozone:ディスクのベンチマーク
$ sudo apt install iozone3
ネットワークの監視
# ネットワーク統計
$ netstat -s # プロトコル別の統計
$ ss -s # ソケット統計の概要
# iftop:リアルタイムのネットワーク帯域使用量
$ sudo apt install iftop
$ sudo iftop -i eth0
# nethogs:プロセスごとのネットワーク使用量
$ sudo apt install nethogs
$ sudo nethogs eth0
# nload:シンプルなネットワーク使用量モニター
$ sudo apt install nload
$ nload eth0
定期監視の仕組み:sarとcronの組み合わせ
# sysstat を有効化(Ubuntuの場合)
$ sudo systemctl enable sysstat
$ sudo systemctl start sysstat
# /etc/default/sysstat
ENABLED="true"
# sarは/etc/cron.d/sysstatで自動収集される
# デフォルトは10分ごとにデータを収集
# 収集データは/var/log/sysstat/sa[日付] に保存
# 過去1日のCPU使用率を確認
$ sar -u
# 過去7日分のデータをCSVで出力
$ sar -u -s 00:00:00 -e 23:59:59 -f /var/log/sysstat/sa15
まとめ
vmstat 1でCPU・メモリ・IO待ちをリアルタイム確認。r列とwa列が重要iostat -xでディスクI/Oのボトルネックを特定。%utilが100%なら飽和状態sysstatをインストールしてsarで過去のリソース履歴を分析iftop/nethogsでネットワーク帯域を食っているプロセスを特定
📋 Linuxサーバー運用・管理チェックリスト完全版でPhase 2の全要点を確認できます。



コメント