이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 18.4. 토토 베이 리토토 베이 관리버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

17.4. 커널 리소스 관리

대형PostgreSQL설치로 인해 다양한 운영 체제가 빠르게 소진될 수 있음 자원 제한. (일부 시스템에서는 공장 기본값이 다음과 같습니다. 정말 필요하지 않을 정도로 낮습니다."대형"설치.) 이런 종류의 문제는 계속 읽으세요.

17.4.1. 공유됨 메모리 및 세마포어

공유 메모리와 세마포어를 총칭하여 다음과 같습니다."시스템 V IPC"(함께 관련 없는 메시지 대기열포스트그레SQL). 거의 모든 현대 운영 시스템은 이러한 기능을 제공하지만 모든 시스템에 이러한 기능이 있는 것은 아닙니다. 기본적으로 켜져 있거나 충분한 크기, 특히 시스템 BSD 유산으로. (켜짐윈도우, PostgreSQL자체 제공 이러한 시설의 교체 구현 등 대부분의 이 섹션은 무시해도 됩니다.)

이러한 시설의 완전한 부족은 일반적으로 나타납니다 에 의해잘못된 시스템 호출오류 서버 시작 시. 그렇다면 할 수 있는 일은 아무것도 없지만 범퍼카 토토을 재구성합니다.PostgreSQL그들 없이는 작동하지 않습니다.

언제PostgreSQL1을 초과함 다양한 하드 중IPC제한, 서버는 시작을 거부하고 발생한 문제를 설명하는 유익한 오류 메시지 그리고 그것에 대해 무엇을 해야할지. (또한 참조섹션 17.3.1.) 관련 범퍼카 토토 매개변수는 전체에서 일관되게 이름이 지정됩니다. 다른 시스템;표 17-1주다 개요. 그러나 설정 방법은 다양합니다. 일부 플랫폼에 대한 제안 사항은 다음과 같습니다. 주의하세요 컴퓨터를 재부팅해야 하는 경우가 종종 있습니다. 이러한 설정을 변경하려면 커널을 다시 컴파일하세요.

표 17-1.시스템 뷔 IPC매개변수

이름 설명 합리적인 값
SHMMAX 공유 메모리 세그먼트의 최대 크기(바이트) 최소 몇 메가바이트(텍스트 참조)
SHMMIN 공유 메모리 세그먼트의 최소 크기(바이트) 1
SHMALL 사용 가능한 공유 메모리의 총량(바이트 또는 페이지) 바이트인 경우 다음과 동일SHMMAX; 페이지인 경우,ceil(SHMMAX/PAGE_SIZE)
SHMSEG 최대 공유 메모리 세그먼트 수 프로세스 1개의 세그먼트만 필요하지만 기본값은 훨씬 더 많습니다. 더 높은
SHMMNI 공유 메모리 세그먼트의 최대 수 시스템 전체 좋아요SHMSEG추가 공간 다른 응용 프로그램
SEMMNI 세마포어 식별자의 최대 수(예: 세트) 적어도ceil((max_connections + autovacuum_max_workers) / 16)
SEMMNS 시스템 전체 세마포어의 최대 수 ceil((max_connections + autovacuum_max_workers) / 16) * 17추가 공간 다른 응용 프로그램
SEMMSL 세트당 세마포어의 최대 수 최소 17
SEMMAP 세마포어 맵의 항목 수 텍스트 참조
SEMVMX 세마포어의 최대값 최소 1000(기본값은 대개 32767입니다. 그렇지 않음) 강제로 변경하지 않는 한 변경)

가장 중요한 공유 메모리 매개변수는SHMMAX, 공유 메모리 세그먼트의 최대 크기(바이트)입니다. 당신이 얻을 경우 의 오류 메시지shmget좋아요잘못된 인수아마도 이 한도를 초과했다는 것입니다. 필요한 크기 공유 메모리 세그먼트는 여러 가지에 따라 다릅니다.PostgreSQL구성 매개변수 에 표시됨테이블 17-2. (표시되는 오류 메시지에는 다음이 포함됩니다. 실패한 할당 요청의 정확한 크기입니다.) 다음과 같이 할 수 있습니다. 임시 해결책으로 이러한 설정 중 일부를 낮추어 실패. 얻을 수는 있지만포스트그레SQL함께 달리다SHMMAX2MB만큼 작은 크기이므로 상당히 필요합니다. 허용 가능한 성능을 위해서는 더 많은 것이 필요합니다. 원하는 설정은 수십에서 수백 메가바이트입니다.

