ページ割り当てエラー-メモリが不足していますか?


24

最近、kern.log私のサーバーの1 つでこのようなエントリに気付きました。

Feb 16 00:24:05 aramis kernel: swapper: page allocation failure. order:0, mode:0x20

知りたい:

  1. そのメッセージはどういう意味ですか?
  2. サーバーのメモリが不足していますか?

スワップの使用率は非常に低く(10%未満)、これまでのところ、メモリ不足が原因でプロセスが強制終了されることはありませんでした。

追加情報:

  • サーバーは、Debian 6.0を実行するXenインスタンス(DomU)です
  • 512 MBのRAMと512 MBのスワップパーティションがあります
  • 仮想マシン内のCPU負荷は平均0.25を示します

回答:


14

Debianバグ666021は、この同じ問題の報告のようです。提案は次のとおりです。

#change value for this boot
sysctl -w vm.min_free_kbytes=65536

#change value for subsequent boots
echo "vm.min_free_kbytes=65536" >> /etc/sysctl.conf

http://russ.garrett.co.uk/2009/01/01/linux-kernel-tuning/には、この設定を変更することが役立つ場合についての議論があります。

これにより、カーネルは常に64MBのRAMを空けておくように指示されます。これは、主に次の2つの場合に役立ちます。

  • スワップレスマシン。着信ネットワークトラフィックがカーネルを圧倒したり、バッファをフラッシュする時間がなくなる前にOOMを強制したりしないようにします。

  • 同じ理由で、x86マシンでは、x86アーキテクチャでは約900MB未満のRAMしかDMA転送できません。したがって、大量のRAMが解放されたOOMエラーという奇妙な状況に陥ることがあります。

この設定を3.2.12-gentoo x86マシンに適用しましたが、まだこれらのエラーが発生しています。


これは、MPT Fusion SCSIコントローラーなど、特定のデバイスでもまったく同じことが発生する可能性があります。vm.min_free_kbytesを約100メガバイトにすることをお勧めします。または、少なくとも以前は32ビットLinuxディストリビューションでこれらのものを使用しなければならなかったときに使用されていました。それ以降は物事が変更されている可能性があります。
ジャンヌピッカライネン

重要な警告echo 104857600 > /proc/sys/vm/min_free_kbytes システムをカーネルパニックに、再現可能に引き起こしました。読みたいとは思わなかった過程で、かなりの量のテキストが画面に飛び出しましたが、最後のメッセージは私のWi-Fiドングルに関係していたので、この破損は私のシステムに特有のものかもしれません。そうは言っても、注意して突いてください。
i336_

ああ、キロバイト単位です。104857600または10485760を実行したかどうかを具体的に思い出すことはできませんが、前者を実行した場合、このラップトップがインストールされていない 100GBを予約しようとしました;)VMでこれをいじってみます。
i336_

1

Debian 5およびカーネル2.6.39.3 64ビットを実行しているLenovo NASでこのエラーを解決しました。

https://www.novell.com/support/kb/doc.php?id=7002803によれば、メッセージは恐ろしいように見えても情報です

しかし、彼らは私の非常に限られたルートパーティションを埋めていました(このデバイスには50 MByteのルートパーティションがあります?!)

私のための修正はセットにしたvm.min_free_kbytesから65536にダウン16384

その後、OSにはまだ107 MBの空きメモリと2 GBのバッファがあります。これは意味がありませんが、すべてのロギングを停止しました。


1

また、チェックする価値があるかもしれませんvm.zone_reclaim_modehttp : //www.kernel.org/doc/Documentation/sysctl/vm.txtを参照してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.