システムで使用可能な共有メモリサイズを計算する方法

システムで使用可能な共有メモリサイズを計算する方法

~によるとRHELドキュメント、システムで使用可能な共有メモリの総量は同じですshmall*PAGE_SIZE

RHEL 6のインストールが完了した後のカーネルパラメーターのデフォルト値はshmall4294967296です。これは、システム全体で利用可能な共有メモリページの総数が4294967296で、ページサイズが4096Bであることを意味します。したがって、公式によると、共有メモリのサイズは次のようになります。

4294967296*4096/1024/1024/1024/1024 = 16 TB

...オペレーティングシステムのRAM(8GB)サイズよりはるかに大きいです。オペレーティングシステムは、割り当てる16TBの共有メモリをどのように見つけますか?

それでは、そのサイズは/dev/shm共有メモリのサイズと同じですか?そうでなければ、共有メモリの実際のサイズをどのように知ることができますか?

ベストアンサー1

あなたの計算は正しいです。 shmall は、使用可能な仮想メモリより高く設定できます。これらすべてを使用しようとすると、shmallを超えたため失敗するのではなく、他の理由で失敗します。

しかし、これらのIPC制限を見つけるためのいくつかのコマンドもあります。

ipcs -l
lsipc  # util-linux>=2.27

Linuxの仮想メモリも基本的に無制限であり、RAM +スワップよりも大きいです。バラより

https://serverfault.com/questions/606185/how-does-vm-overcommit-memory-work

OOMキラーはどのプロセスを最初に終了するかをどのように決定しますか?

一方、あなたはできます限界各プロセスで使用される仮想メモリはulimt -vカーネルには影響しません/proc/sys/kernel/shmall

おすすめ記事