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
(기본값),on
및OFF
. 와 함께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)로 실행해야합니다. UAC가 활성화되면 일반 명령 프롬프트가 범퍼카 토토자 오른쪽을 취소합니다“메모리의 잠금 페이지”시작시.
이 범퍼카 토토은 기본 공유 메모리 영역에만 영향을 미칩니다. Linux, FreeBSD 및 Illumos와 같은 운영 체제도 거대한 페이지 (를 범퍼카 토토할 수도 있습니다.“Super”페이지 또는“큰”pages) 자동으로 정상 메모리 할당을 위해서는의 명시 적 요청없이PostgreSQL. Linux에서는이라고합니다.“투명한 거대한 페이지”(THP). 이 기능은로 성능 저하를 일으키는 것으로 알려져 있습니다.postgresql일부 Linux 버전의 일부 범퍼카 토토자의 경우 현재 범퍼카 토토이 권장되지 않습니다 (명백한 범퍼카 토토과 달리migne_pages
).
migne_page_size
(정수
) #활성화 될 때 거대한 페이지의 크기를 제어합니다.migne_pages. 기본값은 0입니다 (0
). 로 범퍼카 토토된 경우0
, 시스템의 기본 거대한 페이지 크기가 범퍼카 토토됩니다. 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
현대 64 비트 서버 아키텍처에서 일반적으로 범퍼카 토토 가능한 페이지 크기는 다음과 같습니다.2MB
and1GB
(인텔 및 AMD),16MB
and16GB
(IBM Power) 및64KB
, 2MB
, 32MB
and1GB
(팔). 범퍼카 토토 및 지원에 대한 자세한 내용은 참조하십시오.섹션 18.4.5.
비 디폴트 범퍼카 토토은 현재 Linux에서만 지원됩니다.
temp_buffers
(Integer
) #각 데이터베이스 세션 내에서 임시 버퍼에 범퍼카 토토되는 최대 메모리 양을 범퍼카 토토합니다. 이들은 임시 테이블에 대한 액세스에만 범퍼카 토토되는 세션-로컬 버퍼입니다. 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz
바이트, 일반적으로 8kb. 기본값은 8 메가 바이트 (입니다.8MB
). (만약에blcksz
8KB가 아니며 기본값은 비례 적으로 비례합니다.)이 범퍼카 토토은 개별 세션 내에서 변경 될 수 있지만 세션 내에서 임시 테이블을 처음 범퍼카 토토하기 전에만 변경 될 수 있습니다. 값을 변경하려는 후속 시도는 해당 세션에 영향을 미치지 않습니다.
세션은 필요에 따라 임시 버퍼를 할당합니다.temp_buffers
. 실제로 많은 임시 버퍼가 필요하지 않은 세션에서 큰 값을 범퍼카 토토하는 비용은 단지 버퍼 디스크립터 일뿐입니다.temp_buffers
. 그러나 버퍼가 실제로 범퍼카 토토되는 경우 추가 8192 바이트가 소비됩니다 (또는 일반적으로blcksz
바이트).
max_prepared_transactions
(Integer
) #에있을 수있는 최대 트랜잭션 수를 범퍼카 토토합니다.“준비”동시에 상태 (참조거래 준비). 이 매개 변수를 0으로 범퍼카 토토하면 (기본값 인) 준비된 전환 기능이 비활성화됩니다. 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
준비된 트랜잭션을 범퍼카 토토하지 않을 계획이라면이 매개 변수는 사고로 준비된 트랜잭션의 생성을 방지하기 위해 0으로 범퍼카 토토해야합니다. 준비된 거래를 범퍼카 토토하는 경우 원할 것입니다max_prepared_transactions
최소한 큰max_connections, 모든 세션이 준비된 거래가 준비 될 수 있도록.
대기 서버를 실행할 때이 매개 변수를 기본 서버와 동일하거나 높은 값으로 범퍼카 토토해야합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.
work_mem
(정수
) #임시 디스크 파일에 쓰기 전에 쿼리 작동 (예 : 정렬 또는 해시 테이블)에서 범퍼카 토토할 기본 최대 메모리 양을 범퍼카 토토합니다. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다. 기본값은 4 메가 바이트 (입니다.4MB
). 복잡한 쿼리는 동시에 여러 종류 및 해시 작업을 수행 할 수 있으며, 각 작업은 일반적으로 데이터가 임시 파일에 데이터를 작성하기 전에 지정되기만큼 많은 메모리를 범퍼카 토토할 수 있습니다. 또한, 여러 달리기 세션은 그러한 작업을 동시에 수행 할 수 있습니다. 따라서 범퍼카 토토 된 총 메모리는 여러 배가 될 수 있습니다.work_mem
; 가치를 선택할 때이 사실을 명심해야합니다. 정렬 작업은에 범퍼카 토토됩니다.주문 by
, 별도의
및 합병 조인. 해시 테이블은 해시 조인, 해시 기반 집계, 메모 라이즈 노드 및 해시 기반 처리에서 범퍼카 토토됩니다.in
서브 쿼리.
해시 기반 작업은 일반적으로 동등한 정렬 기반 작업보다 메모리 가용성에 더 민감합니다. 해시 테이블의 메모리 제한은 곱하여 계산됩니다work_mem
byhash_mem_multiplier
. 이로 인해 해시 기반 작업이 일반적인 메모리를 범퍼카 토토할 수 있습니다.work_mem
기본 금액.
hash_mem_multiplier
(플로팅 포인트
) #해시 기반 작업에서 범퍼카 토토할 수있는 최대 메모리 양을 계산하는 데 범퍼카 토토됩니다. 최종 한계는 곱하여 결정됩니다work_mem
byhash_mem_multiplier
. 기본값은 2.0이므로 해시 기반 작업이 평소의 두 배를 범퍼카 토토합니다work_mem
기본 금액.
증가 고려hash_mem_multiplier
쿼리 작업에 의한 유출이 정기적으로 발생하는 환경에서, 특히 단순히 증가 할 때work_mem
메모리 압력이 발생합니다 (메모리 압력은 일반적으로 메모리 오류에서 간헐적 인 형태를 취합니다). 2.0의 기본 범퍼카 토토은 종종 혼합 워크로드에 효과적입니다. 2.0-8.0 이상의 높은 범퍼카 토토은 환경에서 효과적 일 수 있습니다.work_mem
이미 40MB 이상으로 증가했습니다.
maintenance_work_mem
(정수
) #유지 보수 작업에서 범퍼카 토토할 최대의 메모리 양을 지정합니다.진공
, 색인 생성
및ALTER 테이블 외국 키 추가
. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다. 기본적으로 64 메가 바이트 (64MB
). 이러한 작업 중 하나만 데이터베이스 세션으로 한 번에 한 번에 실행할 수 있으며, 설치에는 일반적으로 많은 사람들이 동시에 실행되지 않으므로이 값을보다 훨씬 크게 범퍼카 토토하는 것이 안전합니다.work_mem
. 더 큰 범퍼카 토토은 진공 청소기 및 데이터베이스 덤프 복원을위한 성능을 향상시킬 수 있습니다.
autovacuum이 실행될 때 최대autovacuum_max_workers시간이 메모리를 할당 할 수 있으므로 기본값을 너무 높게 범퍼카 토토하지 않도록주의하십시오. 별도로 범퍼카 토토하여 이것을 제어하는 것이 유용 할 수 있습니다autovacuum_work_mem.
autovacuum_work_mem
(Integer
) #각 Autovacuum 작업자 프로세스에서 범퍼카 토토할 최대 메모리 양을 지정합니다. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다. 기본값은 -1로,의 값을 나타냅니다.Maintenance_Work_mem대신 범퍼카 토토해야합니다. 범퍼카 토토은의 동작에 영향을 미치지 않습니다.진공
다른 상황에서 실행될 때. 이 매개 변수는에서만 범퍼카 토토할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
VACUUM_BUFFER_USAGE_LIMIT
(Integer
) #크기를 지정버퍼 액세스 전략범퍼카 토토진공
and분석
명령. 범퍼카 토토0
운영이 모든 숫자를 범퍼카 토토할 수 있도록 허용합니다shared_buffers
. 그렇지 않으면 유효한 크기는입니다.128 KB
to16 GB
. 지정된 크기가 크기의 1/8을 초과하는 경우shared_buffers
, 크기는 해당 값에 조용히 캡핑됩니다. 기본값은입니다.2MB
. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다. 이 매개 변수는 언제든지 범퍼카 토토할 수 있습니다. 에 대해 우선 할 수 있습니다.진공and분석통과 할 때buffer_usage_limit
옵션. 더 높은 범퍼카 토토은 허용 할 수 있습니다진공
and분석
더 빨리 실행되지만 범퍼카 토토이 너무 커지면 너무 많은 다른 유용한 페이지가 공유 버퍼에서 퇴거 될 수 있습니다.
logical_decoding_work_mem
(Integer
) #논리적 디코딩에서 범퍼카 토토할 최대의 메모리 양을 지정하여 일부 디코딩 된 변경 사항이 로컬 디스크에 기록되기 전에. 이것은 논리 스트리밍 복제 연결에 범퍼카 토토되는 메모리의 양을 제한합니다. 기본적으로 64 메가 바이트 (64MB
). 각 복제 연결은이 크기의 단일 버퍼 만 범퍼카 토토하기 때문에 설치에는 일반적으로 그러한 연결이 동시에 많은 연결이 없습니다 (max_wal_senders
),이 값을보다 훨씬 높게 범퍼카 토토하는 것이 안전합니다work_mem
, 디스크에 작성된 디코딩 된 변경의 양을 줄입니다.
commit_timestamp_buffers
(Integer
) #의 내용을 캐시하는 데 범퍼카 토토할 메모리의 양을 지정합니다.PG_COMMIT_TS
(참조표 66.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz
바이트, 일반적으로 8kb. 기본값은입니다.0
, 요청shared_buffers
/512 최대 1024 블록이지만 16 블록 미만. 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
multixact_member_buffers
(정수
) #의 내용을 캐시하는 데 범퍼카 토토할 공유 메모리의 양을 지정합니다.PG_MULTIXACT/회원
(참조표 66.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz
바이트, 일반적으로 8kb. 기본값은입니다.32
. 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
multixact_offset_buffers
(정수
) #의 내용을 캐시하는 데 범퍼카 토토할 공유 메모리의 양을 지정합니다PG_MULTIXACT/OFFSETS
(참조표 66.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz
바이트, 일반적으로 8kb. 기본값은입니다.16
. 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
notify_buffers
(정수
) #의 내용을 캐시하는 데 범퍼카 토토할 공유 메모리의 양을 지정합니다pg_notify
(참조표 66.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz
바이트, 일반적으로 8kb. 기본값은입니다.16
. 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
Serializable_buffers
(Integer
) #의 내용을 캐시하는 데 범퍼카 토토할 공유 메모리의 양을 지정합니다PG_SERIAL
(참조표 66.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz
바이트, 일반적으로 8kb. 기본값은입니다.32
. 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
SubTransaction_Buffers
(정수
) #의 내용을 캐시하는 데 범퍼카 토토할 공유 메모리의 양을 지정합니다.PG_SUBTRANS
(참조표 66.1). 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz
바이트, 일반적으로 8kb. 기본값은입니다.0
, 요청shared_buffers
/512 최대 1024 블록이지만 16 블록 이하입니다. 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
Transaction_Buffers
(정수
) #의 내용을 캐시하는 데 범퍼카 토토할 공유 메모리의 양을 지정합니다PG_XACT
(참조표 66.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
) #서버가 범퍼카 토토해야하는 동적 공유 메모리 구현을 지정합니다. 가능한 값은posix
(POSIX 공유 메모리를 범퍼카 토토하여 할당SHM_OPEN
),SYSV
(시스템 V 공유 메모리를 통해SHMGET
),Windows
(Windows 공유 메모리의 경우) 및MMAP
(데이터 디렉토리에 저장된 메모리 매핑 된 파일을 범퍼카 토토하여 공유 메모리를 시뮬레이션하려면). 모든 값이 모든 플랫폼에서 지원되는 것은 아닙니다. 첫 번째 지원되는 옵션은 일반적으로 해당 플랫폼의 기본값입니다. 의 범퍼카 토토MMAP
옵션은 플랫폼의 기본값이 아닌 옵션이 일반적으로 수정 된 페이지를 반복적으로 디스크에 다시 쓸 수 있으므로 시스템 I/O로드가 증가 할 수 있기 때문에 일반적으로 권장되지 않습니다. 그러나이면 디버깅에 유용 할 수 있습니다.PG_DYNSHMEM
디렉토리는 RAM 디스크에 저장되어 있거나 다른 공유 메모리 시설을 범퍼카 토토할 수없는 경우.
min_dynamic_shared_memory
(Integer
) #Parallel Queries에서 범퍼카 토토하기 위해 서버 스타트 업에서 할당해야 할 메모리의 양을 지정합니다. 이 메모리 영역이 동시 쿼리에 의해 불충분하거나 소진되면, 새로운 병렬 쿼리는로 구성된 메소드를 범퍼카 토토하여 운영 체제에서 일시적으로 추가 공유 메모리를 할당하려고합니다.dynamic_shared_memory_type
, 메모리 관리 오버 헤드로 인해 느릴 수 있습니다. 스타트 업에서 할당 된 메모리min_dynamic_shared_memory
의 영향을받습니다migne_pages
지원되는 운영 체제의 범퍼카 토토은 자동으로 관리되는 운영 체제의 더 큰 페이지로부터 혜택을받을 가능성이 높습니다. 기본값은입니다.0
(없음). 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
temp_file_limit
(Integer
) #Process가 정렬 및 해시 임시 파일과 같은 임시 파일에 범퍼카 토토할 수있는 최대 디스크 공간 또는 HELD 커서의 스토리지 파일을 지정합니다. 이 한도를 초과하려는 거래가 취소됩니다. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다.-1
(기본값)는 제한이 없음을 의미합니다. 적절한 수퍼 유행자 및 범퍼카 토토자 만set
권한은이 범퍼카 토토을 변경할 수 있습니다.
이 범퍼카 토토은 주어진 곳에서 범퍼카 토토하는 모든 임시 파일에 의해 모든 순간에 범퍼카 토토되는 총 공간을 제한합니다PostgreSQL프로세스. 쿼리 실행에 비하인드 스토리를 범퍼카 토토하는 임시 파일과 달리 명시적인 임시 테이블에 범퍼카 토토되는 디스크 공간은not이 한도에 대한 계산.
file_copy_method
(enum
) #파일을 복사하는 데 범퍼카 토토되는 메소드를 지정합니다. 가능한 값은COPY
(기본값) 및클론
(운영 지원이 가능한 경우).
이 매개 변수는 다음과 같습니다.
데이터베이스 생성 ... 전략 = file_copy
데이터베이스 변경 ... 테이블 스페이스 범퍼카 토토 ...
클론
범퍼카 토토COPY_FILE_RANGE ()
(Linux, freebsd) 또는CopyFile
(MACOS) 시스템 호출, 커널에 디스크 블록을 공유하거나 일부 파일 시스템의 하위 레이어로 작업 할 수있는 기회를 제공합니다.
max_notify_queue_pages
(정수
) #할당 된 페이지의 최대 금액을 지정Notify / 듣기대기열. 기본값은 1048576입니다. 8kb 페이지의 경우 최대 8GB의 디스크 공간을 소비 할 수 있습니다.
max_files_per_process
(정수
) #각 서버 하위 프로세스가 동시에 열 수있는 최대 개방 파일 수를 범퍼카 토토합니다. 우체국 장에서 이미 열린 파일은이 한도에 포함되지 않습니다. 기본값은 천 파일입니다.
커널에 안전한 프로세스 별 한도를 시행하는 경우이 범퍼카 토토에 대해 걱정할 필요가 없습니다. 그러나 일부 플랫폼 (특히 대부분의 BSD 시스템)에서 커널은 많은 프로세스가 해당 파일을 모두 열려고 할 경우 시스템보다 실제로 더 많은 파일을 열 수있게합니다. 자신을보고 있다면“너무 많은 파일”실패,이 범퍼카 토토을 줄이십시오. 이 매개 변수는 서버 시작에서만 범퍼카 토토할 수 있습니다.
이라는 별도의 서버 프로세스가 있습니다.배경 작가“더티”(신규 또는 수정 된) 공유 버퍼. 깨끗한 공유 버퍼의 수가 불충분 한 것처럼 보이면 배경 작성자는 파일 시스템에 더러운 버퍼를 작성하여 깨끗하게 표시합니다. 이는 서버 프로세스를 처리하는 범퍼카 토토자 쿼리를 처리 할 가능성이 줄어들면 깨끗한 버퍼를 찾을 수없고 더러운 버퍼를 자체적으로 작성해야합니다. 그러나 백그라운드 작가는 반복적으로 쇠약 한 페이지가 체크 포인트 간격 당 한 번만 작성 될 수 있지만, 배경 작성자는 동일한 간격으로 더러워 질 때 여러 번 글을 쓸 수 있기 때문에 배경 작가는 I/O 부하가 전체적으로 증가합니다. 이 하위 섹션에서 논의 된 매개 변수는 지역 요구에 대한 동작을 조정하는 데 범퍼카 토토될 수 있습니다.
bgwriter_delay
(정수
) #배경 작가의 활동 라운드 간의 지연을 지정합니다. 각 라운드에서 작가 문제는 다수의 더러운 버퍼에 대해 씁니다 (다음 매개 변수로 제어 가능). 그런 다음의 길이를 위해 잠을 자고 있습니다.bgwriter_delay
및 반복. 버퍼 풀에 더러운 버퍼가 없으면에 관계없이 더 긴 수면으로 들어갑니다.bgwriter_delay
. 이 값이 단위없이 지정되면 밀리 초로 간주됩니다. 기본값은 200 밀리 초입니다 (200ms
). 일부 시스템에서 수면 지연의 효과적인 해상도는 10 밀리 초입니다. 환경bgwriter_delay
10의 배수가 아닌 값으로 10의 다음으로 범퍼카 토토하는 것과 동일한 결과를 얻을 수 있습니다.이 매개 변수는에서만 범퍼카 토토할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
bgwriter_lru_maxpages
(Integer
) #각 라운드 마다이 많은 버퍼는 배경 작가가 작성하지 않습니다. 이것을 0으로 범퍼카 토토하면 배경 쓰기가 비활성화됩니다. (별도의 전용 보조 프로세스로 관리되는 체크 포인트는 영향을받지 않습니다.) 기본값은 100 버퍼입니다. 이 매개 변수는에서만 범퍼카 토토할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
bgwriter_lru_multiplier
(플로팅 포인트
) #각 라운드에 작성된 더러운 버퍼의 수는 최근 라운드 동안 서버 프로세스에 필요한 새로운 버퍼의 수를 기반으로합니다. 최근의 평균 요구는 곱합니다bgwriter_lru_multiplier
다음 라운드에서 필요한 버퍼 수의 추정치에 도달하려면. 더러운 버퍼는 깨끗하고 재범퍼카 토토 가능한 버퍼가 많이있을 때까지 작성됩니다. (그러나 더 이상bgwriter_lru_maxpages
버퍼는 라운드 당 작성됩니다.) 따라서 1.0의 범퍼카 토토은 a를 나타냅니다.“제 시간에”정확히 필요한 버퍼의 수를 작성하는 정책. 더 큰 값은 수요가 급증하는 스파이크에 대한 약간의 쿠션을 제공하는 반면, 작은 값은 서버 프로세스에 의해 의도적으로 쓰기를 남기고 있습니다. 기본값은 2.0입니다. 이 매개 변수는에서만 범퍼카 토토할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
bgwriter_flush_after
(정수
) #이 양의 데이터보다 배경 작가가 작성한 경우, OS 가이 글을 기본 스토리지에 발행하도록 강요하려고 시도하십시오. 그렇게하면 커널 페이지 캐시의 더러운 데이터의 양이 제한되어 시점의 가능성을 줄입니다.fsync
는 체크 포인트의 끝에서 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 작성할 때 발행됩니다. 종종 트랜잭션 대기 시간이 크게 줄어들지 만, 특히보다 큰 워크로드가있는 경우도 있습니다.shared_buffers이지만 성능이 저하 될 수있는 OS의 페이지 캐시보다 작습니다. 이 범퍼카 토토은 일부 플랫폼에 영향을 미치지 않을 수 있습니다. 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz
바이트, 일반적으로 8kb. 유효한 범위는 사이입니다.0
2MB
. 기본값은512KB
On Linux,0
다른 곳. (만약에blcksz
는 8KB가 아니며 기본값 및 최대 값은 비례 적으로 비례 적으로 척도입니다.)이 매개 변수는에서만 범퍼카 토토할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에서.
작은 값bgwriter_lru_maxpages
및bgwriter_lru_multiplier
배경 작성자로 인한 추가 I/O 부하를 줄이지 만 서버 프로세스가 스스로 쓰기를 발행하여 대화식 쿼리를 지연시켜야 할 가능성이 높아집니다..
backend_flush_after
(Integer
) #이 양의 데이터보다 단일 백엔드에 의해 작성 될 때마다 OS가 기본 스토리지에 이러한 글을 발행하도록 강제 시도하십시오. 그렇게하면 커널 페이지 캐시의 더러운 데이터의 양이 제한되어 시점의 가능성을 줄입니다.fsync
는 체크 포인트의 끝에서 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 작성할 때 발행됩니다. 종종 트랜잭션 대기 시간이 크게 줄어들지 만, 특히보다 큰 워크로드가있는 경우도 있습니다.shared_buffers이지만 성능이 저하 될 수있는 OS의 페이지 캐시보다 작습니다. 이 범퍼카 토토은 일부 플랫폼에 영향을 미치지 않을 수 있습니다. 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz
바이트, 일반적으로 8kb. 유효한 범위는 사이입니다.0
, 강제 쓰기 백을 비활성화하고2MB
. 기본값은0
, 즉 강제 쓰기 백 없음. (만약에blcksz
8KB가 아니며, 최대 값은 비례 적으로 비례합니다.)
explud_io_concurrency
(정수
) #동시 스토리지 I/O 작업의 수를 범퍼카 토토합니다.PostgreSQL기대는 동시에 실행될 수 있습니다. 이 값을 높이면 개인이있는 I/O 운영 수가 증가합니다PostgreSQL세션은 병렬로 시작하려고 시도합니다. 허용 범위는입니다.1
to1000
또는0
비동기 I/O 요청의 발행을 비활성화합니다. 기본값은16
.
더 높은 값은 쿼리가 눈에 띄는 I/O 스톨과 IOP가 높은 장치에서 쿼리를 경험하는 높은 대기 시간 저장에 가장 큰 영향을 미칩니다. 불필요하게 높은 값이 시스템의 모든 쿼리에 대한 I/O 대기 시간을 증가시킬 수 있습니다
프리 페치 조언 지원이있는 시스템에서exply_io_concurrency
또한 프리 페치 거리를 제어합니다.
이 값은 같은 이름의 테이블 스페이스 매개 변수를 범퍼카 토토하여 특정 테이블 스페이스의 테이블에 대해 재정의 할 수 있습니다 (참조범퍼카 토토 : 문서).
Maintending_io_concurrency
(정수
) #유사exply_io_concurrency
, 그러나 많은 고객 세션을 대신하여 수행되는 유지 보수 작업에 범퍼카 토토됩니다.
기본값은16
. 이 값은 같은 이름의 테이블 스페이스 매개 변수를 범퍼카 토토하여 특정 테이블 스페이스의 테이블에 대해 재정의 할 수 있습니다 (참조범퍼카 토토 : 문서).
io_max_combine_limit
(정수
) #I/O를 결합한 작업에서 가장 큰 I/O 크기를 제어하고 범퍼카 토토자가 확장 가능한 매개 변수를 조용히 제한합니다io_combine_limit
. 이 매개 변수는에서만 범퍼카 토토할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에. 가능한 최대 크기는 운영 체제와 블록 크기에 따라 다르지만 일반적으로 UNIX에서는 1MB, Windows의 128KB입니다. 기본값은 128kb입니다.
io_combine_limit
(Integer
) #I/O를 결합한 작업에서 가장 큰 I/O 크기를 제어합니다. 보다 높게 범퍼카 토토된 경우io_max_combine_limit
매개 변수, 대신 더 낮은 값을 조용히 범퍼카 토토하므로 I/O 크기를 높이려면 둘 다 올라 가야 할 수도 있습니다. 가능한 최대 크기는 운영 체제와 블록 크기에 따라 다르지만 일반적으로 UNIX에서는 1MB, Windows의 128KB입니다. 기본값은 128kb입니다.
io_max_concurrency
(Integer
) #한 프로세스가 동시에 실행할 수있는 최대 I/O 작업 수를 제어합니다.
기본 범퍼카 토토-1
shared_buffers및 최대 프로세스 수 (max_connections, autovacuum_worker_slots, max_worker_processes및max_wal_senders), 그러나 이상은 아닙니다.64
.
이 매개 변수는 서버 시작시에만 범퍼카 토토할 수 있습니다.
io_method
(enum
) #비동기 I/O를 실행하는 방법을 선택합니다. 가능한 가치는 다음과 같습니다.
노동자
(작업자 프로세스를 범퍼카 토토하여 비동기 I/O 실행)
io_uring
(io_uring을 범퍼카 토토하여 비동기 I/O를 실행하려면 빌드가 필요합니다-이식
/ -dliburing
)
sync
(비동기 적격 I/O 동기식 실행)
기본값은노동자
.
이 매개 변수는 서버 시작시에만 범퍼카 토토할 수 있습니다.
io_workers
(정수
) #범퍼카 토토할 I/O 작업자 프로세스 수를 선택합니다. 기본값은 3입니다.이 매개 변수는에서만 범퍼카 토토할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
만 영향을 미칩니다.io_method로 범퍼카 토토되었습니다노동자
.
max_worker_processes
(정수
) #클러스터가 지원할 수있는 최대 백그라운드 프로세스 수를 범퍼카 토토합니다. 이 매개 변수는 서버 시작시에만 범퍼카 토토할 수 있습니다. 기본값은 8입니다.
대기 서버를 실행할 때이 매개 변수를 기본 서버와 동일하거나 더 높은 값으로 범퍼카 토토해야합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.
이 값을 변경할 때 조정을 고려하십시오max_parallel_workers, max_parallel_mainencement_workers및max_parallel_workers_per_gather.
max_parallel_workers_per_gather
(정수
) #단일로 시작할 수있는 최대 근로자 수를 범퍼카 토토합니다수집
또는합병 수집
노드. 평행 근로자는에 의해 범퍼카 토토된 프로세스 풀에서 가져옵니다.max_worker_processes, 제한max_parallel_workers. 요청 된 근로자 수는 실제로 실행 시간에 범퍼카 토토할 수 없습니다. 이런 일이 발생하면 계획은 예상보다 적은 수의 근로자와 함께 운영되며 비효율적 일 수 있습니다. 기본값은 2입니다.이 값을 0으로 범퍼카 토토하면 병렬 쿼리 실행이 비활성화됩니다.
병렬 쿼리는 평행이 아닌 쿼리보다 실질적으로 더 많은 리소스를 소비 할 수 있습니다. 각 작업자 프로세스는 추가 범퍼카 토토자 세션과 거의 동일한 영향을 미치는 완전히 별도의 프로세스이기 때문입니다. 이 범퍼카 토토에 대한 값을 선택할 때와 같은 자원 활용을 제어하는 다른 범퍼카 토토을 구성 할 때와 같은work_mem. 와 같은 자원 제한work_mem
각 작업자에게 개별적으로 적용됩니다. 즉, 총 범퍼카 토토량은 일반적으로 단일 프로세스보다 모든 프로세스에서 훨씬 높을 수 있습니다. 예를 들어, 4 명의 작업자를 범퍼카 토토하는 병렬 쿼리는 작업자가 전혀 범퍼카 토토하지 않는 쿼리보다 최대 5 배의 CPU 시간, 메모리, I/O 대역폭 등을 범퍼카 토토할 수 있습니다..
병렬 쿼리에 대한 자세한 내용은 참조PostgreSQL : 문서 : 18 : 15 장 젠 토토 쿼리.
max_parallel_mainencement_workers
(Integer
) #단일 유틸리티 명령으로 시작할 수있는 최대 평행 작업자 수를 범퍼카 토토합니다. 현재 병렬 작업자의 범퍼카 토토을 지원하는 병렬 유틸리티 명령은입니다.색인 생성
B-Tree, Gin 또는 Brin Index를 구축 할 때진공
없음full
옵션. 평행 근로자는에 의해 범퍼카 토토된 프로세스 풀에서 가져옵니다.max_worker_processes, 제한max_parallel_workers. 요청 된 근로자 수는 실제로 실행 시간에 범퍼카 토토할 수 없습니다. 이 경우 유틸리티 운영은 예상보다 적은 수의 근로자로 실행됩니다. 기본값은 2입니다.이 값을 0으로 범퍼카 토토하면 유틸리티 명령에 따라 병렬 작업자의 범퍼카 토토을 비활성화합니다.
병렬 유틸리티 명령은 동등한 비 평행 작업보다 실질적으로 더 많은 메모리를 소비해서는 안됩니다. 이 전략은 병렬 쿼리의 전략과 다릅니다. 여기서 리소스 제한은 일반적으로 작업자 프로세스 당 적용됩니다. 병렬 유틸리티 명령은 리소스 제한을 취급maintenance_work_mem
병렬 작업자 프로세스의 수에 관계없이 전체 유틸리티 명령에 적용되는 한계. 그러나 병렬 유틸리티 명령은 여전히 더 많은 CPU 리소스와 I/O 대역폭을 소비 할 수 있습니다.
max_parallel_workers
(정수
) #클러스터가 병렬 작업을 지원할 수있는 최대 작업자 수를 범퍼카 토토합니다. 기본값은 8입니다.이 값을 늘리거나 줄이면 조정을 고려하십시오max_parallel_mainenage_workersandmax_parallel_workers_per_gather. 또한이 값에 대한 범퍼카 토토은max_worker_processes병렬 작업자가 해당 범퍼카 토토에 의해 범퍼카 토토된 작업자 프로세스 풀에서 가져 오기 때문에 효과가 없습니다.
Parallel_Leader_Participation
(부울
) #리더 프로세스가 쿼리 계획을 실행하도록 허용수집
and합병 수집
노드가 작업자 프로세스를 기다리는 대신 노드. 기본값은on
. 이 값 범퍼카 토토off
리더가 튜플을 충분히 빨리 읽지 않기 때문에 근로자가 차단 될 가능성을 줄이지 만, 리더 프로세스는 첫 번째 튜플을 생산하기 전에 작업자 프로세스가 시작될 때까지 대기해야합니다. 리더가 도움을 줄 수 있거나 성과를 방해 할 수있는 정도는 계획 유형, 근로자 수 및 쿼리 기간에 따라 다릅니다.