이 문서는 지원되지 않는 버전의 와이즈 토토을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 18.4. 토토 베이 리토토 베이버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

3.5. 와이즈 토토 리소스 관리

와이즈 토토설치는 다양한 운영 체제를 빠르게 소진 할 수 있습니다 자원 제한. (일부 시스템에서는 공장 기본값이 있습니다 당신은 정말로 필요하지 않다는 것입니다"큰"설치.) 발생한 경우 이런 종류의 문제, 계속 읽으십시오.

3.5.1. 공유 기억과 세마포어

공유 메모리 및 세마포어는 집합 적으로라고합니다."System V IPC"(함께 관련이없는 메시지 대기열와이즈 토토). 거의 모든 현대 운영 시스템은 이러한 기능을 제공하지만 모든 기능을 제공하는 것은 아닙니다. 기본적으로 켜거나 충분히 크기를 조정하십시오 BSD 유산으로. (QNXbeos포트,와이즈 토토자체 교체품을 제공합니다 이 시설의 구현.)

이러한 시설의 완전한 부족은 일반적으로 나타납니다 에 의해불법 시스템 호출오류 우체국 마스터 시작시. 이 경우에는 할 일이 없습니다 그러나 와이즈 토토을 재구성하려면 -와이즈 토토그들 없이는 작동하지 않습니다.

언제와이즈 토토하나를 초과합니다 다양한 하드IPC한계, 우체국 장은 시작을 거부하고 발생한 문제를 설명하는 유익한 오류 메시지 그리고 그것에 대해 무엇을 해야하는지. (참조섹션 3.3.1.) 관련 와이즈 토토 매개 변수의 이름이 지정되었습니다 지속적으로 다른 시스템에 걸쳐;표 3-3개요. 그러나 설정하는 방법은 다양합니다. 일부 플랫폼에 대한 제안은 다음과 같습니다. 경고하십시오 기계를 재부팅해야하며 아마도 이 설정을 변경하려면 커널을 다시 컴파일하십시오.

표 3-3.시스템 다섯 IPC매개 변수

이름 설명 합리적인 값
Shmmax 공유 메모리 세그먼트의 최대 크기 (바이트) 250KB + 8.2 KB *shared_buffers+ 14.2 kb *max_connections또는 무한대
Shmmin 공유 메모리 세그먼트의 최소 크기 (바이트) 1
Shmall 이용 가능한 공유 메모리의 총 금액 (바이트 또는 페이지) 바이트 인 경우Shmmax; if pages,CEIL (shmmax/page_size)
SHMSEG 최대 공유 메모리 세그먼트 당 프로세스 1 세그먼트 만 필요하지만 기본값은 많이 있습니다. 더 높은
shmmni 공유 메모리 세그먼트의 최대 수 시스템 전체 LikeSHMSEG더한 방 다른 응용 프로그램
SEMMNI 최대 세마포어 식별자 수 (즉, 세트) = CEIL (max_connections / 16)
SEMMNS 시스템 전체의 세마포 르의 최대 수 CEIL (Max_Connections / 16) * 17+ 다른 응용 프로그램의 객실
SEMMSL 세트 당 최대 세포 수 = 17
SEMMAP 세마포어 맵의 항목 수 텍스트 참조
SEMVMX 세마포어의 최대 값 = 255 (기본값은 종종 32767이며 변경하지 마십시오 요청하지 않는 한.)

가장 중요한 공유 메모리 매개 변수는Shmmax, 공유 메모리 세그먼트의 최대 크기 (바이트). 당신이 에서 오류 메시지 가져 오기Shmget​​좋아요잘못된 인수, 그것은입니다 이 한도를 초과했을 가능성이 있습니다. 크기 필요한 공유 메모리 세그먼트는 수에 따라 다릅니다. 요청 된 버퍼 (-B옵션) 및 허용 연결 수 (-n옵션), 전자는 가장 중요하지만 중요한. (임시 솔루션으로서 이것을 낮출 수 있습니다 실패를 제거하기위한 설정.) 거친 근사치로서, 곱하여 필요한 세그먼트 크기를 추정 할 수 있습니다. 버퍼 수와 블록 크기 (기본적으로 8kb) 플러스 충분한 오버 헤드 (적어도 절반 메가 바이트). 오류 메시지 실패 할당의 크기를 포함 할 수 있습니다. 요구.