일부 시스템에는 총 공유량에도 제한이 있습니다. 시스템의 메모리(SHMALL). 확인 확실히 이것은 충분히 큽니다.PostgreSQL및 기타 응용 프로그램 공유 메모리 세그먼트를 사용하고 있습니다. (주의:SHMALL은(는) 바이트가 아닌 페이지 단위로 측정됩니다. 많은 시스템.)

공유 파일의 최소 크기는 문제를 일으킬 가능성이 적습니다. 메모리 세그먼트(SHMMIN), 이는 최대 약 500kB여야 합니다.포스트그레SQL(보통 1입니다). 는 시스템 전체의 최대 세그먼트 수(SHMMNI) 또는 프로세스별(SHMSEG)는 다음과 같은 경우가 아니면 문제를 일으킬 가능성이 없습니다. 귀하의 시스템에서는 0으로 설정되어 있습니다.

포스트그레SQL하나를 사용합니다 허용된 연결당 세마포어(max_connections) Autovacuum 작업자 프로세스를 허용했습니다(autovacuum_max_workers), 16개 세트. 각 세트에는 17번째 세마포어도 포함됩니다. 여기에는"매직 넘버", ~에게 다른 사람이 사용하는 세마포어 세트와의 충돌을 감지합니다. 응용 프로그램. 시스템의 최대 세마포어 수는 다음과 같습니다. 에 의해 설정됨SEMMNS, 결과적으로 최소한 그 이상이어야 합니다.max_connections플러스autovacuum_max_workers, 플러스 1 허용된 연결 16개와 작업자마다 추가( 수식 입력표 17-1). 는 매개변수SEMMNI한계를 결정합니다 시스템에 존재할 수 있는 세마포어 세트의 수 한 번. 따라서 이 매개변수는 최소한ceil((max_connections + autovacuum_max_workers) / 16). 허용되는 연결 수를 줄이는 것은 일반적으로 오류에 대한 임시 해결 방법은 다음과 같습니다. 혼란스럽게 표현됨남은 공간이 없습니다 장치, 함수에서semget.

어떤 경우에는 증가가 필요할 수도 있습니다SEMMAP적어도 다음 순서에 해당함SEMMNS. 이 매개변수는 각각의 인접한 세마포어 리소스 맵의 크기 사용 가능한 세마포어 블록에는 항목이 필요합니다. 세마포어일 때 세트가 해제되면 기존 항목에 추가되거나 해제된 블록에 인접하거나 새 지도에 등록된 블록 입장. 맵이 가득 차면 해제된 세마포어는 손실됩니다( 재부팅). 시간이 지남에 따라 세마포어 공간의 단편화가 발생할 수 있음 있어야 할 것보다 더 적은 수의 세마포어를 사용할 수 있게 됩니다.

SEMMSL매개변수, 이는 한 세트에 얼마나 많은 세마포어가 포함될 수 있는지 결정합니다. 17개 이상PostgreSQL.

그 외 다양한 관련 설정"세마포 실행 취소", 예를 들어SEMMNU그리고SEMUME, 걱정하지 마세요PostgreSQL.

AIX

적어도 버전 5.1부터는 필요하지 않습니다. 다음과 같은 매개변수에 대해 특별한 구성을 수행하려면SHMMAX, 보이는 대로 이것은 모든 메모리를 공유 메모리로 사용할 수 있도록 구성됨 기억. 일반적으로 사용되는 구성입니다. 다음과 같은 다른 데이터베이스의 경우DB/2.

그러나 전역을 수정해야 할 수도 있습니다.ulimit정보/etc/보안/제한, 기본 하드로 파일 크기 제한(fsize) 및 파일 수(노파일) 너무 낮을 수도 있습니다.

BSD/OS

공유 메모리.기본적으로 4MB만 공유 메모리가 지원됩니다. 공유했다는 점을 명심하세요 메모리는 페이징할 수 없습니다. RAM에 잠겨 있습니다. 받는 사람 지원되는 공유 메모리의 양을 늘리십시오. 시스템, 커널에 다음과 같은 것을 추가하십시오 구성 파일:

옵션 "SHMALL=8192"
옵션 "SHMMAX=\(SHMALL*PAGE_SIZE\)"

