2025 년 9 월 4 일 :토토 캔 18 RC 1 릴리스!
이 문서는 지원되지 않는 버전의 토토 캔을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다사설 토토 PostgreSQL : 문서 : 17 : 19.4. 자원 소비버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

17.4. 자원 토토 캔

17.4.1. 메모리

shared_buffers(정수)

데이터베이스 서버가 사용하는 메모리 양을 설정합니다. 공유 메모리 버퍼. 기본값은 일반적으로 32입니다 메가 바이트 (32MB) 커널 설정이 지원하지 않으면 덜 결정initdb). 이 설정은 있어야합니다 최소 128 킬로 바이트 및 최소 16 킬로바이트 시간max_connections. (의 비 디폴트 값blcksz최소값 변경) 그러나 설정은 크게 설정됩니다 최소값보다 높으면 일반적으로 선을 위해 필요합니다 성능. 수십 개의 메가 바이트가 권장됩니다 생산 설치. 이 매개 변수는 가능합니다 서버 시작에서 설정합니다.

이 매개 변수를 늘리면토토 캔더 많은 요청System V공유 메모리 운영 체제의 기본 구성보다 허용. 보다섹션 16.4.1해당 매개 변수를 조정하는 방법에 대한 정보 필요한.

temp_buffers(정수)

사용 된 임시 버퍼의 최대 수를 설정합니다 각 데이터베이스 세션. 이들은 세션-로컬 버퍼입니다 임시 테이블에 대한 액세스에만 사용됩니다. 기본값은입니다 8 메가 바이트 (8MB). 그만큼 개별 세션 내에서 설정을 변경할 수 있지만 임시 테이블을 처음 사용하기 전까지 만 세션; 이후 가치를 변경하려는 시도는 그럴 것입니다 그 세션에는 영향을 미치지 않습니다.

세션은 필요에 따라 임시 버퍼를 할당합니다 에 의해 주어진 한계까지temp_buffers. 큰 설정 비용 실제로 많은 것을 필요로하지 않는 세션의 가치 임시 버퍼는 버퍼 디스크립터 일뿐입니다 64 바이트, 증분 당temp_buffers. 그러나 버퍼가있는 경우 실제로 추가로 사용 된 8192 바이트가 토토 캔됩니다 그것을 위해 (또는 일반적으로blcksz바이트).

max_prepared_transactions(정수)

그만큼"준비"상태 동시에 (참조거래 준비). 이 매개 변수를 0으로 설정하면 비활성화됩니다 준비된 전환 기능. 기본값은 5입니다 업무. 이 매개 변수는 서버에서만 설정할 수 있습니다 시작.

준비된 트랜잭션을 사용하지 않는 경우 매개 변수는 0으로 설정 될 수 있습니다. 사용중인 경우 그들, 당신은 아마 원할 것입니다max_prepared_transactions최소한 큰max_connections, 준비 단계에서 원치 않는 실패를 피하려면

이 매개 변수를 높이면토토 캔더 많은 요청System V공유 메모리 운영 체제의 기본 구성보다 허용. 보다섹션 16.4.1해당 매개 변수를 조정하는 방법에 대한 정보 필요한.

work_mem(정수)

내부에서 사용할 메모리의 양을 지정합니다. 전환하기 전에 작업 및 해시 테이블을 정렬하십시오 임시 디스크 파일. 값은 기본값입니다 메가 바이트 (1MB). a 복잡한 쿼리, 여러 종류 또는 해시 작업이있을 수 있습니다 동시에 실행; 각각은 AS를 사용할 수 있습니다 이 값이 시작되기 전에 지정되는 많은 메모리 임시 파일에 데이터를 넣습니다. 또한, 여러 달리기 세션은 그러한 작업을 동시에 수행 할 수 있습니다. 그래서 사용 된 총 메모리는 여러 배가 될 수 있습니다.work_mem; 필요합니다 가치를 선택할 때이 사실을 명심하십시오. 종류 작업은에 사용됩니다.주문 에 의해, 별도의및 병합 가입. 해시 테이블은 해시 조인, 해시 기반에서 사용됩니다 집계 및 해시 기반 처리in서브 쿼리.

maintenance_work_mem(정수)

사용할 최대 메모리 양을 지정합니다. 와 같은 유지 보수 작업진공, 생성 색인ALTER 테이블 추가 외국 키. 기본값은 16 메가 바이트 (까지)16MB). 이러한 작업 중 하나만 이후 데이터베이스 세션으로 한 번에 실행할 수 있으며 설치에는 일반적으로 많은 사람들이 실행되지 않습니다 동시에이 값을 크게 설정하는 것이 안전합니다 보다work_mem. 더 큰 설정은 진공 청소기의 성능을 향상시킬 수 있습니다 데이터베이스 덤프 복원.

