私はこれらの値がどこに設定されているのか、そしてそれらがデフォルトで何になっているのか疑問に思っていますか?私は現在18446744073692774399です。目に見える場所に設定していません。
$ cat /proc/sys/kernel/shmmax
18446744073692774399
$ sysctl kernel.shmmax
kernel.shmmax = 18446744073692774399
__init
関数 ipc_ns_init
は、 shm_init_ns
を呼び出してshmmax
の初期値を設定します。 SHMMAX
マクロの値。
SHMMAX
の定義は <uapi/linux/shm.h>
にあります:
#define SHMMAX (ULONG_MAX - (1UL << 24)) /* max shared seg size (bytes) */
64ビットマシンでは、その定義は検出された値18446744073692774399
と同じです。
その場で/ proc/sys/kernel/shmmaxにエコーすることができます!
# echo 20446744073692774399 > /proc/sys/kernel/shmmax
しかし、ほとんどの人は/etc/sysctl.confを次のような行で編集します。
kernel.shmmax=your_new_value_here
Sysctl(8)のマニュアルページを参照してください。