システム管理者や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への移行を検討
まとめ
システムのパフォーマンスを最適に保つためには、定期的なモニタリングと適切な対処が重要です。各コマンドの特徴を理解し、状況に応じて使い分けることで、効率的なシステム管理が可能になります。





コメント