19.4. 자원 소비#

19.4.1. 메모리#

shared_buffers (정수) #

데이터베이스 서버가 공유 메모리 버퍼에 사설 토토하는 메모리 양을 설정합니다. 기본값은 일반적으로 128 메가 바이트입니다 (128MB)이지만 커널 설정이 지원되지 않으면 더 적을 수 있습니다 (initdb). 이 설정은 128 킬로 바이트 이상이어야합니다.blcksz바이트, 일반적으로 8kb. (의 비 디폴트 값blcksz최소값 변경.)이 매개 변수는 서버 시작시에만 설정할 수 있습니다.

1GB 이상의 RAM이있는 전용 데이터베이스 서버가있는 경우 합리적인 시작 값shared_buffers는 시스템의 메모리의 25%입니다. 에 대한 더 큰 설정이있는 워크로드가 있습니다.shared_buffers효과적이지만PostgreSQL운영 체제 캐시에 의존하므로 RAM의 40% 이상을 할당 할 것 같지 않습니다.shared_buffers소량보다 더 잘 작동합니다. 더 큰 설정shared_buffers일반적으로 해당 증가가 필요합니다max_wal_size, 더 오랜 시간 동안 많은 양의 신규 또는 변경된 데이터를 작성하는 프로세스를 확산시키기 위해

1GB 미만의 RAM이있는 시스템에서는 운영 체제를위한 적절한 공간을 떠나기 위해 더 적은 비율의 RAM이 적절합니다.

migne_pages (enum) #

주요 공유 메모리 영역에 대한 거대한 페이지가 요청되는지 여부를 제어합니다. 유효한 값은try(기본값),onOFF. 와 함께migne_pages설정try, 서버는 거대한 페이지를 요청하려고하지만 실패하면 기본값으로 돌아갑니다. 와 함께on, 거대한 페이지를 요청하지 않으면 서버가 시작되지 않습니다. 와 함께OFF, 거대한 페이지는 요청되지 않습니다. 거대한 페이지의 실제 상태는 서버 변수로 표시migne_pages_status.

현재이 설정은 Linux 및 Windows에서만 지원됩니다. 설정이 설정된 다른 시스템에서 설정이 무시됩니다try. Linux에서는에만 지원됩니다.shared_memory_type로 설정되었습니다MMAP(기본값).

거대한 페이지를 사설 토토하면 더 작은 페이지 테이블과 메모리 관리에 소요되는 CPU 시간이 줄어들어 성능이 향상됩니다. Linux에서 거대한 페이지 사설 토토에 대한 자세한 내용은 참조하십시오.섹션 18.4.5.

거대한 페이지는 창에서 큰 페이지로 알려져 있습니다. 사설 토토하려면 사설 토토자를 올바르게 할당해야합니다메모리의 잠금 페이지실행되는 Windows 사설 토토자 계정PostgreSQL. Windows 그룹 정책 도구 (gpedit.msc)를 사설 토토하여 사설 토토자를 올바르게 할당 할 수 있습니다메모리의 잠금 페이지. Windows 서비스가 아닌 독립형 프로세스로 명령 프롬프트에서 데이터베이스 서버를 시작하려면 명령 프롬프트가 관리자 또는 사설 토토자 액세스 컨트롤 (UAC)로 실행해야합니다.메모리의 잠금 페이지시작했을 때.

이 설정은 기본 공유 메모리 영역에만 영향을 미칩니다. Linux, FreeBSD 및 Illumos와 같은 운영 체제도 거대한 페이지 (를 사설 토토할 수도 있습니다.Super페이지 또는pages) 자동으로 정상 메모리 할당을 위해서는의 명시적인 요청없이PostgreSQL. Linux에서는이라고합니다.투명한 거대한 페이지(THP). 이 기능은로 성능 저하를 일으키는 것으로 알려져 있습니다.PostgreSQL일부 Linux 버전의 일부 사설 토토자의 경우 현재 사설 토토이 권장되지 않습니다 (명백한 사설 토토과 달리migne_pages).

migne_page_size (정수) #