SHMALL4kB로 측정됩니다. 페이지이므로 값 1024는 4MB의 공유 공간을 나타냅니다. 기억. 따라서 위의 최대값이 증가합니다. 공유 메모리 영역을 32MB로 늘립니다. 4.3 이상을 실행하는 사용자의 경우 나중에는 아마도 증가해야 할 것입니다.KERNEL_VIRTUAL_MB위 기본값248. 모두 변경되면 범퍼카 토토을 다시 컴파일하고 재부팅하세요.

4.0 및 이전 릴리스를 실행하는 경우 다음을 사용하세요.bpatch찾다sysptsize현재 커널의 값입니다. 이는 부팅 시 동적으로 계산됩니다.

$ bpatch -r sysptsize
0x9 = 9

다음, 추가SYSPTSIZE로서 범퍼카 토토 구성 파일에 하드 코딩된 값입니다. 다음을 사용하여 찾은 값을 늘립니다.bpatch. 4MB가 추가될 때마다 1을 추가합니다. 당신이 원하는 공유 메모리.

옵션 "SYSPTSIZE=16"

sysptsize변경될 수 없습니다 으로sysctl.

세마포어.당신은 아마도 다음을 원할 것입니다 세마포어 수도 늘리십시오. 기본값 시스템 총 60개는 약 50개만 허용됩니다.PostgreSQL연결. 범퍼카 토토에서 원하는 값을 설정하십시오. 구성 파일, 예:

옵션 "SEMMNI=40"
옵션 "SEMMNS=240"
FreeBSD

기본 설정은 소규모에만 적합합니다. 설치(예: 기본값SHMMAX32MB입니다). 변경은 다음을 통해 이루어질 수 있습니다.sysctl또는로더인터페이스. 다음 매개변수는 다음을 사용하여 설정할 수 있습니다.sysctl:

$ sysctl -w kern.ipc.shmall=32768
$ sysctl -w kern.ipc.shmmax=134217728
$ sysctl -w kern.ipc.semmap=256

재부팅 후에도 이 설정이 유지되도록 하려면 수정하세요./etc/sysctl.conf.

나머지 세마포어 설정은 지금까지 읽기 전용입니다. 와 같이sysctl걱정되지만 할 수 있습니다 부팅하기 전에 다음을 사용하여 변경하세요.로더프롬프트:

(로더) set kern.ipc.semmni=256
(로더) set kern.ipc.semmns=512
(로더) set kern.ipc.semmnu=256

마찬가지로 이것들은 재부팅 사이에 저장될 수 있습니다./boot/loader.conf.

커널을 잠그도록 구성할 수도 있습니다 메모리를 RAM으로 공유하고 페이징을 방지합니다. 교환하러 나감. 이는 다음을 사용하여 수행할 수 있습니다.sysctl설정kern.ipc.shm_use_phys.

활성화하여 FreeBSD 감옥에서 실행하는 경우sysctl'ssecurity.jail.sysvipc_allowed, 우체국장실행 중 서로 다른 감옥은 서로 다른 운영 방식으로 운영되어야 합니다. 시스템 사용자. 이렇게 하면 보안이 향상됩니다. 루트가 아닌 사용자가 공유 메모리를 방해하거나 다른 감옥에 있는 세마포어를 사용하면 PostgreSQL IPC 정리 코드가 제대로 작동합니다. (에서 FreeBSD 6.0 이상에서는 IPC 정리 코드가 다른 교도소의 프로세스를 적절하게 감지하여 다른 포트의 동일한 포트에서 포스트마스터 실행 감옥.)

FreeBSD버전 4.0 이전에는 다음과 같이 작동합니다.OpenBSD(아래 참조).

NetBSD

NetBSD5.0 및 나중에 IPC 매개변수는 다음을 사용하여 조정할 수 있습니다.sysctl, 예:

$ sysctl -w kern.ipc.shmmax=16777216

재부팅 후에도 이 설정이 유지되도록 하려면 수정하세요./etc/sysctl.conf.

또한 커널을 잠그도록 구성할 수도 있습니다 메모리를 RAM으로 공유하고 페이징을 방지합니다. 교환하러 나감. 이는 다음을 사용하여 수행할 수 있습니다.sysctl설정kern.ipc.shm_use_phys.

NetBSD이전 버전 5.0은 다음과 같이 작동합니다OpenBSD(아래 참조), 단, 매개변수는 다음과 같이 설정해야 합니다. 키워드옵션아님옵션.

OpenBSD

