私が間違っていなければ、 の値は/proc/sys/kernel/shmall
、システムに割り当てることができる共有メモリの合計量 (バイト単位) を示します。
私はt2.micro
ec2 debian インスタンスを使用していますが、次のようなメッセージが表示されます:
$ cat /proc/sys/kernel/shmall
18446744073692774399
これは、共有メモリの割り当て可能な総量が約0.02ゼタバイト...
答え1
そうです、 と定義すれば、誰にとっても十分なはずです(ULONG_MAX - (1UL << 24))
。ただし、これはプロセスごとの値ではなく、全体的な値であることに注意してください。http://elixir.free-electrons.com/linux/latest/source/include/uapi/linux/shm.h#L13:
* SHMMNI、SHMMAX、SHMALLはデフォルトの上限値であり、 * sysctlによって変更されました。SHMMAXとSHMALLの値は、 * ユーザースペースが制限されるようなシナリオを起こさずに、可能な限り大きくする * フォームの操作によって制限を調整するとオーバーフローが発生します * 「現在の制限を取得; Xを追加; 制限を更新」。したがって、 * SHMMAXとSHMALLをさらに大きくすることをお勧めします。これらの制限は * 32 ビット システムと 64 ビット システムの両方に適しています。