プロセスとメモリ管理
プロセスとメモリ管理
サーバーやPCが遅くなったとき、原因の多くはプロセスかメモリに関連しています。OSの基本的な資源管理の仕組みを理解しておくと、パフォーマンス問題への対処が格段に楽になります。
プロセスとスレッド
- プロセス:実行中のプログラムのこと。独立したメモリ空間を持ち、他のプロセスとは隔離されている
- スレッド:プロセス内の実行単位。同じプロセス内のスレッドはメモリ空間を共有する
例えば、Webブラウザ(プロセス)の中で複数のタブ(スレッド)が同時に動作するイメージです。マルチコアCPUでは複数のスレッドを並列処理できるため、コア数が多いほど同時処理能力が高くなります。
プロセスの状態遷移
プロセスは以下の状態を遷移します。
- 生成:プログラムが起動される
- 実行可能:CPUの割り当てを待っている状態
- 実行中:CPUを使って処理を実行している状態
- 待機:I/O(ディスク読み書き等)の完了を待っている状態
- 終了:処理が完了した状態
仮想メモリとページング
物理メモリ(RAM)だけでは足りない場合、OSは仮想メモリの仕組みを使ってディスク上に一時退避します。
- ページング:メモリを「ページ」という固定サイズの単位で管理し、使用頻度の低いページをディスク(ページファイル/スワップ領域)に退避する
- ページフォルト:退避されたページにアクセスした際に発生。ディスクからメモリに読み戻す処理が入るため速度が低下
- スラッシング:メモリ不足でページングが頻発し、システム全体が極端に遅くなる現象
タスクマネージャーでの確認
Windowsのタスクマネージャー(Ctrl+Shift+Esc)で以下を確認できます。
- CPU使用率:100%が継続する場合はプロセスの暴走やリソース不足
- メモリ使用率:80%を超えたら増設を検討
- ディスク使用率:100%が継続する場合はI/Oボトルネック
- プロセス一覧:リソースを大量消費しているプロセスを特定
Linuxではtopまたはhtopコマンドでリアルタイム監視、free -hでメモリ状況、ps auxでプロセス一覧を確認します。
実務ポイント:サーバーのメモリ不足は業務停止に直結します。定期的にメモリ使用率を監視し、常時80%を超えるようなら、不要なサービスの停止やメモリ増設を計画しましょう。仮想メモリ(ページファイル)のサイズは通常、物理メモリの1.5〜2倍が推奨されますが、SSDの場合は物理メモリと同量でも十分です。
✅ 完了済み