max_stack_depth(정수)

서버의 최대 안전 깊이를 지정합니다 실행 스택. 이 매개 변수의 이상적인 설정은 다음과 같습니다 커널에 의해 시행되는 실제 스택 크기 한계 ( 설정ulimit -s또는 로컬 동등한), 메가 바이트의 안전 마진이 적습니다. 스택 깊이가이므로 안전 마진이 필요합니다. 서버의 모든 루틴에서 확인되지 않고 표현과 같은 주요 잠재적 인 루틴 평가. 기본 설정은 두 메가 바이트입니다 (2MB)는 보수적입니다 작고 위험 충돌 위험이 없을 것입니다. 그러나 그럴 수도 있습니다 복잡한 기능을 실행하기에는 너무 작습니다. 오직 슈퍼업자는이 설정을 변경할 수 있습니다.

설정max_stack_depth실제 커널 한계보다 높으면 런 어웨이 재귀 기능은 개인에게 충돌 할 수 있습니다 백엔드 프로세스. 플랫폼에서토토 캔커널을 결정할 수 있습니다 제한,이 변수를 안전하지 않은 상태로 설정할 수 없습니다. 값. 그러나 모든 플랫폼이 제공하는 것은 아닙니다 정보를 선택하는 데주의를 기울여야합니다 값.

17.4.2. 여유 공간 지도

이 매개 변수는 공유 크기를 제어합니다여유 공간지도, 위치를 추적합니다 데이터베이스에서 사용되지 않은 공간. 소형 크기의 여유 공간지도는 5 월입니다 데이터베이스가 증가하는 디스크 공간을 소비하게합니다. 시간이 지남에 따라지도에없는 여유 공간은 재사용; 대신에토토 캔운영 체제에서 더 많은 디스크 공간을 요청합니다. 새로운 데이터를 저장해야합니다. 마지막 몇 줄은 a 데이터베이스 전체Vacuum Verbose명령 현재 설정이 적절한 지 확인하는 데 도움이 될 수 있습니다. 에이통지메시지도 인쇄됩니다 현재 설정이 너무 낮은 경우 이러한 작업.

이러한 매개 변수를 늘리면토토 캔더 많은 요청System V운영보다 공유 메모리 시스템의 기본 구성이 허용됩니다. 보다섹션 16.4.1해당 매개 변수를 조정하는 방법에 대한 정보 필요한.

max_fsm_pages(Integer)

무료 디스크 페이지 수를 설정합니다. 공간은 공유 프리 스페이스 맵에서 추적됩니다. 육 각 페이지 슬롯마다 공유 메모리의 바이트가 소비됩니다. 이 설정은 최소 16 *이어야합니다.max_fsm_relations. 기본값이 선택되었습니다 에 의해initdb사용 가능한 메모리의 양과 20k에서 200k 페이지. 이 매개 변수는 서버에서만 설정할 수 있습니다 시작.

max_fsm_relations(정수)

최대 관계 수를 설정합니다 (표 및 여유 공간이 추적 될 인덱스) 공유 무료 공간지도. 약 70 바이트의 공유 각 슬롯마다 메모리가 소비됩니다. 기본값은 하나입니다 수천 명의 관계. 이 매개 변수는에서만 설정할 수 있습니다 서버 시작.

17.4.3. 커널 리소스 용법

max_files_per_process(Integer)

동시에 열린 파일의 최대 수를 설정합니다 각 서버 하위 프로세스에 허용됩니다. 기본값은 하나입니다 천 파일. 커널이 금고를 시행하는 경우 프로세스 당 한도, 이에 대해 걱정할 필요가 없습니다 환경. 그러나 일부 플랫폼에서 (특히 대부분의 BSD 시스템), 커널은 개별 프로세스를 허용합니다 시스템이 실제로 지원할 수있는 것보다 더 많은 파일을 엽니 다 많은 수의 프로세스가 모두 그것을 열려고 할 때 많은 파일. 자신을보고 있다면"너무 많은 파일"실패, 시도하십시오 이 설정을 줄입니다. 이 매개 변수는에서만 설정할 수 있습니다 서버 시작.

shared_preload_libraries(String)

이 변수는 하나 이상의 공유 라이브러리를 지정합니다 서버 시작시 전부해야합니다. 더 이상 하나의 라이브러리를로드하고 이름을 분리해야합니다. 쉼표. 예를 들어,'$ libdir/mylib'원인mylib.so(또는 일부 플랫폼에서mylib.sl) 설치의 표준 라이브러리 디렉토리. 이 매개 변수 서버 시작시에만 설정할 수 있습니다.