문제를 일으킬 가능성이 적은 것은 공유의 최소 크기입니다. 메모리 세그먼트 (Shmmin) 최대 약 256kb의 경우와이즈 토토(보통 1). 그만큼 최대 세그먼트 수 시스템 전체 (shmmni) 또는 프로세스 당 (SHMSEG)는 귀하가 아닌 한 문제를 일으키지 않아야합니다 시스템에는 0으로 설정되어 있습니다. 일부 시스템은 또한 제한이 있습니다 시스템에서 공유 메모리의 총량; 참조 아래 플랫폼 별 지침.

와이즈 토토하나를 사용합니다 허용 된 연결 당 세마포 (-n옵션), 16 세트 또한 17 번째 세마포어가 포함되어 있습니다."매직 번호", 충돌을 감지합니다 다른 응용 프로그램에서 사용하는 세마포어 세트. 최대 숫자 시스템의 세마포어는에 의해 설정됩니다.SEMMNS, 결과적으로 적어도 그와 같아야합니다 연결 설정으로 높음 16마다 추가 허용 연결 (공식 참조표 3-3). 그만큼 매개 변수SEMMNI결정을 결정합니다 limit on the number of semaphore sets that can exist on the 한 번에 시스템. 따라서이 매개 변수는 적어도CEIL (Max_Connections / 16). 저하 허용 연결 수는 임시 해결 방법입니다. 일반적으로 혼란스럽게 말하는 실패"남은 공간이 없습니다 장치", 함수에서semget ().

경우에 따라 증가해야 할 수도 있습니다SEMMAP최소한 주문에 있어야합니다 의SEMMNS. 이 매개 변수는 정의됩니다 세마포어 리소스 맵의 크기는 각각 사용 가능한 세마포르의 연속 블록에는 항목이 필요합니다. 언제 a semaphore 세트가 해제되어 기존 항목에 추가됩니다. 해방 된 블록에 인접하거나 새로운지도 항목. 지도가 가득 차면 해방 된 세마포어가 얻습니다 손실 (재부팅 될 때까지). 세마포 공간의 조각화가 가능합니다 시간이 지남에 따라 필요한 것보다 더 적은 수의 세마포르로 연결됩니다. BE.

theSEMMSL매개 변수 세트에 몇 개의 세마포르가있을 수 있는지 결정하고 최소 17 for와이즈 토토.

관련된 다양한 기타 설정"세마포어 undo":SEMMNUandSemume,와이즈 토토.

BSD/OS

공유 메모리.기본적으로 4MB 만 공유 메모리가 지원됩니다. 공유 한 것을 명심하십시오 메모리는 pagable이 아닙니다. RAM에 잠겨 있습니다. 에게 지원하는 공유 버퍼의 수를 늘리십시오 우체국 장, 커널에 다음을 추가하십시오 구성 파일. 에이Shmall값 1024는 4MB를 나타냅니다 공유 메모리. 다음은 최대 값을 증가시킵니다 공유 메모리 영역으로 32MB :

옵션 "shmall = 8192"
옵션 "shmmax = \ (shmall*page_size \)"

4.1 이상을 실행하는 사람들의 경우 위를 만드십시오. 변경하고 커널을 다시 컴파일하고 재부팅합니다. 그것들을 위해 이전 릴리스 실행, 사용bpatch찾기sysptsize현재 와이즈 토토의 값. 부팅 시간에 동적으로 계산됩니다.

$bpatch -r sysptsize
0x9 = 9

다음, 추가sysptsizeas 와이즈 토토 구성 파일의 하드 코드 값. 사용하여 찾은 값을 늘리십시오bpatch. 추가 4마다 1을 추가하십시오 당신이 원하는 공유 메모리의 MB.

옵션 "sysptsize = 16"

sysptsize할 수 없습니다 변경sysctl.

semaphores.세마포어 수. 기본적으로와이즈 토토할당 34 기본 시스템의 절반 이상인 세마포어입니다 60 세

와이즈 토토 구성에서 원하는 값을 설정합니다 파일, 예 :