활성화 될 때 거대한 페이지의 크기를 제어합니다.migne_pages. 기본값은 0입니다 (0). 로 설정된 경우0, 시스템의 기본 거대한 페이지 크기가 사설 토토됩니다. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

현대 64 비트 서버 아키텍처에서 일반적으로 사설 토토 가능한 페이지 크기는 다음과 같습니다.2MBand1GB(인텔 및 AMD),16MBand16GB(IBM Power) 및64KB, 2MB, 32MBand1GB(팔). 사설 토토 및 지원에 대한 자세한 내용은 참조하십시오.섹션 18.4.5.

비 디폴트 설정은 현재 Linux에서만 지원됩니다.

temp_buffers (정수) #

각 데이터베이스 세션 내에서 임시 버퍼에 사설 토토되는 최대 메모리 양을 설정합니다. 이들은 임시 테이블에 대한 액세스에만 사설 토토되는 세션-로컬 버퍼입니다.blcksz바이트, 일반적으로 8kb. 기본값은 8 메가 바이트 (입니다.8MB). (만약에blcksz8KB가 아니며 기본값은 비례 적으로 비례합니다.)이 설정은 개별 세션 내에서 변경 될 수 있지만 세션 내에서 임시 테이블을 처음 사설 토토하기 전에만 변경 될 수 있습니다. 값을 변경하려는 후속 시도는 해당 세션에 영향을 미치지 않습니다.

세션은 필요에 따라 임시 버퍼를 할당합니다.temp_buffers. 실제로 많은 임시 버퍼가 필요하지 않은 세션에서 큰 값을 설정하는 비용은 단지 버퍼 디스크립터 일뿐입니다.temp_buffers. 그러나 버퍼가 실제로 사설 토토되는 경우 추가 8192 바이트가 소비됩니다 (또는 일반적으로blcksz바이트).

max_prepared_transactions (정수) #

에있을 수있는 최대 트랜잭션 수를 설정합니다준비동시에 상태 (참조거래 준비). 이 매개 변수를 0으로 설정하면 (기본값 인) 준비된 전환 기능이 비활성화됩니다.

준비된 트랜잭션을 사설 토토하지 않을 계획이라면,이 매개 변수는 우발적으로 준비된 트랜잭션 생성을 방지하기 위해 0으로 설정해야합니다. 준비된 거래를 사설 토토하는 경우 원할 것입니다max_prepared_transactions적어도max_connections

대기 서버를 실행할 때이 매개 변수를 기본 서버와 동일하거나 더 높은 값으로 설정해야합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.

work_mem (정수) #

임시 디스크 파일에 쓰기 전에 쿼리 작업 (예 : 정렬 또는 해시 테이블)에서 사설 토토할 기본 최대 메모리 양을 설정합니다. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다.4MB). 복잡한 쿼리는 동시에 여러 종류 및 해시 작업을 수행 할 수 있으며, 각 작업은 일반적으로 데이터가 임시 파일에 데이터를 작성하기 전에 지정된만큼 많은 메모리를 사설 토토할 수 있습니다.work_mem; 가치를 선택할 때이 사실을 명심해야합니다.주문 by, 별개의및 합병 결합. 해시 테이블은 해시 조인, 해시 기반 집계, 메모 라이즈 노드 및 해시 기반 처리에서 사설 토토됩니다.in서브 쿼리.

해시 기반 작업은 일반적으로 동등한 정렬 기반 작업보다 메모리 가용성에 더 민감합니다. 해시 테이블의 메모리 제한은 곱하여 계산됩니다work_membyhash_mem_multiplier. 이로 인해 해시 기반 작업이 일반적인 메모리를 사설 토토할 수 있습니다.work_mem기본 금액.

hash_mem_multiplier (플로팅 포인트) #

해시 기반 작업이 사설 토토할 수있는 최대 메모리 양을 계산하는 데 사설 토토됩니다. 최종 한계는 곱하여 결정됩니다work_membyhash_mem_multiplier. 기본값은 2.0이므로 해시 기반 작업이 평소의 두 배를 사설 토토합니다work_mem기본 금액.

