이 값이 어디에 설정되어 있고 기본값은 무엇인지 궁금합니다. 내 것은 현재 18446744073692774399입니다. 눈에 보이는 곳에는 설치하지 않았습니다.
$ cat /proc/sys/kernel/shmmax
18446744073692774399
$ sysctl kernel.shmmax
kernel.shmmax = 18446744073692774399
답변1
__init
기능ipc_ns_init
shmmax
호출하여 초기값 설정shm_init_ns
, 매크로 값으로 설정합니다 SHMMAX
.
정의 SHMMAX
는 다음과 같습니다.<uapi/linux/shm.h>
:
#define SHMMAX (ULONG_MAX - (1UL << 24)) /* max shared seg size (bytes) */
64비트 컴퓨터에서 이 정의는 찾은 값과 같습니다 18446744073692774399
.
답변2
/proc/sys/kernel/shmmax를 즉시 에코할 수 있습니다!
# echo 20446744073692774399 > /proc/sys/kernel/shmmax
그러나 대부분의 사람들은 다음과 같은 줄을 사용하여 /etc/sysctl.conf를 편집합니다.
kernel.shmmax=your_new_value_here
sysctl(8) 매뉴얼 페이지를 참조하십시오.