Linux Azure 仮想マシンでメモリ切れエラーが発生する

この記事は、Linux Azure 仮想マシンを使用する場合のメモリ切れ (OOM) エラーの理解とトラブルシューティングに役立ちます。

元の製品バージョン:   Linux を実行している仮想マシン
元の KB 番号:   4010058

現象

Linux Azure 仮想マシンでは、OOM エラーが発生します。 たとえば、システム ログに次のエラーが表示されます。

localhost カーネル: メモリ切れ: Kill process 2154 (oom) スコア 844 または子を犠牲にする

原因

この問題は、スワップ ファイルが不足している可能性があります。

解決方法

スワップ ファイルを追加して、Linux Azure 仮想マシンの仮想メモリを増やします。 それには、以下の手順を実行します。

注意

  • 次のコマンドはルートとして実行されます。
  • スワップ ファイルは、Linux ベンダーのガイダンス (Ubuntu、Red Hat) に従って 設定する必要があります
  • スワップ ファイルを作成する前に、次のコマンドを実行して、使用可能な領域の量を次に /mnt/resource 示します /mnt df -h
  1. ResourceDisk.MountPoint パラメーターで定義されているディレクトリにスワップ ファイルを作成するには、次の 3 つのパラメーターを設定して /etc/waagent.conf ファイルを更新できます。

    ResourceDisk.Format=y
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB= xx
    

    注意

    xx プレースホルダーは、スワップ ファイルに必要なメガバイト (MB) の数を表します。

  2. 問題のシステムに応じて、次のいずれかのコマンドを実行して WALinuxAgent サービスを再起動します。

    Ubuntu: service walinuxagent restart
    Red Hat/Centos: service waagent restart
    
  3. 再起動後に使用されている新しいスワップ apace を表示するには、次のいずれかのコマンドを実行します。

    dmesg | grep swap
    swapon -s
    cat /proc/swaps
    file /mnt/resource/swapfile
    free| grep -i swap
    
  4. スワップ ファイルが作成されていない場合は、次のいずれかのコマンドを使用して仮想マシンを再起動できます。

    shutdown -r now
    init 6
    

詳細については、「Ubuntu Cloud Images and SWAP space in Windowsビルド済みの Linux イメージを実行しているAzure Virtual Machines」を参照してください