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

:Linux インスタンスのメモリ使用率が高い場合の対処方法

最終更新日:Jun 20, 2025

問題の説明

Linux ECS インスタンスを使用している場合、次の問題が発生する可能性があります。

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

  • Elastic Compute Service ( ECS ) コンソールに高いメモリ使用率が表示されます。 80% を超えるメモリ使用率は高いと見なされます。

  • メモリ使用率が指定されたしきい値を超えたことを示すアラートが生成されます。

考えられる原因

前述の問題は、次の理由により発生する可能性があります。

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

  • ビジネストラフィックが高すぎて、インスタンスの物理メモリが不足しています。

問題のトラブルシューティング

top を使用してインスタンスのメモリ使用量を確認する

メモリ使用率が高い問題を解決するには、次の手順を実行します。

  1. ECS インスタンスに接続します。 詳細については、「ECS インスタンスへの接続方法」をご参照ください。

  2. インスタンス上で大量のメモリを消費しているプロセスを確認します。

    プロセスの CPU 使用率とメモリ使用量を表示します。

    top
    説明

    top コマンドを終了するには、q と入力します。

    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 コマンドを実行して、プロセスを終了します。 詳細については、「一般的な Linux コマンド」をご参照ください。

  • プロセスが悪意のあるものであると思われる場合は、ウイルス検出と削除を使用してスキャンして終了します。

通常のユーザープログラムまたはプロセスが、長期間にわたって過剰なメモリリソースを消費しています。

プログラムは正常です。

インスタンスでメモリリソースのボトルネックが発生している場合は、ビジネスシナリオに基づいて適切な方法を選択できます。

単一のビジネスプログラムまたはプロセスが、短期間にわたって過剰なメモリリソースを占有することがあります。

プログラムまたはプロセスに一時的なトラフィックの急増またはスケジュールされたタスクがあり、短期間で過剰なメモリリソースを消費します。

プログラムまたはプロセスがメモリリソースを消費していませんが、全体的なメモリ使用率は高いです。

インスタンスのサービスの通常の操作に必要なメモリリソースが、インスタンスのメモリサイズを超えています。

インスタンスにメモリボトルネックがある場合は、インスタンスタイプを変更する

参照資料