Linuxのオーバーコミットメモリ設定


0

このドキュメントによると:https : //www.kernel.org/doc/Documentation/vm/overcommit-accounting、「vm.overcommit_memory」を「2」に設定すると、「システムの合計アドレス空間コミットはスワップ+構成可能な量(デフォルトは50%)の物理RAMを超えることが許可されています。」また、「オーバーコミットの量は、「vm.overcommit_ratio」(パーセント)または「vm.overcommit_kbytes」(絶対値)で設定できます。」

私の質問は、「vm.overcommit_ratio」と「vm.overcommit_kbytes」は、すべてのプロセスによるメモリコミットの合計を制限するのですか、それとも各プロセスを制限するだけですか?

物理メモリの半分のみを使用するようにシステムを制限することは意味をなさないため、後者である必要があると思いますが、ドキュメントの説明は、グローバルに制限していることを示唆しています。

回答:


2

グローバルです。この設定の目的は、すべてのメモリを使い果たして、OOMキラーがプロセスの強制終了を開始できないようにすることです。


2

後者だと思う

前者です。

合計で物理メモリの半分のみを使用するようにシステムを制限することは意味がありませんが、ドキュメントの説明では、グローバルに制限していることが示唆されています。

同意した。しかし、これは物理メモリの使用量の制限ではありません。それが言うように、物理メモリの使用量ではなく、コミットされたアドレス空間を制限します。もちろん、システムはほとんどすべてのRAMを使用します。


オーバーコミットを無効にしてスワップを無効にすると、この値は100になりますか?
サム

@Samあなたが話している価値がわからない。しかし、スワップなしで値が100の許可されたコミット済みアドレススペースの量を意味する場合、RAMはほとんど使用されないダーティページで乱雑になり、システムにはそれらを排出する場所がないため、システムの動作が非常に病理学的になる可能性があります。クリーンページのセットは非常にひどく圧縮される可能性があり、その結果、パフォーマンスが著しく低下し、クリーンページが常に破棄および再ロードされます。
デビッドシュワルツ

はい、「vm.overcommit_memory = 2」および「vm.overcommit_ratio = 100」を意味します。つまり、100であってはならないということですか?しかし、それより低いと、オーバーコミットを無効にしてスワップを無効にすると、RAMをすべて使用することさえできなくなります。
サム

@SamすべてのRAMを使用できます。繰り返しますが、これはRAMの何パーセントを使用するかの設定ではありません。(ただし、どのように設定しても、スワップなしですべてのRAMを有効に使用することは不可能です。スワップを使用すると、RAMを効率的に使用できます。上記のコメントを参照してください。)
David Schwartz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.