| 토토 꽁 머니 9.3.25 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.3 : 데이터베이스 스포츠 토토 사이트 시작 | PostgreSQL : 문서 : 9.3 : 사설 토토 사이트 설정 및 작동 | 17장. 서버 설정 및 작동 | PostgreSQL : 문서 : 9.3 : 서버 토토 사이트 순위 | |
포스트그레SQL때때로 할 수 있음 특히 다음과 같은 경우 다양한 운영 체제 리소스 제한을 소진합니다. 서버의 여러 복사본이 동일한 시스템에서 실행 중이거나 매우 큰 설치. 이 섹션에서는 커널에 대해 설명합니다. 사용된 리소스포스트그레SQL그리고 토토 꽁 머니과 관련된 문제를 해결하기 위해 취할 수 있는 단계 리소스 소비.
공유 메모리와 세마포어를 총칭하여 다음과 같이 지칭합니다."시스템 V IPC"(함께 관련 없는 메시지 대기열포스트그레SQL). 다음 날짜 제외윈도우, 여기서포스트그레SQL자체 대체품 제공 이러한 시설을 구현하려면 이러한 시설이 필요합니다. 실행하기 위해토토 꽁 머니.
이러한 시설의 완전한 부족은 일반적으로 다음과 같이 나타납니다. an잘못된 시스템 호출오류 발생 시 서버 시작. 그럴 경우엔 대안이 없다. 토토 꽁 머니을 재구성하세요.포스트그레SQL그들 없이는 작동하지 않습니다. 이 그러나 최신 운영 체제에서는 이러한 상황이 거의 발생하지 않습니다.
언제토토 꽁 머니다음 중 하나를 초과합니다. 다양한 하드IPC한계, 서버가 시작을 거부하고 유익한 오류를 남겨야 합니다. 문제와 해결 방법을 설명하는 메시지입니다. (또한 참조섹션 17.3.1.) 관련 토토 꽁 머니 매개변수의 이름은 일관되게 지정됩니다. 다양한 시스템에 걸쳐;표 17-1을 제공합니다 개요. 그러나 설정 방법은 다양합니다. 다음에 대한 제안 일부 플랫폼은 아래에 제공됩니다.
참고:이전토토 꽁 머니9.3, System V 공유량 서버를 시작하는 데 필요한 메모리가 훨씬 더 컸습니다. 만약 당신이 이전 버전의 서버를 실행 중인 경우 서버 버전에 대한 문서입니다.
표 17-1.시스템 V IPC매개변수
| 이름 | 설명 | 합리적인 값 |
|---|---|---|
| SHMMAX | 공유 메모리 세그먼트의 최대 크기(바이트) | 최소 1kB(서버 복사본을 많이 실행하는 경우 더 많음) |
| SHMMIN | 공유 메모리 세그먼트의 최소 크기(바이트) | 1 |
| SHMALL | 사용 가능한 공유 메모리의 총량(바이트 또는 페이지) | 바이트인 경우 다음과 동일SHMMAX; 페이지인 경우,ceil(SHMMAX/PAGE_SIZE) |
| SHMSEG | 프로세스당 공유 메모리 세그먼트의 최대 수 | 1개의 세그먼트만 필요하지만 기본값은 훨씬 더 높습니다. |
| SHMMNI | 시스템 전체 공유 메모리 세그먼트의 최대 수 | 좋아요SHMSEG+ 기타 공간 애플리케이션 |
| SEMMNI | 세마포어 식별자(예: 세트)의 최대 수 | 적어도ceil((max_connections + autovacuum_max_workers + 백그라운드 프로세스 수 + 5) / 16) |
| SEMMNS | 시스템 전체 세마포어의 최대 수 | ceil((max_connections + autovacuum_max_workers + 백그라운드 프로세스 수 + 5) / 16) * 17다른 응용 프로그램을 위한 공간 추가 |
| SEMMSL | 세트당 세마포어의 최대 수 | 최소 17 |
| SEMMAP | 세마포어 맵의 항목 수 | 텍스트 보기 |
| SEMVMX | 세마포어의 최대값 | 최소 1000(기본값은 대개 32767입니다. 필요) |
포스트그레SQL몇 바이트가 필요합니다 System V 공유 메모리(64비트 플랫폼에서는 일반적으로 48바이트) 서버의 각 복사본에 대해. 대부분의 최신 운영 체제에서는 이 금액을 쉽게 할당할 수 있습니다. 그러나 많이 실행하는 경우 서버의 복사본이거나 다른 응용 프로그램도 사용 중인 경우 System V 공유 메모리를 늘려야 할 수도 있습니다.SHMMAX, 공유 메모리의 최대 크기(바이트) 세그먼트 또는SHMALL, 총 금액 System V 공유 메모리는 시스템 전체에 걸쳐 있습니다. 참고하세요SHMALL은(는) 바이트가 아닌 페이지 단위로 측정됩니다. 많은 시스템.
공유 파일의 최소 크기는 문제를 일으킬 가능성이 적습니다. 메모리 세그먼트(SHMMIN), 이는 다음과 같아야 합니다. 최대 약 32바이트포스트그레SQL(보통 1입니다). 최대 시스템 전체의 세그먼트 수(SHMMNI) 또는 프로세스별(SHMSEG)가 발생할 가능성이 낮습니다. 시스템이 0으로 설정되어 있지 않으면 문제가 됩니다.
토토 꽁 머니하나의 세마포어를 사용합니다.
허용된 연결당(max_connections),
허용된 Autovacuum 작업자 프로세스(autovacuum_max_workers)
공유 메모리 액세스를 요청하는 백그라운드 프로세스를 허용했습니다.
16개 세트. 각 세트에는 17번째 세마포어도 포함됩니다.
여기에는"매직 넘버", ~에게
다른 애플리케이션에서 사용하는 세마포어 세트와의 충돌을 감지합니다.
시스템의 최대 세마포어 수는 다음과 같이 설정됩니다.SEMMNS, 결과적으로 최소한 다음과 같아야 합니다.
와 같이max_connections플러스autovacuum_max_workers+ 배경 수
공유 메모리 액세스를 요청하는 프로세스와 각각에 대해 하나의 추가 프로세스
16개의 허용된 연결과 작업자(공식 참조)표 17-1). 는
매개변수SEMMNI한도를 결정합니다.
시스템에 동시에 존재할 수 있는 세마포어 세트의 수
시간. 따라서 이 매개변수는 최소한ceil((max_connections + autovacuum_max_workers + 숫자
백그라운드 프로세스 + 5) / 16). 수를 낮추는 것
허용된 연결은 오류에 대한 임시 해결 방법입니다.
일반적으로 혼란스럽게 표현됩니다."남은 공간이 없습니다
기기에서", 함수에서semget.
어떤 경우에는 증가가 필요할 수도 있습니다SEMMAP적어도 다음 순서에 해당함SEMMNS. 이 매개변수는 사용 가능한 각 연속 블록이 있는 세마포어 리소스 맵 세마포어에는 항목이 필요합니다. 세마포어 세트가 해제되면 해제된 항목에 인접한 기존 항목에 추가되거나 블록이거나 새 지도 항목에 등록됩니다. 지도가 꽉 차면 해제된 세마포어가 손실됩니다(재부팅할 때까지). 조각화 시간이 지남에 따라 세마포어 공간의 사용 가능한 공간이 줄어들 수 있습니다. 있어야 할 것보다 세마포어가 많습니다.
그SEMMSL매개변수 세트에 포함될 수 있는 세마포어 수는 17개 이상이어야 합니다.토토 꽁 머니.
기타 관련 설정"세마포어 실행 취소", 예를 들어SEMMNU및SEMUME, 영향을 주지 않습니다토토 꽁 머니.
적어도 버전 5.1부터는 아무것도 할 필요가 없습니다. 다음과 같은 매개변수에 대한 특수 구성SHMMAX, 이는 다음을 허용하도록 구성된 것으로 보입니다. 모든 메모리를 공유 메모리로 사용합니다. 그런 종류의 다음과 같은 다른 데이터베이스에 일반적으로 사용되는 구성입니다.DB/2.
그러나 전역을 수정해야 할 수도 있습니다.ulimit정보/etc/보안/제한, 기본 하드 제한으로 파일 크기의 경우(fsize) 및 개수 파일(노파일)이 너무 낮을 수 있습니다.
기본 설정은 다음을 사용하여 변경할 수 있습니다.sysctl또는로더인터페이스. 다음 매개변수는 다음을 사용하여 설정할 수 있습니다.sysctl:
# sysctl kern.ipc.shmall=32768 # sysctl kern.ipc.shmmax=134217728
재부팅 후에도 이 설정이 유지되도록 하려면 수정하세요./etc/sysctl.conf.
이 세마포어 관련 설정은 읽기 전용입니다.sysctl우려되지만 설정할 수 있습니다./boot/loader.conf:
kern.ipc.semmni=256 kern.ipc.semmns=512 kern.ipc.semmnu=256
이 값을 수정한 후 새 항목을 재부팅해야 합니다. 설정이 적용됩니다. (참고: FreeBSD는 사용하지 않습니다.SEMMAP. 이전 버전에서는 다음을 허용하지만 무시합니다. 설정 중kern.ipc.semmap; 최신 버전에서는 이를 완전히 거부합니다.)
또한 공유를 잠그도록 커널을 구성할 수도 있습니다 메모리를 RAM에 저장하고 스왑을 위해 페이지 아웃되는 것을 방지합니다. 이 다음을 사용하여 수행할 수 있습니다.sysctl설정kern.ipc.shm_use_phys.
활성화하여 FreeBSD 감옥에서 실행하는 경우sysctl'ssecurity.jail.sysvipc_allowed, 우체국장s는 다른 감옥에서 실행되어야 합니다. 다른 운영 체제 사용자가 실행할 수 있습니다. 이렇게 하면 보안이 향상됩니다. 루트가 아닌 사용자가 공유 작업을 방해하는 것을 방지하기 때문입니다. 다른 감옥에 있는 메모리나 세마포어를 사용하면 토토 꽁 머니 IPC 정리 코드가 제대로 작동합니다. (FreeBSD 6.0에서는 나중에 IPC 정리 코드가 프로세스를 제대로 감지하지 못합니다. 다른 감옥에서는 같은 곳에서 우체국장을 운영하는 것을 막습니다. 다른 감옥으로 이동합니다.)
FreeBSD4.0 이전 버전이 작동합니다. 좋아요오픈BSD(아래 참조).
에NetBSD5.0 이상, IPC 매개변수는 다음을 사용하여 조정할 수 있습니다.sysctl, 예를 들면:
$ sysctl -w kern.ipc.shmmax=16777216
이 설정을 재부팅 후에도 유지하려면 수정하세요./etc/sysctl.conf.
또한 공유를 잠그도록 커널을 구성할 수도 있습니다 메모리를 RAM에 저장하고 스왑을 위해 페이지 아웃되는 것을 방지합니다. 이 다음을 사용하여 수행할 수 있습니다.sysctl설정kern.ipc.shm_use_phys.
NetBSD5.0 이전 버전이 작동합니다. 좋아요오픈BSD(아래 참조), 제외 해당 매개변수는 키워드로 설정되어야 합니다.옵션아님옵션.
옵션SYSVSHM그리고SYSVSEM커널이 활성화될 때 활성화되어야 합니다. 컴파일되었습니다. (기본값입니다.) 공유 메모리의 최대 크기 옵션에 따라 결정됩니다SHMMAXPGS(에서 페이지). 다음은 다양한 설정 방법의 예를 보여줍니다. 매개변수:
옵션 SYSVSHM 옵션 SHMMAXPGS=4096 옵션 SHMSEG=256 옵션 SYSVSEM 옵션 SEMMNI=256 옵션 SEMMNS=512 옵션 SEMMNU=256
일반 설치에는 기본 설정으로 충분합니다. 켜짐HP-UX10, 공장 기본값 에 대한SEMMNS은 128입니다. 이는 너무 낮을 수 있습니다. 대규모 데이터베이스 사이트의 경우.
IPC매개변수는 다음에서 설정할 수 있습니다.시스템 관리 관리자 (샘) 아래토토 꽁 머니 구성-구성 가능한 매개변수. 선택하세요새 토토 꽁 머니 생성완료되면.
기본 최대 세그먼트 크기는 32MB이며 기본값은 최대 총 크기는 2097152페이지입니다. 페이지는 거의 항상 4096입니다. 바이트는 비정상적인 토토 꽁 머니 구성을 제외하고"거대한 페이지"(사용getconf PAGE_SIZE확인하기 위해).
공유 메모리 크기 설정은 다음을 통해 변경할 수 있습니다.sysctl인터페이스. 예를 들어 16개를 허용하려면 GB:
$ sysctl -w kernel.shmmax=17179869184 $ sysctl -w kernel.shmall=4194304
추가로 이러한 설정은 재부팅 후에도 보존될 수 있습니다. 파일/etc/sysctl.conf. 그렇게 하는 것은 적극 권장합니다.
고대 배포판에는 다음이 없을 수 있습니다.sysctl프로그램이지만 동등한 변경이 이루어질 수 있습니다. 를 조작하여/proc파일 시스템:
$ 에코 17179869184 /proc/sys/kernel/shmmax $ 에코 4194304 /proc/sys/kernel/shmall
나머지 기본값은 상당히 넉넉한 크기이며 일반적으로 변경이 필요하지 않습니다.
OS X에서 공유 메모리를 구성하는 데 권장되는 방법은 다음과 같습니다. 라는 파일을 생성하려면/etc/sysctl.conf, 다음과 같은 변수 할당을 포함합니다.
kern.sysv.shmmax=4194304 kern.sysv.shmmin=1 kern.sysv.shmmni=32 kern.sysv.shmseg=8 kern.sysv.shmall=1024
일부 OS X 버전에서는 참고하세요.다섯 명 모두공유 메모리 매개변수 에서 설정해야 합니다./etc/sysctl.conf, 그렇지 않으면 값은 무시됩니다.
최신 OS X 릴리스에서는 설정 시도를 무시합니다.SHMMAX정확하지 않은 값으로 4096의 배수입니다.
SHMALL은(는) 4kB 페이지로 측정됩니다. 이 플랫폼.
이전 OS X 버전에서는 변경사항을 적용하려면 재부팅해야 합니다. 공유 메모리 매개변수가 적용됩니다. 10.5부터는 제외하고 모두 변경 가능SHMMNI에 날다, 사용하다sysctl. 하지만 아직은 다음을 통해 원하는 값을 설정하는 것이 가장 좋습니다./etc/sysctl.conf, 값이 유지되도록 재부팅을 통해.
파일/etc/sysctl.conf만 OS X 10.3.9 이상에서 적용됩니다. 이전 버전을 실행 중인 경우 10.3.x 릴리스인 경우 파일을 편집해야 합니다./etc/rc다음 값을 변경하세요. 명령:
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
참고/etc/rc보통은 OS X 시스템 업데이트로 덮어쓰기되므로 업데이트할 때마다 이러한 편집을 다시 실행하세요.
OS X 10.2 및 이전 버전에서는 대신 다음 명령을 편집하십시오. 파일/시스템/라이브러리/StartupItems/SystemTuning/SystemTuning.
기본 구성에서는 공유 메모리가 512kB에 불과합니다. 세그먼트가 허용됩니다. 설정을 높이려면 먼저 디렉토리/etc/conf/cf.d. 표시하려면 현재 가치SHMMAX, 실행:
./configure -y SHMMAX
새 값을 설정하려면SHMMAX, 실행:
./SHMMAX 구성=값
어디에서값새로운 값은 사용하고 싶습니다(바이트 단위). 설정 후SHMMAX, 토토 꽁 머니을 다시 빌드합니다:
./link_unix
그리고 재부팅하세요.
관련 설정은 다음에서 변경할 수 있습니다./etc/시스템, 예:
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이전 버전의 공유 메모리에 대한 정보 솔라리스.
Solaris 10 이상 및 OpenSolaris에서는 기본 공유 메모리와 세마포어 설정은 대부분의 경우에 충분합니다.토토 꽁 머니응용프로그램. 이제 솔라리스가 기본값입니다 에SHMMAX시스템의 1/4램. 이를 추가로 조정하려면 설정, 관련된 프로젝트 설정을 사용하십시오.포스트그레스사용자. 예를 들어 다음과 같이 실행합니다.루트:
projadd -c "토토 꽁 머니 DB 사용자" -K "project.max-shm-memory=(권한,8GB,거부)" -U postgres -G postgres user.postgres
이 명령은 다음을 추가합니다.user.postgres프로젝트를 수행하고 다음에 대한 공유 메모리 최대값을 설정합니다.포스트그레스사용자를 8GB로 저장하고 다음부터 적용됩니다. 해당 사용자가 로그인하거나 다시 시작할 때포스트그레SQL(다시 로드하지 않음). 위의 가정 그토토 꽁 머니다음에 의해 실행됩니다.포스트그레사용자포스트그레스그룹. 서버 재부팅이 필요하지 않습니다.
데이터베이스 서버에 대한 기타 권장 커널 설정 변경 많은 수의 연결이 있을 것입니다:
project.max-shm-ids=(priv,32768,deny) project.max-sem-ids=(priv,4096,deny) project.max-msg-ids=(priv,4096,deny)
또한 실행 중인 경우토토 꽁 머니영역 내에서 다음이 필요할 수 있습니다. 영역 리소스 사용 제한도 높입니다. "제2장: 프로젝트 및 작업''을 참조하세요.시스템 관리자 가이드자세한 내용은프로젝트그리고prctl.
켜짐유닉스웨어7, 최대 크기 공유 메모리 세그먼트의 경우 기본 구성에서 512kB입니다. 현재 값을 표시하려면SHMMAX, 실행:
/etc/conf/bin/idtune -g SHMMAX
현재, 기본값, 최소 및 최대값을 표시합니다. 가치. 에 대한 새 값을 설정하려면SHMMAX, 실행:
/etc/conf/bin/idtune SHMMAX값
어디에서값새로운 값은 사용하고 싶습니다(바이트 단위). 설정 후SHMMAX, 토토 꽁 머니을 다시 빌드합니다.
/etc/conf/bin/idbuild -B
그리고 재부팅하세요.
만약시스템사용 중입니다. 주의하세요. IPC 자원(공유 메모리 및 세마포어)이 운영 체제에 의해 조기에 제거되지 않습니다. 이는 특히 소스에서 토토 꽁 머니을 설치할 때 우려되는 사항입니다. 사용자 토토 꽁 머니의 배포 패키지는 영향을 받을 가능성이 적습니다. 으로포스트그레스사용자는 일반적으로 시스템 사용자로 생성되었습니다.
설정IPC 제거inlogind.confIPC 개체가 다음과 같은지 여부를 제어합니다. 사용자가 완전히 로그아웃하면 제거됩니다. 시스템 사용자는 면제됩니다. 이 기본 설정은 재고 있음으로 설정됨시스템, 그러나 일부 운영 체제 배포판에서는 기본적으로 꺼짐으로 설정되어 있습니다.
이 설정이 켜져 있을 때 일반적으로 관찰되는 효과는 토토 꽁 머니 서버에서 사용하는 세마포어 객체는 다음에서 제거됩니다. 분명히 무작위로 서버가 로그와 함께 충돌하게 됩니다. 다음과 같은 메시지
로그: semctl(1234567890, 0, IPC_RMID, ...) 실패: 잘못된 인수
다양한 유형의 IPC 객체(공유 메모리 대 세마포어, 시스템 V와 POSIX)는 다음과 같이 약간 다르게 처리됩니다.시스템, 그래서 누군가는 그것을 관찰할 수 있습니다 일부 IPC 리소스는 다른 리소스와 동일한 방식으로 제거되지 않습니다. 하지만 이러한 미묘한 차이에 의존하는 것은 바람직하지 않습니다.
A "사용자 로그아웃"다음과 같이 일어날 수 있습니다 유지 관리 작업의 일부로 또는 관리자가 로그인할 때 수동으로 수행 으로포스트그레스사용자 또는 이와 유사한 것, 그래서 일반적으로 예방하기가 어렵습니다.
a는 무엇입니까"시스템 사용자"결정됨 에서시스템화컴파일 시간SYS_UID_MAX설정/etc/login.defs.
패키징 및 배포 스크립트는 다음을 생성할 때 주의해야 합니다.포스트그레스다음을 사용하여 시스템 사용자로 사용자 지정useradd -r, adduser --시스템또는 이에 상응하는 것.
또는 사용자 계정이 잘못 생성되었거나 변경할 수 없으므로 설정하는 것이 좋습니다.
IPC 제거=아니요
in/etc/systemd/logind.conf또는 다른 것 적절한 구성 파일입니다.
| 주의 |
|
이 두 가지 중 적어도 하나는 보장되어야 합니다. 토토 꽁 머니 서버는 매우 불안정합니다. |
Unix 계열 운영 체제는 다양한 종류의 리소스를 강제합니다.
귀하의 운영을 방해할 수 있는 제한토토 꽁 머니서버. 특히 중요한 것
사용자당 프로세스 수, 열려 있는 프로세스 수에 대한 제한이 있습니다.
프로세스당 파일 수, 각 프로세스에 사용 가능한 메모리 양
프로세스. 이들 각각에는"단단한"그리고
에"소프트"한계. 소프트 리미트는
실제로는 중요하지만 사용자가 하드까지 변경할 수 있습니다.
한계. 하드 제한은 루트 사용자만 변경할 수 있습니다. 는
시스템 호출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서버는 하나를 사용합니다 연결당 프로세스를 처리하므로 최소한 많은 수를 제공해야 합니다. 필요한 연결 외에도 허용된 연결로 처리합니다. 나머지 시스템. 이는 일반적으로 문제가 되지 않지만 다음과 같은 경우에는 하나의 시스템에서 여러 서버를 실행하면 상황이 복잡해질 수 있습니다.
열린 파일에 대한 공장 기본 제한은 종종 다음과 같이 설정됩니다."사회 친화적"허용하는 값 부적절한 도구를 사용하지 않고도 많은 사용자가 한 컴퓨터에 공존할 수 있습니다. 시스템 리소스의 일부입니다. 하나의 서버에서 여러 대의 서버를 운영하는 경우 머신에서는 이것이 아마도 여러분이 원하는 것일 수도 있지만 전용 서버에서는 이 한도를 높이고 싶을 수도 있습니다.
동전의 반대편에는 일부 시스템이 개인을 허용합니다. 많은 수의 파일을 여는 프로세스; 몇 개 이상이라면 프로세스가 그렇게 하면 시스템 전체 제한이 쉽게 초과될 수 있습니다. 이런 일이 발생하고 변경을 원하지 않는 경우 시스템 전체 제한을 설정할 수 있습니다.토토 꽁 머니의max_files_per_process열린 파일의 소비를 제한하는 구성 매개변수입니다.
Linux 2.4 이상에서 기본 가상 메모리 동작은 다음과 같습니다. 최적이 아님포스트그레SQL. 토토 꽁 머니이 메모리 오버커밋을 구현하는 방식으로 인해 토토 꽁 머니이 종료될 수 있습니다.토토 꽁 머니포스트마스터(마스터 서버 프로세스) 메모리가 필요한 경우토토 꽁 머니또는 다른 프로세스로 인해 시스템이 가상 메모리가 부족해졌습니다.
이런 일이 발생하면 다음과 같은 커널 메시지가 표시됩니다. (시스템 설명서와 구성을 참조하세요. 그러한 메시지를 찾으려면):
메모리 부족: 프로세스 12345(postgres)가 종료되었습니다.
이것은 다음을 나타냅니다.포스트그레메모리 부족으로 인해 프로세스가 종료되었습니다. 비록 기존 데이터베이스 연결은 계속해서 정상적으로 작동합니다. 새로운 연결은 허용되지 않습니다. 회복하려면,토토 꽁 머니다시 시작해야 합니다.
이 문제를 피하는 한 가지 방법은 다음을 실행하는 것입니다.토토 꽁 머니당신이 확신할 수 있는 기계에서 다른 프로세스에서는 시스템의 메모리가 부족해지지 않습니다. 만약에 메모리가 부족하여 운영 체제의 스왑 공간이 늘어납니다. 메모리 부족(OOM) 킬러 때문에 문제를 피하는 데 도움이 될 수 있습니다. 물리적 메모리와 스왑 공간이 있는 경우에만 호출됩니다. 지쳤어.
만약토토 꽁 머니그 자체는 시스템 메모리 부족의 원인을 방지할 수 있습니다. 구성을 변경하면 문제가 발생합니다. 어떤 경우에는 도움이 될 수 있습니다 특히 메모리 관련 구성 매개변수를 낮추기 위해shared_buffers그리고work_mem. 다른 경우에는 문제가 발생할 수 있습니다. 데이터베이스 서버에 너무 많은 연결을 허용하여 발생 그 자체. 많은 경우에는 줄이는 것이 더 나을 수도 있습니다.max_connections대신 외부 연결 풀링 소프트웨어.
Linux 2.6 이상에서는 커널의 그렇지 않도록 행동"오버커밋"메모리. 이 설정은 그렇지 않지만 방지하다OOM 킬러모두 호출되면 낮아질 것입니다 가능성이 크게 높아져 더욱 강력해질 것입니다. 시스템 동작. 이는 엄격한 오버커밋 모드를 선택하여 수행됩니다. 를 통해sysctl:
sysctl -w vm.overcommit_memory=2
또는 동등한 항목 배치/etc/sysctl.conf. 또한 관련 설정vm.overcommit_ratio. 에 대한 자세한 내용은 커널 문서 파일을 참조하세요.문서/vm/overcommit-accounting.
변경 여부에 관계없이 사용할 수 있는 또 다른 접근 방식vm.overcommit_memory, 다음을 설정하는 것입니다. 프로세스별oom_score_adj값 포스트마스터 프로세스-1000그러므로 OOM 킬러의 표적이 되지 않도록 보장합니다. 는 이를 수행하는 가장 간단한 방법은 실행하는 것입니다.
에코 -1000 /proc/self/oom_score_adj
포스트마스터의 시작 스크립트에서 우체국장. 이 작업은 루트로 수행되어야 합니다. 그렇지 않으면 효과가 없어요; 따라서 루트 소유의 시작 스크립트가 가장 쉬운 곳입니다. 그것을하기 위해. 이렇게 하면 빌드를 원할 수도 있습니다.토토 꽁 머니함께-DLINUX_OOM_SCORE_ADJ=0추가됨CPPFLAGS. 이로 인해 포스트마스터 하위 프로세스가 발생합니다. 정상으로 실행하려면oom_score_adj값 OOM 킬러가 필요할 때 여전히 대상을 타겟팅할 수 있도록 0입니다.
이전 Linux 커널은 제공하지 않음/proc/self/oom_score_adj, 그러나 이전 항목이 있을 수 있음 동일한 기능의 버전입니다./proc/self/oom_adj. 이는 다음을 제외하고는 동일하게 작동합니다. 비활성화 값은-17아님-1000. 해당 빌드 플래그는포스트그레SQL이다-DLINUX_OOM_ADJ=0.
참고:일부 공급업체의 Linux 2.4 커널은 다음으로 보고됩니다. 2.6 오버커밋의 초기 버전이 있습니다.sysctl매개변수. 그러나 설정vm.overcommit_memory42821_43001
vm_enough_memory에 파일mm/mmap.c)이 무엇인지 확인하기 위해 2.4 설치에서 이것을 시도하기 전에 커널에서 지원됩니다. 의 존재과도한 커밋-회계문서 파일은 다음과 같습니다아님다음 증거로 간주됩니다. 기능이 있습니다. 의심스러운 경우 커널 전문가에게 문의하거나 담당 커널 공급업체입니다.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 데이터베이스 시작 서버 | PostgreSQL : 문서 : 9.3 : 사설 토토 사이트 설정 및 작동 | 종료 중 서버 |