옵션 "SEMMNI = 40"
옵션 "SEMMNS = 240"
옵션 "Semume = 40"
옵션 "semmnu = 120"
freebsd
netbsd
OpenBSD

옵션SYSVSHMandSYSVSEM활성화해야합니다 커널이 컴파일 될 때. (그들은 기본적으로입니다.) 공유 메모리의 최대 크기는 옵션에 의해 결정됩니다shmmaxpgs(페이지에서). 그만큼 다음은 다양한 것을 설정하는 방법의 예를 보여줍니다. 매개 변수 :

옵션 sysvshm
옵션 shmmaxpgs = 4096
옵션 shmseg = 256

옵션 sysvsem
옵션 semmni = 256
옵션 SEMMNS = 512
옵션 semmnu = 256
옵션 semmap = 256

(onnetbsdandOpenBSD핵심 단어는입니다 실제로옵션Singular.)

당신도를 사용하고 싶을 수도 있습니다sysctl공유 메모리 잠금 설정 램에 들어가서 교환하기 위해 페지되지 않도록 방지합니다.

hp-ux

기본 설정은 정상으로 충분한 경향이 있습니다 설치. 에hp-ux10, 공장 기본값SEMMNS는 128이며 너무 낮을 수 있습니다 더 큰 데이터베이스 사이트의 경우

IPC매개 변수는 할 수 있습니다 에서 설정해야합니다.시스템 관리 관리자(SAM) 아래와이즈 토토 구성-구성 가능한 매개 변수. 때리다새 와이즈 토토 만들기언제 당신은 끝났습니다.

Linux

기본 공유 메모리 제한 (둘 다ShmmaxShmall)는 2.2 와이즈 토토에서 32MB이지만 IT 에서 변경할 수 있습니다.Proc파일 시스템 (재부팅없이). 예를 들어, 128을 허용합니다 MB :

$ echo 134217728/proc/sys/kernel/shmall
$ echo 134217728/proc/sys/kernel/shmmax

이 명령을 스크립트에 넣을 수 있습니다. 부트 타임.

또는 사용할 수 있습니다sysctl, 사용 가능한 경우, 이러한 매개 변수를 제어합니다. 라는 파일을 찾으십시오./etc/sysctl.conf그리고 선을 추가하십시오 다음과 같이 :

kernel.shmall = 134217728
kernel.shmmax = 134217728

이 파일은 일반적으로 부팅 시간에 처리되지만sysctl명시 적으로 나중에 전화합니다.

다른 매개 변수의 크기는 충분합니다 애플리케이션. 자신을보고 싶다면/usr/src/linux/포함/ASM-xxx/shmpara M.Hand/usr/src/linux/include/linux/sem.h.

Macos X

파일 편집/System/Library/StartUpitems/SystemTuning/SystemTuning다음 값을 변경하십시오.

sysctl -w kern.sysv.shmmax
sysctl -w kern.sysv.shmin
sysctl -w kern.sysv.shmmni
sysctl -w kern.sysv.shmseg
sysctl -w kern.sysv.shmall

이 값은 동일한 의미를 가지고 있습니다MacOSx 이전에 나열된대로 운영 체제.

SCO OpenServer

기본 구성에서는 512kb의 공유 만 공유했습니다 메모리 자체 세그먼트가 허용되며, 이는 충분합니다-B 24 -N 12. 늘리려면 설정, 첫 번째 디렉토리 변경/etc/conf/cf.d. 전류를 표시합니다 의 가치Shmmax, 바이트, 달리다

./configure -y shmmax

새 값을 설정하려면Shmmax, run :

./configure shmmax =value

여기서value새로운 것입니다 사용하려는 값 (바이트). 설정 후Shmmax, 재건 핵심

./link_unix

및 재부팅.

Solaris

적어도 버전 2.6에서 기본 최대 크기의 a. 공유 메모리 세그먼트는 너무 낮습니다와이즈 토토. 관련 설정 변경할 수 있습니다/etc/system, 예를 들어:

SET SHMSYS : SHMINFO_SHMMAX = 0X2000000
SHMSS를 설정하십시오 : SHMINFO_SHMMIN = 1
SHMSS를 설정하십시오 : SHMINFO_SHMMNI = 256
SHMSS를 설정하십시오 : SHMINFO_SHMSEG = 256

