システム管理者やUbuntuユーザーのための、リソース監視と管理の包括的なガイドです。
CPU使用率の確認方法
topコマンドによる確認
最も基本的なリソース監視コマンドです。
$ top
topコマンドの出力の見方上部セクション:
top
: 現在時刻、稼働時間、ユーザー数、負荷平均を表示Tasks
: 全プロセス数、実行中、スリープ中、停止、ゾンビプロセスの数%Cpu(s)
: CPU使用状況の内訳- us: ユーザープロセスの使用率
- sy: システムプロセスの使用率
- id: アイドル状態の割合
- wa: I/O待ち時間の割合
プロセス一覧(下部)の主要列:
列名 | 説明 |
---|---|
PID | プロセスID |
USER | 実行ユーザー |
PR | 優先度 |
NI | Nice値(優先度の調整値) |
VIRT | 仮想メモリ使用量 |
RES | 実メモリ使用量 |
SHR | 共有メモリ量 |
S | プロセスの状態 |
%CPU | CPU使用率 |
%MEM | メモリ使用率 |
htopコマンドによる確認
# インストール
$ sudo apt install htop
# 実行
$ htop
htopの画面の見方
上部バー:
- CPU使用率: 各コアごとの使用率をバーグラフで表示
- メモリバー: 使用中、バッファ、キャッシュの内訳
- スワップバー: 使用率をビジュアル表示
機能キー(画面下部):
- F1: ヘルプ
- F3: 検索
- F4: フィルター
- F5: ツリー表示
- F6: ソート
- F9: プロセスへのシグナル送信
vmstatコマンドによる確認
# 60秒間隔で60回測定
$ vmstat 60 60
vmstatの出力の見方
セクション | 列名 | 説明 |
---|---|---|
procs | r | 実行待ちプロセス数 |
b | 割り込み不可能なスリープ状態のプロセス数 | |
memory | swpd | 使用中のスワップ容量 |
free | 空きメモリ量 | |
buff | バッファに使用されているメモリ量 | |
swap | si | スワップイン量/秒 |
so | スワップアウト量/秒 | |
io | bi | ブロックIN操作量 |
bo | ブロックOUT操作量 | |
cpu | us | ユーザー時間の割合 |
sy | システム時間の割合 | |
id | アイドル時間の割合 |
メモリとスワップの管理
メモリ使用状況の確認
$ free -h
free コマンドの出力の見方
列 | 説明 |
---|---|
total | 総メモリ量 |
used | 使用中のメモリ量 |
free | 空きメモリ量 |
shared | 共有メモリ量 |
buff/cache | バッファとキャッシュに使用されているメモリ量 |
available | 新しいプロセスに利用可能なメモリ量 |
スワップ領域の追加と管理
- スワップファイルの作成:
$ sudo fallocate -l 2G /swapfile
$ sudo chmod 600 /swapfile
- スワップ領域の有効化:
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
- 永続化設定:
$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
スワップ使用率の確認
$ swapon --show
システムパフォーマンスの最適化
高負荷時の対処法
- プロセス優先度の調整:
# プロセスの優先度を下げる(nice値を上げる)
$ sudo renice 10 -p [PID]
- リソース制限の設定:
# プロセスのCPU使用率を制限
$ cpulimit -p [PID] -l 50
メモリ管理のベストプラクティス
- バッファ/キャッシュが大きい場合は
sync
コマンドで解放 - スワップ使用率が50%を超える場合はメモリ増設を検討
- 定期的な
vmstat
でI/Oボトルネックを監視
トラブルシューティング
- CPU使用率が90%以上: プロセスの優先度調整や不要プロセスの終了
- スワップ頻発: メモリ増設やプロセス数の削減を検討
- I/O待ち時間が高い: ディスクI/Oの最適化やSSDへの移行を検討
まとめ
システムのパフォーマンスを最適に保つためには、定期的なモニタリングと適切な対処が重要です。各コマンドの特徴を理解し、状況に応じて使い分けることで、効率的なシステム管理が可能になります。
コメント