큰와이즈 토토설치는 다양한 운영 체제를 빠르게 소진 할 수 있습니다 자원 제한. (일부 시스템에서는 공장 기본값이 있습니다 당신은 정말로 필요하지 않다는 것입니다"큰"설치.) 발생한 경우 이런 종류의 문제, 계속 읽으십시오.
공유 메모리 및 세마포어는 집합 적으로라고합니다."System V IPC"(함께 관련이없는 메시지 대기열와이즈 토토). 거의 모든 현대 운영 시스템은 이러한 기능을 제공하지만 모든 기능을 제공하는 것은 아닙니다. 기본적으로 켜거나 충분히 크기를 조정하십시오 BSD 유산으로. (QNX및beos포트,와이즈 토토자체 교체품을 제공합니다 이 시설의 구현.)
이러한 시설의 완전한 부족은 일반적으로 나타납니다 에 의해불법 시스템 호출오류 우체국 마스터 시작시. 이 경우에는 할 일이 없습니다 그러나 와이즈 토토을 재구성하려면 -와이즈 토토그들 없이는 작동하지 않습니다.
언제와이즈 토토하나를 초과합니다 다양한 하드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":SEMMNU
andSemume
,와이즈 토토.
공유 메모리.기본적으로 4MB 만
공유 메모리가 지원됩니다. 공유 한 것을 명심하십시오
메모리는 pagable이 아닙니다. RAM에 잠겨 있습니다. 에게
지원하는 공유 버퍼의 수를 늘리십시오
우체국 장, 커널에 다음을 추가하십시오
구성 파일. 에이Shmall
값 1024는 4MB를 나타냅니다
공유 메모리. 다음은 최대 값을 증가시킵니다
공유 메모리 영역으로 32MB :
옵션 "shmall = 8192" 옵션 "shmmax = \ (shmall*page_size \)"
4.1 이상을 실행하는 사람들의 경우 위를 만드십시오.
변경하고 커널을 다시 컴파일하고 재부팅합니다. 그것들을 위해
이전 릴리스 실행, 사용bpatch찾기sysptsize
현재 와이즈 토토의 값.
부팅 시간에 동적으로 계산됩니다.
$bpatch -r sysptsize 0x9 = 9
다음, 추가sysptsize
as
와이즈 토토 구성 파일의 하드 코드 값.
사용하여 찾은 값을 늘리십시오bpatch. 추가 4마다 1을 추가하십시오
당신이 원하는 공유 메모리의 MB.
옵션 "sysptsize = 16"
sysptsize
할 수 없습니다
변경sysctl.
semaphores.세마포어 수. 기본적으로와이즈 토토할당 34 기본 시스템의 절반 이상인 세마포어입니다 60 세
와이즈 토토 구성에서 원하는 값을 설정합니다 파일, 예 :
옵션 "SEMMNI = 40" 옵션 "SEMMNS = 240" 옵션 "Semume = 40" 옵션 "semmnu = 120"
옵션SYSVSHM
andSYSVSEM
활성화해야합니다
커널이 컴파일 될 때. (그들은 기본적으로입니다.)
공유 메모리의 최대 크기는 옵션에 의해 결정됩니다shmmaxpgs
(페이지에서). 그만큼
다음은 다양한 것을 설정하는 방법의 예를 보여줍니다.
매개 변수 :
옵션 sysvshm 옵션 shmmaxpgs = 4096 옵션 shmseg = 256 옵션 sysvsem 옵션 semmni = 256 옵션 SEMMNS = 512 옵션 semmnu = 256 옵션 semmap = 256
(onnetbsdandOpenBSD핵심 단어는입니다 실제로옵션Singular.)
당신도를 사용하고 싶을 수도 있습니다sysctl공유 메모리 잠금 설정 램에 들어가서 교환하기 위해 페지되지 않도록 방지합니다.
기본 설정은 정상으로 충분한 경향이 있습니다
설치. 에hp-ux10, 공장 기본값SEMMNS
는 128이며 너무 낮을 수 있습니다
더 큰 데이터베이스 사이트의 경우
IPC매개 변수는 할 수 있습니다 에서 설정해야합니다.시스템 관리 관리자(SAM) 아래와이즈 토토 구성-구성 가능한 매개 변수. 때리다새 와이즈 토토 만들기언제 당신은 끝났습니다.
기본 공유 메모리 제한 (둘 다Shmmax
및Shmall
)는 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.
파일 편집/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 이전에 나열된대로 운영 체제.
기본 구성에서는 512kb의 공유 만 공유했습니다
메모리 자체 세그먼트가 허용되며, 이는 충분합니다-B 24 -N 12
. 늘리려면
설정, 첫 번째 디렉토리 변경/etc/conf/cf.d. 전류를 표시합니다
의 가치Shmmax
, 바이트,
달리다
./configure -y shmmax
새 값을 설정하려면Shmmax
, run :
./configure shmmax =value
여기서value새로운 것입니다
사용하려는 값 (바이트). 설정 후Shmmax
, 재건
핵심
./link_unix
및 재부팅.
적어도 버전 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.
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
및 재부팅.
UNIX와 같은 운영 체제는 다양한 종류의 요소를 시행합니다
귀하의 운영을 방해 할 수있는 자원 제한와이즈 토토서버. 의
특히 중요성은 당 프로세스 수의 한계입니다.
사용자, 프로세스 당 열린 파일 수 및
각 프로세스에 사용 가능한 메모리. 이들 각각은를 가지고 있습니다."하드"및 A"소프트"제한. 소프트 한계는 실제로입니다
계산하지만 사용자는 하드 제한까지 변경할 수 있습니다.
단단한 제한은 루트 사용자 만 변경할 수 있습니다. 시스템
부르다setRlimit
이 매개 변수를 설정합니다. 쉘의 내장 명령ulimit(Bourne Shells) 또는Limit(CSH) IS
명령 줄에서 자원 제한을 제어하는 데 사용됩니다. ~에
BSD 유래 시스템 파일/etc/login.conf다양한 리소스를 제어합니다
로그인 중에 설정된 제한. 보다login.conf자세한 내용. 그만큼
관련 매개 변수는입니다.MaxProc
,
OpenFiles
및DataSize
. 예를 들어:
기본값 : \ ... : 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
구성 매개 변수
열린 파일의 소비를 제한하려면