SEMSYS 세트 : SEMINFO_SEMMAP = 256
SEMSYS 세트 : SEMINFO_SEMMNI = 512
SEMSYS 세트 : SEMINFO_SEMMNS = 512
SEMSYS 세트 : SEMINFO_SEMMSL = 32

적용 할 변경 사항을 재부팅해야합니다.

참조http : //www.sunworld.com/swol-09-1997/swol-09-insidesolaris.html공유 메모리에 대한 정보는Solaris.

unixware

onunixware7, the 공유 메모리 세그먼트의 최대 크기는 512kb입니다. 기본 구성. 이것은 충분합니다.-B 24 -N 12. 표시하려면 현재 값Shmmax, 달리다

/etc/conf/bin/idtune -g shmmax

현재, 기본값, 최소 및 바이트의 최대 값. 새로운 값을 설정하려면Shmmax, run :

/etc/conf/bin/idtune shmmaxvalue

어디value새로운 것입니다 사용하려는 값 (바이트). 설정 후Shmmax, 재건 핵심

/etc/conf/bin/idbuild -B

및 재부팅.

3.5.2. 자원 제한

UNIX와 같은 운영 체제는 다양한 종류의 요소를 시행합니다 귀하의 운영을 방해 할 수있는 자원 제한와이즈 토토서버. 의 특히 중요성은 당 프로세스 수의 한계입니다. 사용자, 프로세스 당 열린 파일 수 및 각 프로세스에 사용 가능한 메모리. 이들 각각은를 가지고 있습니다."하드"및 A"소프트"제한. 소프트 한계는 실제로입니다 계산하지만 사용자는 하드 제한까지 변경할 수 있습니다. 단단한 제한은 루트 사용자 만 변경할 수 있습니다. 시스템 부르다setRlimit이 매개 변수를 설정합니다. 쉘의 내장 명령ulimit(Bourne Shells) 또는Limit(CSH) IS 명령 줄에서 자원 제한을 제어하는 ​​데 사용됩니다. ~에 BSD 유래 시스템 파일/etc/login.conf다양한 리소스를 제어합니다 로그인 중에 설정된 제한. 보다login.conf자세한 내용. 그만큼 관련 매개 변수는입니다.MaxProc, OpenFilesDataSize. 예를 들어:

기본값 : \
...
        : datasize-cur = 256m : \
        : maxproc-cur = 256 : \
        : OpenFiles-Cur = 256 : \
...

(-cur소프트 한계입니다. 부록-max하드 제한을 설정하려면)

와이즈 토토은 일부에 대한 시스템 전체 제한을 가질 수 있습니다 자원.

  • onLinux /proc/sys/fs/file-max와이즈 토토이 지원할 최대의 열린 파일 수. 다른 숫자를 작성하여 변경할 수 있습니다. 파일 또는 할당을 추가하여/etc/sysctl.conf. 최대 한계 프로세스 당 파일은 와이즈 토토이있는 시점에 고정됩니다. 편집; 보다/usr/src/linux/documentation/proc.txt더 많은 정보.

the와이즈 토토서버 사용 연결 당 하나의 프로세스가 있으므로 최소한 허용 연결만큼 많은 프로세스뿐만 아니라 나머지 시스템이 필요합니다. 이것은 보통 a가 아닙니다 문제이지만 하나의 컴퓨터에서 여러 서버를 실행하면 빡빡 할 수 있습니다.

열기 파일의 공장 기본 제한이 종종 설정됩니다"사회적으로 친절한"그 가치 많은 사용자가 사용하지 않고 기계에 공존 할 수 있습니다. 시스템 리소스의 부적절한 비율. 당신이 많은 것을 달리면 기계의 서버 이것은 아마도 당신이 원하는 것일 것입니다. 전용 서버이 한도를 높이고 싶을 수도 있습니다.

동전의 반대편에서 일부 시스템은 개인을 허용합니다. 많은 수의 파일을 열기위한 프로세스; 몇 명 이상 프로세스는 그렇게하면 시스템 전체의 한계가 쉽게 초과. 이런 일이 일어나고 변경하고 싶지 않다면 시스템 전체의 한계, 설정할 수 있습니다와이즈 토토'smax_files_per_process구성 매개 변수 열린 파일의 소비를 제한하려면