옵션SYSVSHM그리고SYSVSEM다음 경우에 활성화해야 합니다. 커널이 컴파일되었습니다. (기본값입니다.) 공유 메모리의 최대 크기는 옵션에 따라 결정됩니다.SHMMAXPGS(페이지 단위). 는 다음은 다양한 설정 방법의 예를 보여줍니다. 매개변수:

옵션 SYSVSHM
옵션 SHMMAXPGS=4096
옵션 SHMSEG=256

옵션 SYSVSEM
옵션 SEMMNI=256
옵션 SEMMNS=512
옵션 SEMMNU=256
옵션 SEMMAP=256

또한 커널을 잠그도록 구성할 수도 있습니다 메모리를 RAM으로 공유하고 페이징을 방지합니다. 교환하러 나감. 이는 다음을 사용하여 수행할 수 있습니다.sysctl설정kern.ipc.shm_use_phys.

HP-UX

기본 설정은 일반 환경에 충분한 경향이 있습니다. 설치. 켜짐HP-UX10, 공장 기본값SEMMNS은 128입니다. 이는 너무 낮을 수 있습니다. 더 큰 데이터베이스 사이트.

IPC매개변수는 에서 설정하세요.시스템 관리 관리자 () 아래범퍼카 토토 구성-구성 가능한 매개변수. 히트새 범퍼카 토토 생성언제 넌 끝났어.

리눅스

기본 최대 세그먼트 크기는 32MB입니다. 소규모에만 적합함포스트그레SQL설치. 그러나, 나머지 기본값은 상당히 넉넉한 크기이며 일반적으로 변경이 필요하지 않습니다. 최대 공유 메모리 세그먼트 크기는 다음을 통해 변경할 수 있습니다.sysctl인터페이스. 예를 들어, 허용하려면 128MB, 최대 총 공유 용량을 명시적으로 설정 메모리 크기는 2097152페이지(기본값)입니다.

$ sysctl -w kernel.shmmax=134217728
$ sysctl -w kernel.shmall=2097152

추가로 이 설정은 다음 사이에 저장될 수 있습니다. 재부팅됨/etc/sysctl.conf.

이전 배포판에는 다음이 없을 수 있습니다.sysctl프로그램이지만 동등한 변경이 가능합니다. 을 조작하여 만들 수 있습니다./proc파일 시스템:

$ echo 134217728 /proc/sys/kernel/shmmax
$ 에코 2097152 /proc/sys/kernel/shmall
맥OS X

OS X 10.2 이하에서는 파일을 편집하세요./시스템/라이브러리/StartupItems/SystemTuning/SystemTuning그리고 다음 명령의 값을 변경합니다:

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

OS X 10.3 이상에서는 이 명령이 이동되었습니다 에/etc/rc편집해야 함 거기. 참고하세요/etc/rc이다 일반적으로 OS X 업데이트(예: 10.3.6부터 10.3.7) 따라서 편집을 다시 실행해야 할 것으로 예상됩니다. 각 업데이트 후에.

OS X 10.3.9 이상에서는 편집 대신/etc/rc파일을 만들 수 있습니다 명명된/etc/sysctl.conf, 다음과 같은 변수 할당을 포함합니다.

kern.sysv.shmmax=4194304
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
kern.sysv.shmall=1024

이 방법은 편집보다 낫습니다/etc/rc왜냐하면 당신의 변경사항은 시스템 업데이트 전반에 걸쳐 보존됩니다. 참고하세요다섯 개 모두공유 메모리 매개변수는 다음에서 설정되어야 합니다./etc/sysctl.conf, 그렇지 않으면 값은 다음과 같습니다. 무시됩니다.

최신 OS X 릴리스에서는 다음 시도를 무시합니다. 설정SHMMAX다음 값으로 4096의 정확한 배수입니다.

SHMALL4kB로 측정됩니다. 이 플랫폼의 페이지입니다.

모든 OS X 버전에서는 재부팅이 필요합니다. 공유 메모리 매개변수의 변경 사항이 적용됩니다.

SCO 오픈서버

기본 구성에서는 512kB만 공유됩니다. 세그먼트당 메모리가 허용됩니다. 설정을 높이려면, 첫 번째 디렉토리로 변경/etc/conf/cf.d. 현재를 표시하려면 값SHMMAX, 실행:

./configure -y SHMMAX

새 값을 설정하려면SHMMAX, 실행:

./SHMMAX 구성=