증가 고려hash_mem_multiplier쿼리 작업에 의한 유출이 정기적으로 발생하는 환경에서, 특히 단순히 증가 할 때work_mem메모리 압력을 초래합니다 (메모리 압력은 일반적으로 메모리 오류에서 간헐적 인 형태를 취합니다). 2.0의 기본 설정은 종종 혼합 워크로드에 효과적입니다.work_mem이미 40MB 이상으로 증가했습니다.

maintenance_work_mem (정수) #

유지 보수 작업에서 사설 토토할 최대 메모리 양을 지정합니다.진공, 색인 생성Alter Table Add Foreign Key. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다.64MB). 이러한 작업 중 하나만 데이터베이스 세션으로 한 번에 한 번에 실행할 수 있으며, 설치에는 일반적으로 많은 사람들이 동시에 실행되지 않으므로이 값을보다 훨씬 크게 설정하는 것이 안전합니다.work_mem. 더 큰 설정은 진공 청소기 및 데이터베이스 덤프 복원을위한 성능을 향상시킬 수 있습니다.

autovacuum이 실행될 때 최대autovacuum_max_workers이 메모리가 할당 될 수 있으므로 기본값을 너무 높게 설정하지 않도록주의하십시오. 별도로 설정하여 이것을 제어하는 ​​것이 유용 할 수 있습니다autovacuum_work_mem.

autovacuum_work_mem (정수) #

각 Autovacuum 작업자 프로세스에서 사설 토토할 최대 메모리 양을 지정합니다. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다.maintenance_work_mem대신 사설 토토해야합니다. 설정은의 동작에 영향을 미치지 않습니다.진공다른 상황에서 실행될 때. 이 매개 변수는에서만 설정할 수 있습니다.on파일 또는 서버 명령 줄에.

VACUUM_BUFFER_USAGE_LIMIT (정수) #

크기를 지정합니다버퍼 액세스 전략사설 토토진공and분석명령. 설정0운영이 모든 숫자를 사설 토토할 수있게합니다shared_buffers. 그렇지 않으면 유효한 크기는입니다.128 KBto16 GB. 지정된 크기가 크기의 1/8을 초과하는 경우shared_buffers, 크기는 해당 값에 조용히 캡핑됩니다. 기본값은입니다.2MB. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다.진공and분석통과 할 때buffer_usage_limit옵션. 더 높은 설정은 허용 할 수 있습니다진공and분석더 빨리 실행되지만 설정이 너무 커지면 너무 많은 다른 유용한 페이지가 공유 버퍼에서 퇴거 될 수 있습니다.

logical_decoding_work_mem (정수) #

논리적 디코딩에서 사설 토토할 최대 메모리 양을 지정합니다. 일부 디코딩 된 변경 사항이 로컬 디스크에 기록되기 전에. 이것은 논리 스트리밍 복제 연결에 사설 토토되는 메모리의 양을 제한합니다.64MB). 각 복제 연결은이 크기의 단일 버퍼 만 사설 토토하기 때문에 설치에는 일반적으로 그러한 연결이 동시에 많은 연결이 없습니다 (max_wal_senders),이 값을보다 훨씬 높게 설정하는 것이 안전합니다work_mem, 디스크에 작성된 디코딩 된 변경의 양을 줄입니다.

commit_timestamp_buffers (정수) #

