すべてのプロダクト
Search
ドキュメントセンター

:Linux インスタンスにおける高いメモリ使用量のトラブルシューティング

最終更新日:Jun 22, 2026

症状

Linux インスタンスにおける高いメモリ使用量により、次のような症状が発生する可能性があります。

  • システムの動作が遅くなり、サービスの応答時間が増加し、アプリケーションのパフォーマンスが低下します。

  • Elastic Compute Service (ECS) コンソールで、インスタンスの高いメモリ使用量を確認できます。一般的に、メモリ使用率が 80% を超える場合は高いと見なされます。

  • メモリ使用量が設定されたしきい値を超えたというアラートを受信します。

考えられる原因

高いメモリ使用量の一般的な原因は次のとおりです。

  • 異常なプロセスまたはサービスが大量のメモリを消費しています。

  • アプリケーションのワークロードが高すぎるため、インスタンスの物理メモリが不足しています。

操作手順

top を使用したメモリ使用量の確認

次の手順に従って、高いメモリ使用量を解決します。

  1. ECS インスタンスに接続します。詳細については、「SSH キーペアを使用して Linux インスタンスに接続する」をご参照ください。

  2. 大量のメモリを消費しているプロセスを特定します。

    次のコマンドを実行して、プロセスごとの CPU、メモリ、およびその他のリソース使用量を確認します。

    top
    説明

    小文字の q キーを押すと、top コマンドを終了できます。

    M キーを押すと、メモリ使用量順にプロセスをソートできます。次の例では、PID 13183 のプロセスが最も多くメモリを消費していることがわかります。

    image

    次の表では、システム概要とプロセスメトリックのフィールドについて説明します。

    システム情報サマリーとプロセスリストのフィールド

    システム情報サマリーのフィールド

    フィールド (行)

    説明

    top

    一般的なシステム情報です。

    • 現在時刻。

    • up:システムの稼働時間。

    • user:アクティブユーザー数。

    • load average:直近 1 分、5 分、15 分の平均実行キュー長。

    Tasks

    状態別のプロセス統計です。

    • total:プロセスの総数。

    • running:実行中プロセス数。

    • sleeping:スリープ中プロセス数。

    • stopped:停止中プロセス数。

    • zombie:ゾンビプロセス数。

    %Cpu(s)

    CPU 使用率の内訳です。

    • us:ユーザープロセスの実行に費やされた CPU 時間の割合。

    • sy:カーネルプロセスの実行に費やされた CPU 時間の割合。

    • ni:nice コマンドで優先度を設定したユーザープロセスの実行に費やされた CPU 時間の割合。

    • id:CPU がアイドル状態であった時間の割合。

    • wa:I/O 待ちに費やされた CPU 時間の割合。

    • hi:ハードウェア割り込みの処理に費やされた CPU 時間の割合。

    • si:ソフトウェア割り込みの処理に費やされた CPU 時間の割合。

    • st:スティールタイム。

    MiB Mem

    メモリ使用状況の統計です。

    • total:物理メモリの総量。

    • free:利用可能なメモリ。

    • used:使用中のメモリ。

    • buff/cache:カーネルキャッシュとバッファーに使用されているメモリ。

    MiB Swap

    スワップ使用状況の統計です。

    • total:スワップ領域の総量。

    • free:利用可能なスワップ領域。

    • used:使用中のスワップ領域。

    • avail Mem:新しいアプリケーションを起動するための推定利用可能メモリ。

    プロセスリストのフィールド

    フィールド (列)

    説明

    PID

    PID。

    USER

    プロセス所有者のユーザー名。

    PR

    プロセスのスケジューリング優先度。値が小さいほど優先度が高くなります。

    NI

    プロセスに対して nice コマンドで指定された優先度。

    VIRT

    プロセスが使用している仮想メモリ量。

    RES

    プロセスが使用している物理メモリ量。

    SHR

    プロセスが使用している共有メモリ量。

    S

    プロセスの状態。

    • R:実行中

    • S:スリープ中

    • Z:ゾンビ

    • D:割り込み不可能なスリープ

    • T:トレース中または停止中

    %CPU

    プロセスの CPU 使用率。

    %MEM

    プロセスの物理メモリ使用率。

    TIME+

    プロセスが使用した CPU 時間の合計。

    COMMAND

    プロセスを開始したコマンド。

高いメモリ使用量の解決

次の表は、高いメモリ使用量の一般的な原因とその解決方法を示しています。

問題の説明

原因

解決策

プロセスが長期間にわたって過剰なメモリを消費しています。

異常なプログラムまたはプロセスが過剰なメモリを消費しています。

  • top ユーティリティを使用して、メモリを大量に消費しているプログラムの PID を見つけ、次のいずれかの方法でプロセスを終了します。

    警告

    プロセスを終了する前に、そのプロセスの役割を理解して、予期しないサービス中断を防ぐようにしてください。

    • sudo kill -15 <PID> コマンドを実行して、プロセスを終了します。

    • top コマンドの対話モードでプロセスを終了します。詳細については、「PID によってプロセスを終了する」をご参照ください。

  • プロセスが悪意のあるものであると疑われる場合は、ウイルスの検出と削除を実行してください。

正常なプロセスが長期間にわたって大量のメモリを消費しています。

プロセスは正当ですが、動作中に過剰なメモリを消費しています。

インスタンスにメモリボトルネックが発生している場合は、ビジネスニーズに基づいて戦略を選択します。

  • インスタンスタイプを変更します詳細については、「インスタンスタイプの変更」をご参照ください。

  • アプリケーションを最適化します。

プロセスで時折、短時間のメモリスパイクが発生します。

トラフィックのスパイクまたはスケジュールされたタスクが短期的なメモリ急増を引き起こしています。

単一のプログラムまたはプロセスが大量のメモリを消費していませんが、全体的なメモリ使用量が高くなっています。

インスタンスでの正常な動作に必要なメモリが、インスタンスに設定されたメモリサイズを超えています。

インスタンスにメモリボトルネックが発生している場合は、インスタンスタイプを変更してください 詳細については、「インスタンスタイプを変更する」をご参照ください。

関連ドキュメント