답변:
내가 사용한 모든 Linux 시스템의 경우 SHMALL
페이지 SHMMAX
단위로 측정되며 바이트 단위로 측정됩니다. ipcs
출력하는 동안 항상 위의 매개 변수를 KBytes로 변환하는 명령을 사용하여 시스템을 확인 하고 sysctl
값 과 비교할 수 있다고 생각 합니다.
[aseryozhin@centos ~]$ ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096 // SHMMNI
max seg size (kbytes) = 524288 // SHMMAX
max total shared memory (kbytes) = 8388608 // SHMALL
min seg size (bytes) = 1
[aseryozhin@centos ~]$ sysctl -e kernel.shmmax
kernel.shmmax = 536870912
[aseryozhin@centos ~]$ sysctl -e kernel.shmall
kernel.shmall = 2097152
[aseryozhin@centos ~]$ getconf PAGE_SIZE
4096
SHMMAX : 524288 * 1024 = 536870912
SHMALL : 8388608 * 1024/4096 = 2097152
이러한 변수는 설명서에 명시된대로 바이트 단위로 측정됩니다. postgresql 구성 매개 변수를 보는 것이 더 중요하다고 생각합니다. 필요할 때 SHMALL / SHMMAX 값을 확인해야합니다. 예를 들어 최대 연결 수를 늘리려면 이러한 제한을 늘려야 할 수 있습니다.
데이터베이스 서버 조정은 동시 연결 수 및 데이터베이스 크기와 같은 사용 패턴에 따라 다릅니다. 구성 매개 변수를 늘리는 것이 항상 좋은 것은 아닙니다.