어디에서새로운 것입니다 사용하려는 값(바이트 단위)입니다. 설정 후SHMMAX, 범퍼카 토토을 다시 빌드합니다:

./link_unix

그리고 재부팅하세요.

솔라리스

적어도 버전 2.6에서는 기본 최대 크기 공유 메모리 세그먼트가 너무 낮습니다.PostgreSQL. 관련 설정 에서 변경될 수 있습니다./etc/시스템, 예를 들면:

set shmsys:shminfo_shmmax=0x2000000
shmsys:shminfo_shmmin=1로 설정
shmsys:shminfo_shmmni=256으로 설정
shmsys:shminfo_shmseg=256으로 설정

semsys:seminfo_semmap=256 설정
semsys:seminfo_semmni=512로 설정
semsys:seminfo_semmns=512로 설정
semsys:seminfo_semmsl=32를 설정합니다.

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

또한 참조http://sunsite.uakom.sk/sunworldonline/swol-09-1997/swol-09-insidesolaris.html공유 메모리에 대한 정보는 아래솔라리스.

유닉스웨어

켜짐유닉스웨어7, 공유 메모리 세그먼트의 최대 크기는 512kB에 불과합니다. 기본 구성. 현재 값을 표시하려면 의SHMMAX, 실행:

/etc/conf/bin/idtune -g SHMMAX

현재, 기본값, 최소값 및 최대값. 에 대한 새 값을 설정하려면SHMMAX, 실행:

/etc/conf/bin/idtune SHMMAX

어디에서새로운 것입니다 사용하려는 값(바이트 단위)입니다. 설정 후SHMMAX, 범퍼카 토토을 다시 빌드합니다:

/etc/conf/bin/idbuild -B

그리고 재부팅하세요.

표 17-2. 영향을 미치는 구성 매개변수PostgreSQL의 공유 메모리 사용법

이름 현재 대략적인 승수(증분당 바이트) 8.3
max_connections 1800 + 270 * max_locks_per_transaction
autovacuum_max_workers 1800 + 270 * max_locks_per_transaction
max_prepared_transactions 770 + 270 * max_locks_per_transaction
shared_buffers 8400(8kB로 가정)BLCKSZ)
wal_buffers 8200(8kB로 가정)XLOG_BLCKSZ)
max_fsm_relations 70
max_fsm_pages 6
고정 공간 요구 사항 770KB

17.4.2. 리소스 제한

유닉스 계열 운영체제는 다양한 종류의 귀하의 운영을 방해할 수 있는 리소스 제한PostgreSQL서버. 의 특히 중요한 점은 프로세스 수에 대한 제한입니다. 사용자, 프로세스당 열린 파일 수, 각 프로세스에서 사용할 수 있는 메모리 이들 각각에는"단단한"그리고"소프트"한계. 소프트 한도는 실제로 개수로 계산되지만 하드 제한까지 사용자가 변경할 수 있습니다. 하드 제한은 루트 사용자만 변경할 수 있습니다. 시스템 전화setrlimit다음을 담당합니다. 이러한 매개변수를 설정합니다. 셸의 내장 명령ulimit(본 쉘) 또는한도 (csh)는 명령줄에서 리소스 제한을 제어하는 데 사용됩니다. 켜기 BSD 파생 시스템 파일/etc/login.conf다양한 자원을 제어합니다 로그인 중에 설정된 제한. 운영 체제 설명서를 참조하세요. 자세한 내용은. 관련 매개변수는 다음과 같습니다.maxproc, 열린 파일데이터 크기. 예를 들면:

기본값:\
...
        :datasize-cur=256M:\
        :maxproc-cur=256:\
        :openfiles-cur=256:\
...

(-현재은 소프트 한계입니다. 추가-최대하드 제한을 설정합니다.)

범퍼카 토토은 일부 시스템에 대해 시스템 전체에 대한 제한을 가질 수도 있습니다. 자원.

  • 켜짐리눅스 /proc/sys/fs/file-max결정합니다 커널이 지원할 최대 열린 파일 수입니다. 에 다른 번호를 적어서 변경할 수 있습니다. 파일 또는 과제를 추가하여/etc/sysctl.conf. 최대 한도 프로세스당 파일은 커널이 업데이트될 때 수정됩니다. 컴파일; 참조/usr/src/linux/Documentation/proc.txt용 자세한 정보.