의 내용을 캐시하는 데 사설 토토할 메모리의 양을 지정합니다.pg_commit_ts(참조표 65.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은입니다.0, 요청shared_buffers/512 최대 1024 블록이지만 16 블록 이하입니다. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

multixact_member_buffers (정수) #

의 내용을 캐시하는 데 사설 토토할 공유 메모리의 양을 지정합니다.PG_MULTIXACT/회원(참조표 65.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은입니다.32. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

multixact_offset_buffers (정수) #

의 내용을 캐시하는 데 사설 토토할 공유 메모리의 양을 지정합니다.PG_MULTIXACT/오프셋(참조표 65.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은입니다.16. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

notify_buffers (정수) #

의 내용을 캐시하는 데 사설 토토할 공유 메모리의 양을 지정합니다.pg_notify(참조표 65.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은입니다.16. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

Serializable_buffers (정수) #

의 내용을 캐시하는 데 사설 토토할 공유 메모리의 양을 지정합니다.PG_SERIAL(참조표 65.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은입니다.32. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

SubTransaction_Buffers (정수) #

의 내용을 캐시하는 데 사설 토토할 공유 메모리의 양을 지정합니다.PG_SUBTRANS(참조표 65.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은입니다.0, 요청shared_buffers/512 최대 1024 블록이지만 16 블록 이하입니다. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

Transaction_Buffers (정수) #

의 내용을 캐시하는 데 사설 토토할 공유 메모리의 양을 지정합니다.PG_XACT(참조표 65.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은입니다.0, 요청shared_buffers/512 최대 1024 블록이지만 16 블록 이하입니다. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

max_stack_depth (정수) #

서버 실행 스택의 최대 안전 깊이를 지정합니다. 이 매개 변수의 이상적인 설정은 커널에 의해 시행되는 실제 스택 크기 한계입니다 (ulimit -s또는 로컬 동등성), 메가 바이트의 안전 마진이 적습니다. 스택 깊이가 서버의 모든 루틴에서 점검되지 않고 잠재적으로 재고가있는 주요 루틴에서만 안전 마진이 필요합니다.2MB)는 보수적으로 작고 위험 충돌이 발생할 가능성이 낮습니다. 그러나 복잡한 기능을 실행하기에는 너무 작을 수 있습니다.SET권한은이 설정을 변경할 수 있습니다.

설정max_stack_depth실제 커널 제한보다 높으면 런 어웨이 재활용 기능이 개별 백엔드 프로세스에 충돌 할 수 있음을 의미합니다. 플랫폼에서PostgreSQL커널 제한을 결정할 수 있습니다. 서버는이 변수가 안전하지 않은 값으로 설정되지 않습니다. 그러나 모든 플랫폼이 정보를 제공하는 것은 아니므로 값을 선택하는 데주의를 기울입니다.

shared_memory_type (enum) #

서버가 보유하는 기본 공유 메모리 영역에 사설 토토해야하는 공유 메모리 구현을 지정합니다PostgreSQL의 공유 버퍼 및 기타 공유 데이터. 가능한 값은MMAP(익명 공유 메모리를 사설 토토하여 할당MMAP), SYSV(시스템 V 공유 메모리를 통해SHMGET) 및Windows(Windows 공유 메모리의 경우). 모든 값이 모든 플랫폼에서 지원되는 것은 아닙니다.SYSV옵션은 플랫폼의 기본값이 아닌 옵션이 일반적으로 대규모 할당을 허용하기 위해서는 대규모 커널 설정이 필요하기 때문에 일반적으로 낙담합니다 (참조섹션 18.4.1).

dynamic_shared_memory_type (enum) #

서버가 사설 토토해야하는 동적 공유 메모리 구현을 지정합니다. 가능한 값은posixSHM_OPEN), SYSV(시스템 V 공유 메모리를 통해SHMGET), Windows(Windows 공유 메모리의 경우) 및MMAP(데이터 디렉토리에 저장된 메모리 매핑 된 파일을 사설 토토하여 공유 메모리를 시뮬레이션하려면). 모든 값이 모든 플랫폼에서 지원되는 것은 아닙니다.MMAP옵션은 플랫폼의 기본값이 아닌 옵션이 일반적으로 수정 된 페이지를 디스크에 반복적으로 다시 쓸 수 있으므로 시스템 I/O로드가 증가 할 수 있기 때문에 일반적으로 권장되지 않습니다. 그러나이면 디버깅에 유용 할 수 있습니다.PG_DYNSHMEM디렉토리는 RAM 디스크에 저장되어 있거나 다른 공유 메모리 시설을 사설 토토할 수없는 경우.

min_dynamic_shared_memory (정수) #

병렬 쿼리로 사설 토토하기 위해 서버 시작시 할당해야 할 메모리의 양을 지정합니다. 이 메모리 영역이 동시 쿼리에 의해 불충분하거나 소진되면, 새로운 병렬 쿼리는로 구성된 메소드를 사설 토토하여 운영 체제에서 일시적으로 추가 공유 메모리를 할당하려고합니다.dynamic_shared_memory_type, 메모리 관리 오버 헤드로 인해 느릴 수 있습니다. 스타트 업에서 할당 된 메모리min_dynamic_shared_memory의 영향을받습니다migne_pages지원되는 운영 체제의 설정은 자동으로 관리되는 운영 체제의 더 큰 페이지로부터 이익을 얻을 가능성이 높습니다. 기본값은입니다.0(없음). 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

19.4.2. 디스크#

temp_file_limit (정수) #

정렬 및 해시 임시 파일과 같은 임시 파일에 프로세스가 사설 토토할 수있는 최대 디스크 공간 또는 HELD 커서의 스토리지 파일을 지정합니다. 이 한도를 초과하려는 거래가 취소됩니다.-1(기본값)는 제한이 없음을 의미합니다. 적절한 수퍼 유행자 및 사설 토토자 만SET권한은이 설정을 변경할 수 있습니다.

이 설정은 주어진 곳에서 사설 토토하는 모든 임시 파일에 의해 모든 순간에 사설 토토되는 총 공간을 제한합니다PostgreSQL프로세스. 쿼리 실행에 비하인드 스토리를 사설 토토하는 임시 파일과 달리 명시적인 임시 테이블에 사설 토토되는 디스크 공간은not이 한도에 대한 계산.

max_notify_queue_pages (정수) #

할당 된 페이지의 최대 금액을 지정Notify / 듣기대기열. 기본값은 1048576입니다. 8kb 페이지의 경우 최대 8GB의 디스크 공간을 소비 할 수 있습니다.

19.4.3. 커널 리소스 사설 토토#

max_files_per_process (정수) #

각 서버 하위 프로세스에 허용되는 최대 동시에 열린 파일 수를 설정합니다. 기본값은 1 천 파일입니다.너무 많은 파일실패,이 설정을 줄이십시오. 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

19.4.4. 비용 기반 진공 지연#

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

이 기능의 의도는 관리자가 동시 데이터베이스 활동에 대한 이러한 명령의 I/O 영향을 줄일 수 있도록하는 것입니다. 유지 보수 명령이와 같은 중요하지 않은 상황이 많이 있습니다.진공and분석신속하게 마무리하십시오. 그러나 이러한 명령은 시스템이 다른 데이터베이스 작업을 수행 할 수있는 능력을 크게 방해하지 않는 것이 매우 중요합니다.

이 기능은 기본적으로 수동으로 발행 된 경우 비활성화진공명령. 활성화하려면를 설정하십시오.VACUUM_COST_DELAY0이 아닌 값으로 변수.

VACUUM_COST_DELAY (플로팅 포인트) #

비용 제한이 초과되었을 때 프로세스가 잠들 수있는 시간. 이 값이 단위없이 지정되면 밀리 초로 간주됩니다.

비용 기반 진공 청소기를 사설 토토할 때 적절한 값VACUUM_COST_DELAY는 일반적으로 상당히 작으며 아마도 1 밀리 초 미만입니다. 하는 동안VACUUM_COST_DELAY분수 밀리 초 값으로 설정할 수 있습니다. 이러한 지연은 이전 플랫폼에서 정확하게 측정되지 않을 수 있습니다. 그러한 플랫폼에서 증가하는진공'1ms에서 얻는 것보다 스로틀 리소스 소비는 다른 진공 비용 매개 변수를 변경해야합니다. 그럼에도 불구하고 당신은 유지해야합니다VACUUM_COST_DELAY플랫폼이 지속적으로 측정하는만큼 작습니다. 큰 지연은 도움이되지 않습니다.

VACUUM_COST_PAGE_HIT (정수) #

공유 버퍼 캐시에서 발견 된 버퍼를 진공 청소기로 배치하기위한 예상 비용. 버퍼 풀을 잠그고 공유 해시 테이블을 조회하고 페이지의 내용을 스캔하는 데 드는 비용을 나타냅니다.

VACUUM_COST_PAGE_MISS (정수) #

디스크에서 읽어야하는 버퍼를 진공 청소기로 비우기위한 예상 비용. 이는 버퍼 풀을 잠그고 공유 해시 테이블을 조회하고 디스크에서 원하는 블록을 읽고 내용을 스캔하려는 노력을 나타냅니다.

VACUUM_COST_PAGE_DIRTY (정수) #

진공 청소기가 이전에 청소 한 블록을 수정할 때 예상 비용이 청구됩니다. 더러운 블록을 다시 디스크로 플러시하는 데 필요한 추가 I/O를 나타냅니다.

VACUUM_COST_LIMIT (정수) #

이것은 진공 청소 과정이 잠을 자게하는 축적 된 비용입니다VACUUM_COST_DELAY. 기본값은 200입니다.

Note

중요한 잠금 장치를 보유하고 있으므로 가능한 빨리 완료 해야하는 특정 작업이 있습니다. 이러한 작업 중에 비용 기반 진공 지연이 발생하지 않습니다.VACUUM_COST_DELAY * Accumed_balance / VACUUM_COST_LIMIT최대VACUUM_COST_DELAY * 4.

19.4.5. 배경 작가#

이라는 별도의 서버 프로세스가 있습니다.배경 작가더티(신규 또는 수정 된) 공유 버퍼. 깨끗한 공유 버퍼의 수가 불충분 한 것처럼 보이면 배경 작성자는 파일 시스템에 더러운 버퍼를 작성하여 깨끗하게 표시합니다.

bgwriter_delay (정수) #

배경 작가의 활동 라운드 간의 지연을 지정합니다. 각 라운드에서 작가 문제는 다수의 더러운 버퍼에 대해 씁니다 (다음 매개 변수로 제어 가능).bgwriter_delay및 반복. 버퍼 풀에 더러운 버퍼가 없으면에 관계없이 더 긴 수면으로 들어갑니다.bgwriter_delay. 이 값이 단위없이 지정되면 밀리 초로 간주됩니다.200ms). 일부 시스템에서 수면 지연의 효과적인 해상도는 10 밀리 초입니다.bgwriter_delay10의 배수가 아닌 값에 대한 값은 다음 높이 다중 10 개로 설정하는 것과 동일한 결과를 가질 수 있습니다.이 매개 변수는에서만 설정할 수 있습니다.on파일 또는 서버 명령 줄에.

bgwriter_lru_maxpages (정수) #

각 라운드 마다이 많은 버퍼는 배경 작가가 작성하지 않을 것입니다. 이것을 0으로 설정하면 배경 쓰기가 비활성화됩니다.on파일 또는 서버 명령 줄에.

bgwriter_lru_multiplier (플로팅 포인트) #

각 라운드에 작성된 더러운 버퍼의 수는 최근 라운드 동안 서버 프로세스에 필요한 새로운 버퍼의 수를 기반으로합니다. 최근의 평균 요구는 곱합니다bgwriter_lru_multiplier다음 라운드에서 필요한 버퍼 수의 추정치에 도달합니다. 더러운 버퍼는 깨끗하고 재사설 토토 가능한 버퍼가 많이있을 때까지 작성됩니다.bgwriter_lru_maxpages버퍼는 라운드 당 작성됩니다.) 따라서 1.0의 설정은 a를 나타냅니다.방금 시간작성 정책 정확히 필요한 버퍼 수를 필요로합니다. 더 큰 값은 수요가 급증하는 스파이크에 대한 약간의 쿠션을 제공하는 반면, 작은 값은 서버 프로세스에 의해 의도적으로 쓰기를 남기고 있습니다.on파일 또는 서버 명령 줄에.

bgwriter_flush_after (정수) #

배경 작가 가이 양보다 더 많은 데이터를 작성할 때마다 OS 가이 글을 기본 스토리지에 발행하도록 강요하려고 시도하십시오. 그렇게하면 커널 페이지 캐시의 더러운 데이터의 양이 제한되어 시점의 가능성을 줄입니다.fsync는 체크 포인트의 끝에서 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 작성할 때 발행됩니다. 종종 트랜잭션 대기 시간이 크게 줄어들지 만, 특히보다 큰 워크로드가있는 경우도 있습니다.shared_buffers, 그러나 성능이 저하 될 수있는 OS의 페이지 캐시보다 작습니다. 이 설정은 일부 플랫폼에 영향을 미치지 않을 수 있습니다.blcksz바이트, 일반적으로 8kb. 유효한 범위는 사이입니다.0, 강제 쓰기 백을 비활성화하고2MB. 기본값은512KBOn Linux,0다른 곳. (만약에blcksz는 8KB가 아니며 기본값 및 최대 값은 비례 적으로 비례 적으로 비례합니다.)이 매개 변수는에서만 설정할 수 있습니다on파일 또는 서버 명령 줄에.

작은 값bgwriter_lru_maxpagesandbgwriter_lru_multiplier배경 작성자로 인한 추가 I/O 부하를 줄이지 만 서버 프로세스가 스스로 쓰기를 발행하여 대화식 쿼리를 지연시켜야 할 가능성이 높아집니다..

19.4.6. 비동기 동작#

backend_flush_after (정수) #

이 양 이상의 데이터가 단일 백엔드에 의해 작성 될 때마다 OS가 기본 스토리지에 이러한 글을 발행하도록 강제하려고 시도하십시오. 그렇게하면 커널 페이지 캐시의 더러운 데이터의 양이 제한되어 시점의 가능성을 줄입니다.fsync는 체크 포인트의 끝에서 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 작성할 때 발행됩니다. 종종 트랜잭션 대기 시간이 크게 줄어들지 만, 특히보다 큰 워크로드가있는 경우도 있습니다.shared_buffers, 그러나 성능이 저하 될 수있는 OS의 페이지 캐시보다 작습니다. 이 설정은 일부 플랫폼에 영향을 미치지 않을 수 있습니다.blcksz바이트, 일반적으로 8kb. 유효한 범위는 사이입니다.0, 강제 쓰기 백을 비활성화하고2MB. 기본값은0, 즉 강제 쓰기가 없음. (만약에blcksz8KB가 아니며 최대 값은 비례 적으로 비례합니다.)

exply_io_concurrency (정수) #

동시 디스크 I/O 작업 수를 설정합니다.PostgreSQL기대는 동시에 실행될 수 있습니다. 이 값을 높이면 개인이있는 I/O 운영 수가 증가합니다PostgreSQL세션은 병렬로 시작하려고 시도합니다. 허용 범위는 1 ~ 1000 또는 비동기 I/O 요청의 발급을 비활성화하기 위해 0입니다.

자기 드라이브의 경우,이 설정의 좋은 출발점은 데이터베이스에 사설 토토되는 RAID 0 스트라이프 또는 RAID 1 미러로 구성된 별도의 드라이브 수입니다. (RAID 5의 경우 패리티 드라이브를 계산해서는 안됩니다.) 그러나 데이터베이스가 종종 동시 세션으로 발행 된 여러 쿼리로 종종 바쁘면 더 낮은 값이 디스크 배열을 바쁘게 유지하기에 충분할 수 있습니다.

비동기 I/O는 효과적인 것에 따라 다릅니다posix_fadvise일부 운영 체제가 부족한 기능. 함수가 존재하지 않으면이 매개 변수를 0으로 설정하면 0으로 설정하면 오류가 발생합니다.

기본값은 지원되는 시스템에서 1입니다. 그렇지 않으면 0.이 값은 같은 이름의 테이블 스페이스 매개 변수를 설정하여 특정 테이블 스페이스의 테이블에 대해 재정의 할 수 있습니다 (참조테이블 스페이스 대체).

Maintending_io_concurrency (정수) #

유사exply_io_concurrency그러나 많은 고객 세션을 대신하여 수행되는 유지 보수 작업에 사설 토토됩니다.

기본값은 지원되는 시스템에서 10입니다. 그렇지 않으면 0. 동일한 이름의 테이블 스페이스 매개 변수를 설정하여 특정 테이블 스페이스의 테이블에 대해이 값을 재정의 할 수 있습니다 (참조테이블 스페이스 대체).

io_combine_limit (정수) #

I/O를 결합한 최대의 I/O 크기를 제어합니다. 기본값은 128kb입니다.

max_worker_processes (정수) #

클러스터가 지원할 수있는 최대 백그라운드 프로세스 수를 설정합니다. 이 매개 변수는 서버 시작시에만 설정할 수 있습니다.

대기 서버를 실행할 때이 매개 변수를 기본 서버와 동일하거나 더 높은 값으로 설정해야합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.

이 값을 변경할 때 조정을 고려하십시오max_parallel_workers, max_parallel_mainencement_workersmax_parallel_workers_per_gather.

max_parallel_workers_per_gather (정수) #

단일로 시작할 수있는 최대 근로자 수를 설정합니다수집또는합병 수집노드. 평행 근로자는에 의해 설정된 프로세스 풀에서 가져옵니다.max_worker_processes, 제한max_parallel_workers. 요청 된 근로자 수는 실제로 실행 시간에 사설 토토할 수 없습니다.

병렬 쿼리는 평행이 아닌 쿼리보다 매우 실질적으로 더 많은 리소스를 소비 할 수 있습니다. 각 작업자 프로세스는 추가 사설 토토자 세션과 거의 동일한 영향을 미치는 완전히 별도의 프로세스이기 때문입니다. 이 설정에 대한 값을 선택할 때와 같은 자원 활용을 제어하는 ​​다른 설정을 구성 할 때와 같은work_mem. 와 같은 자원 제한work_mem는 각 작업자에게 개별적으로 적용되므로 전체 활용이 일반적으로 단일 프로세스에 대한 것보다 모든 프로세스에서 훨씬 높을 수 있습니다. 예를 들어, 4 명의 작업자를 사설 토토하는 병렬 쿼리는 작업자가 전혀 사설 토토하지 않는 쿼리보다 최대 5 배의 CPU 시간, 메모리, I/O 대역폭 등을 사설 토토할 수 있습니다..

병렬 쿼리에 대한 자세한 내용은 참조PostgreSQL : 문서 : 17 : 15 장 스포츠 토토 베트맨 쿼리.

max_parallel_mainencement_workers (정수) #

단일 유틸리티 명령으로 시작할 수있는 최대 평행 작업자 수를 설정합니다. 현재 병렬 작업자의 사설 토토을 지원하는 병렬 유틸리티 명령은입니다.색인 생성B-Tree 또는 Brin Index를 구축 할 때진공없음full옵션. 평행 근로자는에 의해 설정된 프로세스 풀에서 가져옵니다.max_worker_processes, 제한max_parallel_workers. 요청 된 근로자 수는 실제로 실행 시간에 사설 토토할 수 없습니다.

병렬 유틸리티 명령은 동등한 비 평행 작업보다 실질적으로 더 많은 메모리를 소비해서는 안됩니다. 이 전략은 병렬 쿼리의 전략과 다릅니다. 여기서 리소스 제한은 일반적으로 작업자 프로세스 당 적용됩니다.maintenance_work_mem병렬 작업자 프로세스의 수에 관계없이 전체 유틸리티 명령에 적용되는 한계. 그러나 병렬 유틸리티 명령은 여전히 ​​더 많은 CPU 리소스와 I/O 대역폭을 소비 할 수 있습니다.

max_parallel_workers (정수) #

클러스터가 병렬 작업을 지원할 수있는 최대 작업자 수를 설정합니다. 기본값은 8입니다.이 값을 늘리거나 줄이면 조정을 고려하십시오max_parallel_mainencement_workersandmax_parallel_workers_per_gather. 또한이 값에 대한 설정은max_worker_processes병렬 작업자는 해당 설정에 의해 설정된 작업자 프로세스 풀에서 가져 오기 때문에 효과가 없습니다.

Parallel_Leader_Participation (부울) #

리더 프로세스가 쿼리 계획을 실행하도록 허용수집and합병 수집노드가 작업자 프로세스를 기다리는 대신 노드. 기본값은on. 이 값 설정OFF리더가 튜플을 충분히 빨리 읽지 않기 때문에 근로자가 차단 될 가능성을 줄이지 만, 리더 프로세스는 첫 번째 튜플을 생성하기 전에 작업자 프로세스가 시작될 때까지 기다려야합니다. 리더가 도움을 줄 수 있거나 성과를 방해 할 수있는 정도는 계획 유형, 근로자 수 및 쿼리 기간에 따라 다릅니다.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면