토토 캔절차 언어 라이브러리는 이런 식으로 사전로드 될 수 있으며 일반적으로 구문을 사용하여'$ libdir/plxxx'여기서xxxisPGSQL, Perl, TCL또는Python.

공유 라이브러리를 사전로드하여 라이브러리 시작 라이브러리가 처음 사용될 때 시간을 피합니다. 하지만, 각 새로운 서버 프로세스를 시작하는 시간이 증가 할 수 있습니다. 그 과정이 라이브러리를 사용하지 않더라도 약간. 그래서 이 매개 변수는 라이브러리에만 권장됩니다 대부분의 세션에서 사용됩니다.

참고 :Windows 호스트에서 사전로드 a 서버 시작의 라이브러리는 시간이 줄어들지 않습니다 각 새로운 서버 프로세스를 시작하는 데 필요합니다. 각 서버 프로세스는 모든 예압 라이브러리를 다시로드합니다. 하지만,shared_preload_libraries아직도 있습니다 일부 공유 라이브러리이기 때문에 Windows 호스트에서 유용합니다 취하는 특정 작업을 수행해야 할 수도 있습니다 Postmaster Start (예 : 공유 라이브러리는 경량 잠금 장치를 예약해야 할 수도 있습니다 공유 메모리와 당신은 그 후에 그렇게 할 수 없습니다 우체국 장이 시작되었습니다).

지정된 라이브러리를 찾을 수없는 경우 서버는 시작에 실패.

모든 토토 캔 지원 라이브러리는가 있습니다."매직 블록"보장하기 위해 확인됩니다 호환성. 이러한 이유로, 비 포스트 그레 스크l 라이브러리 이런 식으로로드 할 수 없습니다.

17.4.4. 비용 기반 진공 지연

실행 중진공and분석명령, 시스템이 유지됩니다 예상 비용을 추적하는 내부 카운터 수행되는 다양한 I/O 작업. 언제 누적 된 비용은 한도에 도달합니다 (VACUUM_COST_LIMIT), 작업은 잠시 잠을 자게됩니다 (VACUUM_COST_DELAY). 그런 다음 재설정됩니다 카운터 및 계속 실행.

이 기능의 의도는 관리자가 동시 데이터베이스에 대한 이러한 명령의 I/O 영향 감소 활동. 그다지 많지 않은 상황이 많이 있습니다. 유지 보수 명령이진공and분석빨리 마무리하십시오. 그러나 일반적으로 매우 중요합니다 이 명령은 능력을 크게 방해하지 않습니다 다른 데이터베이스 작업을 수행하는 시스템의 비용 기반 진공 지연은 관리자가 달성 할 수있는 방법을 제공합니다 이것.

이 기능은 기본적으로 비활성화됩니다. 활성화하려면를 설정하십시오.VACUUM_COST_DELAY변수 a 0이 아닌 가치.

VACUUM_COST_DELAY(Integer)

시간의 길이, 밀리 초의 프로세스 비용 제한이 초과되면 잠을 자게됩니다. 그만큼 기본값은 0이므로 비용 기반을 비활성화합니다 진공 지연 기능. 긍정적 인 가치는 비용 기반을 가능하게합니다 진공 청소기. 많은 시스템에서 효과적입니다 수면 지연의 해상도는 10 밀리 초입니다. 환경VACUUM_COST_DELAY값으로 그것은 10의 배수가 아닌 것과 같은 결과를 가질 수 있습니다. 다음으로 더 높은 배수로 설정하십시오.

VACUUM_COST_PAGE_HIT(Integer)

공유 버퍼 캐시. 잠금 비용을 나타냅니다 버퍼 풀, 공유 해시 테이블을 조회하고 페이지의 내용. 기본값은 하나입니다.

VACUUM_COST_PAGE_MISS(Integer)

디스크에서 읽으십시오. 이것은 잠금 노력을 나타냅니다 버퍼 풀, 공유 해시 테이블을 조회하고 읽으십시오 디스크에서 원하는 블록을 사용하고 컨텐츠를 스캔합니다. 그만큼 기본값은 10입니다.

VACUUM_COST_PAGE_DIRTY(정수)

진공 청소기가 수정 될 때 요금이 청구 된 예상 비용 a 이전에 깨끗한 블록. 추가를 나타냅니다 더러운 블록을 다시 디스크로 플러시해야합니다. 기본값은 20입니다.

VACUUM_COST_LIMIT(정수)

진공 청소기를 유발할 축적 된 비용 잠을자는 과정. 기본값은 200입니다.

참고 :보유하는 특정 작업이 있습니다 치명적인 자물쇠가 있으므로 빨리 완료해야합니다 가능한. 비용 기반 진공 지연은이 중에 발생하지 않습니다 운영. 따라서 비용이 가능합니다 지정된 한계보다 훨씬 높습니다. 피하기 위해 그러한 경우에 쓸모 없게 긴 지연, 실제 지연은 로 계산VACUUM_COST_DELAY * Accumed_balance / VACUUM_COST_LIMIT최대VACUUM_COST_DELAY * 4.