포스트그레SQL서버가 사용하는 연결당 하나의 프로세스를 제공하므로 최소한 허용되는 연결 수만큼의 프로세스 시스템의 나머지 부분에 필요합니다. 이것은 일반적으로 문제는 하나의 시스템에서 여러 서버를 실행하는 경우 꽉 막힐 수도 있어요.

열린 파일에 대한 공장 기본 제한은 종종 다음과 같이 설정됩니다."사회적 친화적"가치 많은 사용자가 별도의 장치를 사용하지 않고도 한 컴퓨터에 공존할 수 있도록 합니다. 시스템 리소스의 부적절한 부분. 많이 달리면 머신의 서버는 아마도 여러분이 원하는 것일 수도 있지만 전용 서버에서는 이 한도를 높이고 싶을 수도 있습니다.

동전의 반대편에는 일부 시스템이 개인을 허용합니다. 많은 수의 파일을 여는 프로세스; 몇 개 이상이라면 프로세스가 그렇게 하면 시스템 전체의 한계가 쉽게 초과했습니다. 이런 일이 발생하고 싶지 않은 경우 시스템 전체 제한을 변경하고 설정할 수 있습니다.PostgreSQL'smax_files_per_process오픈 소비를 제한하는 구성 매개변수 파일.

17.4.3. Linux 메모리 오버커밋

Linux 2.4 이상에서는 기본 가상 메모리 동작 에 최적이 아닙니다.PostgreSQL. 범퍼카 토토이 메모리를 구현하는 방식 때문에 오버커밋하면 범퍼카 토토이 종료될 수 있습니다.PostgreSQL서버(마스터 서버 프로세스) 다른 프로세스의 메모리 요구로 인해 시스템의 가상 메모리가 부족해졌습니다.

이런 일이 발생하면 다음과 같은 커널 메시지가 표시됩니다. 이와 같이(시스템 문서 및 구성을 참조하십시오. 그러한 메시지를 찾을 수 있는 곳):

메모리 부족: 프로세스 12345(postgres)가 종료되었습니다.

이것은 다음을 나타냅니다.포스트그레메모리 부족으로 인해 프로세스가 종료되었습니다. 비록 기존 데이터베이스 연결은 계속 작동합니다. 일반적으로 새로운 연결은 허용되지 않습니다. 회복하려면,포스트그레SQL이 필요합니다 다시 시작되었습니다.

이 문제를 피하는 한 가지 방법은 다음을 실행하는 것입니다.PostgreSQL당신이 할 수 있는 기계에서 다른 프로세스에서 시스템이 실행되지 않는지 확인하십시오. 기억. 메모리가 부족하면 스왑 공간을 늘리십시오. 운영 체제가 문제를 방지하는 데 도움이 될 수 있습니다. 물리적 메모리가 있을 때마다 메모리 부족(OOM) 킬러가 호출됩니다. 스왑 공간이 소진되었습니다.

Linux 2.6 이상에서 추가 조치는 다음을 수정하는 것입니다. 커널의 동작을 방지합니다."오버커밋"메모리. 이 설정은 방지하지 않음OOM 킬러전체적으로 호출되는 것으로부터 가능성이 크게 낮아지므로 다음과 같은 결과가 발생할 수 있습니다. 더욱 강력한 시스템 동작. 이는 엄격한 선택을 통해 수행됩니다. 오버커밋 모드를 통해sysctl:

sysctl -w vm.overcommit_memory=2

또는 동등한 항목 배치/etc/sysctl.conf. 수정하고 싶을 수도 있습니다. 관련 설정vm.overcommit_ratio. 자세한 내용은 커널을 참조하세요. 문서 파일문서/vm/overcommit-accounting.

일부 공급업체의 Linux 2.4 범퍼카 토토이 초기 버전인 것으로 보고되었습니다. 2.6 오버커밋 버전sysctl매개변수. 그러나 설정vm.overcommit_memory커널에서는 2로 설정 관련 코드가 없으면 상황이 좋아지기는 커녕 더 나빠질 것입니다. 실제 커널 소스를 검사하는 것이 좋습니다 코드(함수 참조vm_enough_memory파일에서mm/mmap.c)에서 지원되는 내용을 확인하려면 2.4 설치에서 이 작업을 시도하기 전에 복사하십시오. 존재과도한 커밋-회계문서 파일은아님다음 증거로 간주됩니다. 기능이 있습니다. 의심스러운 경우 커널 전문가에게 문의하거나 커널 공급업체.