![/proc/sys/kernel/shmall 的解釋](https://rvso.com/image/122418/%2Fproc%2Fsys%2Fkernel%2Fshmall%20%E7%9A%84%E8%A7%A3%E9%87%8B.png)
除非我錯了。的值/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位元系統。