17.4.5. 배경 작가

시작토토 캔8.0,이라는 별도의 서버 프로세스가 있습니다.배경 작가문제 발행"더러운"공유 버퍼. 의도는 서버가 사용자를 처리한다는 것입니다 쿼리는 쓰기를 거의 기다릴 필요가 없거나 절대 기다릴 필요가 없습니다. 배경 작가가 할 것이기 때문에 발생합니다. 이것 계약은 또한 관련 성과 페널티를 줄입니다 체크 포인트와 함께. 배경 작가는 지속적으로 할 것입니다 더러운 페이지를 디스크로 옮기면 몇 페이지 만 체크 포인트 시간이 도착하면 대신 강요해야합니다. 더러운 버퍼의 폭풍은 이전에 각각이 발생했다고 썼다. 검문소. 그러나 I/O의 전체 순간 증가가 있습니다 반복적으로 거만한 페이지가 이전에 가질 수 있기 때문에로드하십시오 체크 포인트 간격 당 배경에 따라 한 번만 작성되었습니다 작가는 같은 간격으로 여러 번 쓸 수 있습니다. ~ 안에 대부분의 상황은 연속 저하가 주기적보다 바람직합니다. 스파이크이지만이 하위 섹션에서 논의 된 매개 변수는 지역의 필요에 대한 행동을 조정하는 데 사용됩니다.

bgwriter_delay(Integer)

활동 라운드 간의 지연을 지정합니다 배경 작가. 각 라운드에서 작가 문제는 쓴다 일부 더러운 버퍼의 경우 ( 다음 매개 변수). 그런 다음bgwriter_delay밀리 초, 반복. 기본값은 200 밀리 초입니다 (200ms). 많은 시스템에서 수면 지연의 효과적인 해상도는 10 밀리 초입니다. 환경bgwriter_delaya 10의 배수가 아닌 값은 동일 할 수 있습니다. 다음으로 설정하는 결과 10 of 10의 다음으로 설정됩니다. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버에서 명령 줄.

bgwriter_lru_percent(플로팅 포인트)

서버 프로세스의 확률을 줄이기 위해 배경 작가 인 자신의 글을 발행해야합니다 재활용 될 가능성이있는 버퍼를 작성하려고합니다. 곧. 각 라운드마다 최대를 검사합니다.bgwriter_lru_percent버퍼의 재활용되는 데 가장 가까우며 더러운. 기본값은 1.0 (총 수의 1% 공유 버퍼). 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄.

bgwriter_lru_maxpages(정수)

각 라운드 마다이 많은 버퍼가 곧 다시 사이클링 될 스캔 결과로 작성되었습니다 버퍼. 기본값은 5 개의 버퍼입니다. 이것 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버에서 명령 줄.

bgwriter_all_percent(플로팅 포인트)

필요한 작업의 양을 줄이기 위해 체크 포인트 시간, 배경 작가도 a 전체 버퍼 풀을 통한 원형 스캔, 쓰기 더러워진 버퍼. 각 라운드에서 최대 검사bgwriter_all_percent34447_34605bgwriter_delay설정, 이것 전체 공유 버퍼 풀을 스캔 할 수 있습니다. 분당 약 한 번. 이 매개 변수는 설정할 수 있습니다 그만큼토토 캔.conf파일 또는 켜기 서버 명령 줄.

bgwriter_all_maxpages(정수)

각 라운드 마다이 많은 버퍼가 전체 버퍼의 스캔 결과로 작성 수영장. (이 제한에 도달하면 스캔이 중지되고 다음 라운드에서 다음 버퍼에서 재개합니다.) 기본값은 5 개의 버퍼입니다. 이 매개 변수는 가능합니다 에 설정토토 캔.conf파일 또는 서버 명령 줄에서.

작은 값bgwriter_all_percentandbgwriter_all_maxpages추가 I/O 부하를 줄입니다 배경 작가에 의해 발생하지만 더 많은 작업을 수행해야합니다. 체크 포인트 시간에. 체크 포인트에서로드 스파이크를 줄이려면 이 두 값을 늘리십시오. 마찬가지로, 작은 값의bgwriter_lru_percentandbgwriter_lru_maxpages추가 I/O 부하를 줄입니다 배경 작가에 의해 발생하지만 더 가능성이 높습니다. 서버 프로세스는 스스로 쓰기를 발행해야합니다. 대화식 쿼리 지연. 배경 쓰기를 비활성화합니다 전적으로, 둘 다 설정MaxPages값 및/또는 둘 다%값으로 영.