💻 IT基礎知識 第4章-2節

プロセスとメモリ管理

プロセスとメモリ管理

サーバーやPCが遅くなったとき、原因の多くはプロセスかメモリに関連しています。OSの基本的な資源管理の仕組みを理解しておくと、パフォーマンス問題への対処が格段に楽になります。

プロセスとスレッド

  • プロセス:実行中のプログラムのこと。独立したメモリ空間を持ち、他のプロセスとは隔離されている
  • スレッド:プロセス内の実行単位。同じプロセス内のスレッドはメモリ空間を共有する

例えば、Webブラウザ(プロセス)の中で複数のタブ(スレッド)が同時に動作するイメージです。マルチコアCPUでは複数のスレッドを並列処理できるため、コア数が多いほど同時処理能力が高くなります。

プロセスの状態遷移

プロセスは以下の状態を遷移します。

  1. 生成:プログラムが起動される
  2. 実行可能:CPUの割り当てを待っている状態
  3. 実行中:CPUを使って処理を実行している状態
  4. 待機:I/O(ディスク読み書き等)の完了を待っている状態
  5. 終了:処理が完了した状態

仮想メモリとページング

物理メモリ(RAM)だけでは足りない場合、OSは仮想メモリの仕組みを使ってディスク上に一時退避します。

  • ページング:メモリを「ページ」という固定サイズの単位で管理し、使用頻度の低いページをディスク(ページファイル/スワップ領域)に退避する
  • ページフォルト:退避されたページにアクセスした際に発生。ディスクからメモリに読み戻す処理が入るため速度が低下
  • スラッシング:メモリ不足でページングが頻発し、システム全体が極端に遅くなる現象

タスクマネージャーでの確認

Windowsのタスクマネージャー(Ctrl+Shift+Esc)で以下を確認できます。

  • CPU使用率:100%が継続する場合はプロセスの暴走やリソース不足
  • メモリ使用率:80%を超えたら増設を検討
  • ディスク使用率:100%が継続する場合はI/Oボトルネック
  • プロセス一覧:リソースを大量消費しているプロセスを特定

Linuxではtopまたはhtopコマンドでリアルタイム監視、free -hでメモリ状況、ps auxでプロセス一覧を確認します。

実務ポイント:サーバーのメモリ不足は業務停止に直結します。定期的にメモリ使用率を監視し、常時80%を超えるようなら、不要なサービスの停止やメモリ増設を計画しましょう。仮想メモリ(ページファイル)のサイズは通常、物理メモリの1.5〜2倍が推奨されますが、SSDの場合は物理メモリと同量でも十分です。