큰토토설치는 다양한 운영 체제를 빠르게 소진 할 수 있습니다"큰"설치.) 발생한 경우
공유 메모리 및 세마포어는 총체적으로라고합니다."System V IPC"(함께토토). 거의 모든 현대 운영QNXandbeos포트,토토자체 교체품을 제공합니다
이러한 시설의 완전한 부족은 일반적으로 나타납니다불법 시스템 호출오류토토그들 없이는 작동하지 않습니다.
언제토토하나를 초과합니다IPC제한, 서버는 시작을 거부하고섹션.) 관련 토토 매개 변수의 이름이 지정되었습니다표 16-2주는
표 16-2.시스템 IPC매개 변수
이름 | 설명 | 합리적인 값 |
---|---|---|
Shmmax | 공유 메모리 세그먼트의 최대 크기 (바이트) | 250 kb + 8.2 kb *shared_buffers+ 14.2 kb *max_connectionsUp to Infinity |
Shmmin | 공유 메모리 세그먼트의 최소 크기 (바이트) | 1 |
Shmall | 이용 가능한 공유 메모리의 총 금액 (바이트 또는 | 바이트 인 경우Shmmax;CEIL (shmmax/page_size) |
SHMSEG | 최대 공유 메모리 세그먼트 당 | 1 세그먼트 만 필요하지만 기본값은 많이 있습니다. |
shmmni | 공유 메모리 세그먼트의 최대 수 | 좋아요SHMSEG플러스 룸 |
SEMMNI | 최대 세마포어 식별자 수 (즉, | 적어도CEIL (max_connections / |
SEMMNS | 시스템 전체의 세마포르 수의 최대 수 | CEIL (Max_Connections / 16) *다른 응용 프로그램을위한 공간 |
SEMMSL | 세트 당 최대 세마포르 수 | 최소 17 |
SEMMAP | 세마포어 맵의 항목 수 | 텍스트 참조 |
SEMVMX | 세마포어의 최대 값 | 최소 1000 (기본값은 종종 32767입니다 |
가장 중요한Shmmax,SHMGET
좋아요잘못된 인수가능합니다-B옵션) 및 숫자-n옵션),
문제를 일으킬 가능성이 적은 것은 공유의 최소 크기입니다.Shmmin)토토(보통 1). 그만큼shmmni) 또는 프로세스 당 (SHMSEG)는 귀하가 아닌 한 문제를 일으키지 않아야합니다
토토하나를 사용합니다-n옵션), 16 세트."마법, 사용 된 세마포어 세트와 충돌을 감지합니다SEMMNSmax_connections16마다 1 개 이상 추가표 16-2). 그만큼SEMMNI한도를 결정합니다CEIL (Max_Connections / 16). 숫자를 낮추는 것아니오, 함수에서semget
.
경우에 따라 증가해야 할 수도 있습니다SEMMAP최소한 순서에 있어야SEMMNS. 이 매개 변수는
theSEMMSL매개 변수토토.
관련된 다양한 기타 설정"세마포어 undo":SEMMNUandSemume, are토토.
공유 메모리.기본적으로 4MB 만Shmall값 1024
옵션 "shmall = 8192"
4.3 이상을 실행하는 사람들의 경우 아마도 가능합니다kernel_virtual_mb기본값 위248. 일단 모든 변경 사항이 있습니다
4.0 이상의 이전 릴리스를 실행하는 사람들의 경우bpatchsysptsize현재 토토의 값.
$ bpatch -r sysptsize 0x9 = 9
다음, 추가sysptsizeasbpatch. 추가 4MB마다 1을 추가하십시오
옵션 "sysptsize = 16"
sysptsize변경할 수 없습니다sysctl.
semaphores.토토할당 34
옵션 "semmni = 40"
옵션SYSVSHMandSYSVSEM언제Shmmaxpgs(페이지). 그만큼
옵션 sysvshm
(onnetbsdandOpenBSD핵심 단어는입니다옵션Singular.)
당신은 또한 토토을 잠금하도록 구성 할 수도 있습니다.sysctl설정kern.ipc.shm_use_phys.
기본 설정은 정상으로 충분한 경향이 있습니다hp-ux10, 공장 기본값SEMMNS는 128이며 너무 낮을 수 있습니다
IPC매개 변수는 할 수 있습니다시스템 (SAM) 아래토토 구성->구성 가능한 매개 변수. 때리다새 토토 만들기언제
기본 공유 메모리 제한 (둘 다ShmmaxandShmall)는 2.2 개의 토토에서 32MB이지만 ITProc파일
$ echo 134217728>/proc/sys/kernel/shmall $ echo 134217728>/proc/sys/kernel/shmmax
이 명령을 스크립트에 넣을 수 있습니다.
또는 사용할 수 있습니다sysctl, 가능한 경우 이들을 제어합니다/etc/sysctl.conf와 같은 선을 추가하십시오
kernel.shmall = 134217728
이 파일은 일반적으로 부팅 시간에 처리되지만sysctl도 호출 할 수 있습니다
다른 매개 변수의 크기는 충분합니다/usr/src/linux/include/asm-xxx/shmparaand/usr/src/linux/include/linux/sem.h.
OS X 10.2 이상에서 파일 편집/System/Library/StartUpitems/SystemTuning/SystemTuning다음 명령에서 값을 변경하십시오.
sysctl -w kern.sysv.shmmax
OS X 10.3 에서이 명령은로 이동되었습니다./etc/rc편집해야합니다
기본 구성에서는 512kb의 공유 만 공유했습니다-B 24 -N 12. 늘리려면/etc/conf/cf.d. 전류를 표시합니다Shmmax, run
./configure -y shmmax
새 값을 설정하려면Shmmax, run
./configure shmmax =value
여기서value새로운 것입니다Shmmax, 토토 재건 :
./link_unix
및 재부팅.
적어도 버전 2.6에서 기본 최대 크기의 a.토토. 관련 설정/etc/system,
SET SHMSYS : SHMINFO_SHMMAX = 0X2000000
적용 할 변경 사항을 재부팅해야합니다.
참조http://sunsite.uakom.sk/sunworldonline/swol-09-1997/swol-09-insidesolaris.html공유 메모리에 대한 정보Solaris.
onunixware7, the-B 24 -N 12. 표시하려면Shmmax, run
/etc/conf/bin/idtune -g shmmax
현재, 기본값, 최소 및Shmmax, run
/etc/conf/bin/idtune shmmaxvalue
여기서value새로운 것입니다Shmmax, 토토 재건 :
/etc/conf/bin/idbuild -B
및 재부팅.
유닉스와 같은 운영 체제는 다양한 종류의 종류를 시행합니다토토서버. 의"하드"및 a"소프트"제한. 소프트 한계는 실제로입니다setRlimit
ulimit(Bourne Shells) 또는Limit (CSH) IS/etc/login.conf다양한 자원을 제어합니다MaxProc, OpenFiles및DataSize. 예를 들어:
기본값 : \
(-cur는 소프트 한계입니다. 부록-max하드 제한을 설정하려면)
커널은 일부에 대한 시스템 전체 제한을 가질 수 있습니다
onLinux /proc/sys/fs/file-max/etc/sysctl.conf. 최대 한계/usr/src/linux/documentation/proc.txt
the토토서버 사용
열기 파일의 공장 기본 제한이 종종 설정됩니다"사회적으로 친절한"가치가 있습니다
동전의 다른 쪽에서 일부 시스템은 개인을 허용합니다.토토'smax_files_per_process구성 매개 변수로
Linux 2.4 이상에서 기본 가상 메모리 동작토토.토토서버 (Postmaster프로세스) 메모리가 요구되는 경우
이런 일이 발생하면 보이는 토토 메시지가 표시됩니다.
기억 부족 : 죽인 프로세스 12345 (우체국 장).
이것은를 나타냅니다.Postmaster메모리 압력으로 인해 프로세스가 종료되었습니다. 하지만토토
이 문제를 피하는 한 가지 방법은 실행하는 것입니다토토당신이 할 수있는 기계에서
Linux 2.6 이상에서 더 나은 솔루션은"Overcommit"메모리. 이것은 선택하여 수행됩니다
sysctl -w vm.overcommit_memory = 2
또는 동등한 항목 배치/etc/sysctl.conf. 수정하고 싶을 수도 있습니다vm.overcommit_ratio. 자세한 내용은 커널을 참조하십시오Documentation/VM/Overcommit-Accounting.
일부 공급 업체의 Linux 2.4 커널은 조기에있는 것으로보고되었습니다.vm.overcommit_memory토토에서 2 ~ 2vm_enough_memory
파일에서mm/mmap.c) 지원되는 내용을 확인하려면오버 커미트-계산문서화 파일아님