shared_buffers
(정수
)데이터베이스 서버가 공유 메모리 버퍼에 사용하는 메모리 양을 토토 핫합니다. 기본값은 일반적으로 128 메가 바이트입니다 (128MB
)이지만 커널 토토 핫이 지원되지 않으면 (initdb). 이 토토 핫은 128 킬로 바이트 이상이어야합니다. (의 비 디폴트 값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
, 거대한 페이지는 요청되지 않습니다.
현재이 토토 핫은 Linux 및 Windows에서만 지원됩니다. 토토 핫이 토토 핫된 다른 시스템에서 토토 핫이 무시됩니다try
.
거대한 페이지를 사용하면 더 작은 페이지 테이블과 메모리 관리에 소요되는 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
).
temp_buffers
(정수
)각 데이터베이스 세션에서 사용하는 최대 임시 버퍼 수를 토토 핫합니다. 이들은 임시 테이블에 대한 액세스에만 사용되는 세션-로컬 버퍼입니다. 기본값은 8 메가 바이트 (입니다.8MB
). 토토 핫은 개별 세션 내에서 변경 될 수 있지만 세션 내에서 임시 테이블을 처음 사용하기 전에만 변경할 수 있습니다. 값을 변경하려는 후속 시도는 해당 세션에 영향을 미치지 않습니다.
세션은 필요에 따라 임시 버퍼를 할당합니다.temp_buffers
. 실제로 많은 임시 버퍼가 필요하지 않은 세션에서 큰 값을 토토 핫하는 비용은 단지 버퍼 디스크립터 일뿐입니다.temp_buffers
. 그러나 버퍼가 실제로 사용되는 경우 추가 8192 바이트가 소비됩니다 (또는 일반적으로blcksz
바이트).
max_prepared_transactions
(Integer
)에있을 수있는 최대 트랜잭션 수를 토토 핫합니다“준비”동시에 상태 (참조거래 준비). 이 매개 변수를 0으로 토토 핫하면 (기본값 인) 준비된 전환 기능이 비활성화됩니다. 이 매개 변수는 서버 시작에서만 토토 핫할 수 있습니다.
준비된 트랜잭션을 사용하지 않을 계획이라면이 매개 변수는 제대로 준비된 트랜잭션의 생성을 방지하기 위해 0으로 토토 핫해야합니다. 준비된 거래를 사용하는 경우 원할 것입니다max_prepared_transactions
최소한max_connections, 모든 세션이 준비된 거래가 준비 될 수 있도록.
대기 서버를 실행할 때이 매개 변수를 마스터 서버와 동일하거나 더 높은 값으로 토토 핫해야합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.
work_mem
(Integer
)임시 디스크 파일에 작성하기 전에 내부 정렬 작업 및 해시 테이블에서 사용할 메모리의 양을 지정합니다. 값 기본값은 4 메가 바이트 (까지)4MB
). 복잡한 쿼리는 동시에 여러 종류 및 해시 작업을 수행 할 수 있으며, 각 작업은 일반적으로 데이터가 임시 파일에 데이터를 작성하기 전에 지정된만큼 많은 메모리를 사용할 수 있습니다. 또한, 여러 달리기 세션은 그러한 작업을 동시에 수행 할 수 있습니다. 따라서 사용 된 총 메모리는 여러 배가 될 수 있습니다.work_mem
; 가치를 선택할 때이 사실을 명심해야합니다. 정렬 작업은에 사용됩니다.주문
, 별도의
및 합병 조인. 해시 테이블은 해시 조인, 해시 기반 집계 및 해시 기반 처리에서 사용됩니다.in
서브 쿼리.
Maintenance_work_mem
(정수
)유지 보수 작업에서 사용할 최대 메모리 양을 지정합니다.진공
, 색인 생성
및Alter Table Add Foreign Key
. 기본적으로 64 메가 바이트 (64MB
). 이러한 작업 중 하나만 데이터베이스 세션으로 한 번에 실행할 수 있으며 일반적으로 설치에는 동시에 많은 것을 실행하지 않기 때문에이 값을보다 훨씬 크게 토토 핫하는 것이 안전합니다.work_mem
. 더 큰 토토 핫은 진공 청소기 및 데이터베이스 덤프 복원을위한 성능을 향상시킬 수 있습니다.
autovacuum이 실행될 때 최대autovacuum_max_workers이 메모리가 할당 될 수 있으므로 기본값을 너무 높게 토토 핫하지 않도록주의하십시오. 별도로 토토 핫하여 이것을 제어하는 것이 유용 할 수 있습니다autovacuum_work_mem.
죽은 튜플 식별자 모음의 경우진공
최대 최대 만 활용할 수 있습니다.1GB
의 메모리.
autovacuum_work_mem
(Integer
)각 Autovacuum 작업자 프로세스에서 사용할 최대 메모리 양을 지정합니다. 기본값은 -1로,의 값을 나타냅니다.maintenance_work_mem대신 사용해야합니다. 토토 핫은의 동작에 영향을 미치지 않습니다.진공
다른 상황에서 실행할 때. 이 매개 변수는에서만 토토 핫할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
Dead Tuple 식별자 수집의 경우 Autovacuum은 최대 최대 만 활용할 수 있습니다.1GB
메모리의 토토 핫autovacuum_work_mem
그보다 높은 값으로 autovacuum이 테이블을 스캔하는 동안 수집 할 수있는 죽은 튜플의 수에는 영향을 미치지 않습니다..
max_stack_depth
(Integer
)서버 실행 스택의 최대 안전 깊이를 지정합니다. 이 매개 변수의 이상적인 토토 핫은 커널에 의해 시행되는 실제 스택 크기 한계입니다 (ulimit -s
또는 로컬 동등성), 메가 바이트 정도의 안전 마진이 적습니다. 스택 깊이가 서버의 모든 루틴에서 점검되지 않고 표현 평가와 같은 잠재적 인 재구성 루틴에서만 안전 마진이 필요합니다. 기본 토토 핫은 두 메가 바이트입니다 (2MB
)는 보수적으로 작고 위험 충돌이 발생할 가능성이 거의 없습니다. 그러나 복잡한 기능을 실행하기에는 너무 작을 수 있습니다. 수퍼 유저만이 토토 핫을 변경할 수 있습니다.
토토 핫max_stack_depth
실제 커널 제한보다 높으면 런 어웨이 재귀 기능이 개별 백엔드 프로세스에 충돌 할 수 있음을 의미합니다. 플랫폼에서PostgreSQL커널 제한을 결정할 수 있으면 서버는이 변수가 안전하지 않은 값으로 토토 핫되지 않습니다. 그러나 모든 플랫폼이 정보를 제공하는 것은 아니므로 값을 선택하는 데주의를 기울입니다.
dynamic_shared_memory_type
(enum
)서버가 사용해야하는 동적 공유 메모리 구현을 지정합니다. 가능한 값은posix
(POSIX 공유 메모리를 사용하여 할당SHM_OPEN
),SYSV
(시스템 V 공유 메모리를 통해SHMGET
),Windows
(Windows 공유 메모리의 경우),MMAP
(데이터 디렉토리에 저장된 메모리 매핑 된 파일을 사용하여 공유 메모리를 시뮬레이션하려면) 및없음
(이 기능을 비활성화하려면). 모든 값이 모든 플랫폼에서 지원되는 것은 아닙니다. 첫 번째 지원되는 옵션은 해당 플랫폼의 기본값입니다. 의 사용MMAP
옵션은 플랫폼의 기본값이 아닌 옵션이 일반적으로 수정 된 페이지가 디스크에 반복적으로 다시 작성하여 시스템 I/O로드를 증가시킬 수 있기 때문에 일반적으로 권장되지 않습니다. 그러나이면 디버깅에 유용 할 수 있습니다.PG_DYNSHMEM
디렉토리는 RAM 디스크에 저장되어 있거나 다른 공유 메모리 시설을 사용할 수없는 경우.
temp_file_limit
(Integer
)정렬 및 해시 임시 파일과 같은 임시 파일 또는 HELD 커서의 스토리지 파일과 같은 임시 파일에 사용할 수있는 최대 디스크 공간의 양을 지정합니다. 이 한도를 초과하려는 거래가 취소됩니다. 값은 킬로 바이트에 지정되어 있으며-1
(기본값)는 제한이 없음을 의미합니다. 수퍼 유저만이 토토 핫을 변경할 수 있습니다.
이 토토 핫은 주어진 곳에서 사용하는 모든 임시 파일에 의해 모든 순간에 사용되는 총 공간을 제한합니다PostgreSQL프로세스. 쿼리 실행에 비하인드 스토리를 사용하는 임시 파일과 달리 명시적인 임시 테이블에 사용되는 디스크 공간은아님이 한도에 대한 계산.
max_files_per_process
(Integer
)각 서버 서브 프로세스에 허용되는 최대 동시에 열린 파일의 최대 수를 토토 핫합니다. 기본값은 1 천 파일입니다. 커널이 프로세스 당 안전한 한계를 시행하는 경우이 토토 핫에 대해 걱정할 필요가 없습니다. 그러나 일부 플랫폼 (특히 대부분의 BSD 시스템)에서 커널은 많은 프로세스가 해당 파일을 모두 열려고 할 경우 시스템보다 실제로 더 많은 파일을 열 수있게합니다. 자신을보고 있다면“너무 많은 파일”실패,이 토토 핫을 줄이십시오. 이 매개 변수는 서버 시작에서만 토토 핫할 수 있습니다.
실행 중진공및분석명령, 시스템은 수행되는 다양한 I/O 운영의 예상 비용을 추적하는 내부 카운터를 유지합니다. 누적 된 비용이 한도에 도달 할 때 (VACUUM_COST_LIMIT
), 작업을 수행하는 프로세스는 짧은 시간 동안 잠을 자게됩니다.VACUUM_COST_DELAY
. 그런 다음 카운터를 재토토 핫하고 계속 실행합니다.
이 기능의 의도는 관리자가 동시 데이터베이스 활동에 대한 이러한 명령의 I/O 영향을 줄일 수 있도록하는 것입니다. 유지 보수 명령이와 같은 중요하지 않은 상황이 많이 있습니다.진공
and분석
신속하게 마무리하십시오. 그러나 이러한 명령은 시스템이 다른 데이터베이스 작업을 수행 할 수있는 능력을 크게 방해하지 않는 것이 매우 중요합니다. 비용 기반 진공 지연은 관리자가이를 달성 할 수있는 방법을 제공합니다.
이 기능은 기본적으로 수동으로 발행 된 경우 비활성화진공
명령. 활성화하려면를 토토 핫하십시오.VACUUM_COST_DELAY
0이 아닌 값으로 변수
VACUUM_COST_DELAY
(Integer
)비용 제한이 초과되었을 때 프로세스가 잠을자는 시간 (밀리 초). 기본값은 0이므로 비용 기반 진공 지연 기능을 비활성화합니다. 양수 값은 비용 기반 진공 청소기를 가능하게합니다. 많은 시스템에서 수면 지연의 효과적인 해상도는 10 밀리 초입니다. 환경VACUUM_COST_DELAY
10의 배수가 아닌 값으로 10의 다음으로 토토 핫하는 것과 동일한 결과를 가질 수 있습니다.
비용 기반 진공 청소기를 사용할 때 적절한 값VACUUM_COST_DELAY
는 일반적으로 매우 작습니다. 아마도 10 ~ 20 밀리 초입니다. 진공 청소기의 자원 소비 조정은 다른 진공 비용 매개 변수를 변경하여 가장 잘 수행됩니다.
VACUUM_COST_PAGE_HIT
(정수
)공유 버퍼 캐시에서 발견 된 버퍼를 진공 청소기로 배치하는 데 예상되는 비용. 버퍼 풀을 잠그고 공유 해시 테이블을 조회하고 페이지의 내용을 스캔하는 데 드는 비용을 나타냅니다. 기본값은 하나입니다.
VACUUM_COST_PAGE_MISS
(정수
)디스크에서 읽어야하는 버퍼를 진공 청소기에서 진공하기위한 예상 비용. 이는 버퍼 풀을 잠그고 공유 해시 테이블을 조회하고 디스크에서 원하는 블록을 읽고 내용을 스캔하려는 노력을 나타냅니다. 기본값은 10입니다.
VACUUM_COST_PAGE_DIRTY
(Integer
)진공 청소기가 이전에 청소 한 블록을 수정할 때 요금이 청구 된 예상 비용. 더러운 블록을 다시 디스크로 플러시하는 데 필요한 추가 I/O를 나타냅니다. 기본값은 20입니다.
VACUUM_COST_LIMIT
(정수
)진공 청소 과정이 수면을 일으키는 축적 된 비용. 기본값은 200입니다.
중요한 잠금 장치를 보유하고 있으므로 가능한 빨리 완료 해야하는 특정 작업이 있습니다. 이러한 작업 중에 비용 기반 진공 지연이 발생하지 않습니다. 따라서 비용이 지정된 한계보다 훨씬 높게 축적 될 수 있습니다. 그러한 경우에 쓸모없는 긴 지연을 피하기 위해 실제 지연은로 계산됩니다.VACUUM_COST_DELAY
* accumulated_balance
/ VACUUM_COST_LIMIT
최대VACUUM_COST_DELAY
* 4.
라는 별도의 서버 프로세스가 있습니다.배경 작가“더티”(신규 또는 수정 된) 공유 버퍼. 깨끗한 공유 버퍼의 수가 불충분 한 것처럼 보이면 배경 작성자는 파일 시스템에 더러운 버퍼를 작성하여 깨끗하게 표시합니다. 이는 서버 프로세스를 처리하는 사용자 쿼리를 처리 할 가능성이 줄어들면 깨끗한 버퍼를 찾을 수없고 더러운 버퍼를 자체적으로 작성해야합니다. 그러나 백그라운드 작가는 반복적으로 쇠약 한 페이지가 체크 포인트 간격 당 한 번만 작성 될 수 있지만, 배경 작성자는 동일한 간격으로 더러워 질 때 여러 번 글을 쓸 수 있기 때문에 배경 작가는 I/O 부하가 전체적으로 증가합니다. 이 하위 섹션에서 논의 된 매개 변수는 지역 요구에 대한 동작을 조정하는 데 사용될 수 있습니다.
bgwriter_delay
(Integer
)배경 작가의 활동 라운드 간의 지연을 지정합니다. 각 라운드에서 작가 문제는 다수의 더러운 버퍼에 대해 씁니다 (다음 매개 변수로 제어 가능). 그런 다음bgwriter_delay
밀리 초, 반복. 버퍼 풀에 더러운 버퍼가 없으면에 관계없이 더 긴 수면으로 들어갑니다.bgwriter_delay
. 기본값은 200 밀리 초입니다 (200ms
). 많은 시스템에서 수면 지연의 효과적인 해상도는 10 밀리 초입니다. 환경bgwriter_delay
10의 배수가 아닌 값에 대한 값은 다음 높이 다중 10 개로 토토 핫하는 것과 동일한 결과를 가질 수 있습니다.이 매개 변수는에서만 토토 핫할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
bgwriter_lru_maxpages
(정수
)각 라운드 마다이 많은 버퍼는 배경 작가가 작성하지 않습니다. 이것을 0으로 토토 핫하면 배경 쓰기가 비활성화됩니다. (별도의 전용 보조 프로세스로 관리되는 체크 포인트는 영향을받지 않습니다.) 기본값은 100 버퍼입니다. 이 매개 변수는에서만 토토 핫할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
bgwriter_lru_multiplier
(플로팅 포인트
)각 라운드에 작성된 더러운 버퍼의 수는 최근 라운드 동안 서버 프로세스에 필요한 새로운 버퍼의 수를 기반으로합니다. 최근의 평균 요구는 곱합니다bgwriter_lru_multiplier
다음 라운드에서 필요한 버퍼 수의 추정치에 도달하려면. 더러운 버퍼는 깨끗하고 재사용 가능한 버퍼가 많이있을 때까지 작성됩니다. (그러나 더 이상bgwriter_lru_maxpages
버퍼는 라운드 당 기록됩니다.) 따라서 1.0의 토토 핫은 a를 나타냅니다.“제 시간에”작성 정책 정확히 필요한 버퍼의 수를 정확히 작성합니다. 더 큰 값은 수요가 급증하는 스파이크에 대한 약간의 쿠션을 제공하는 반면, 작은 값은 서버 프로세스에 의해 의도적으로 쓰기를 남기고 있습니다. 기본값은 2.0입니다. 이 매개 변수는에서만 토토 핫할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
bgwriter_flush_after
(정수
)bgwriter_flush_after
바이트는 배경 작가가 작성하여 OS가 기본 스토리지에 이러한 글을 발행하도록 강요하려고 시도했습니다. 그렇게하면 커널 페이지 캐시의 더러운 데이터의 양이 제한되어 시점의 가능성을 줄입니다.fsync
는 체크 포인트의 끝에서 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 작성할 때 발행됩니다. 종종 트랜잭션 대기 시간이 크게 줄어들지 만, 특히보다 큰 워크로드가있는 경우도 있습니다.shared_buffers이지만 성능이 저하 될 수있는 OS의 페이지 캐시보다 작습니다. 이 토토 핫은 일부 플랫폼에 영향을 미치지 않을 수 있습니다. 유효한 범위는 사이입니다.0
, 강제 쓰기 백을 비활성화하고2MB
. 기본값은512KB
On Linux,0
다른 곳. (만약에blcksz
는 8KB가 아니며 기본값 및 최대 값은 비례 적으로 비례합니다.)이 매개 변수는에서만 토토 핫할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
작은 값bgwriter_lru_maxpages
및bgwriter_lru_multiplier
배경 작성자로 인한 추가 I/O 부하를 줄이지 만 서버 프로세스가 스스로 쓰기를 발행하여 대화식 쿼리를 지연시켜야 할 가능성이 높아집니다..
exply_io_concurrency
(정수
)동시 디스크 I/O 작업의 수를 토토 핫합니다.PostgreSQL기대는 동시에 실행될 수 있습니다. 이 값을 높이면 개인이있는 I/O 운영 수가 증가합니다PostgreSQL세션은 병렬로 시작하려고 시도합니다. 허용 범위는 1 ~ 1000 또는 비동기 I/O 요청의 발급을 비활성화하기 위해 0입니다. 현재이 토토 핫은 비트 맵 힙 스캔에만 영향을 미칩니다.
자기 드라이브의 경우,이 토토 핫의 좋은 출발점은 데이터베이스에 사용되는 RAID 0 Stripe 또는 Raid 1 미러로 구성된 별도의 드라이브 수입니다. (RAID 5의 경우 패리티 드라이브를 계산해서는 안됩니다.) 그러나 데이터베이스가 종종 동시 세션으로 발행 된 여러 쿼리로 종종 바쁘면 더 낮은 값이 디스크 배열을 바쁘게 유지하기에 충분할 수 있습니다. 디스크를 바쁘게 유지하는 데 필요한 것보다 높은 값은 추가 CPU 오버 헤드 만 발생합니다. SSD 및 기타 메모리 기반 스토리지는 종종 많은 동시 요청을 처리 할 수 있으므로 최상의 가치는 수백에있을 수 있습니다.
비동기 I/O는 효과적인 것에 따라 다릅니다posix_fadvise
일부 운영 체제가 부족한 기능. 함수가 존재하지 않으면이 매개 변수를 0으로 토토 핫하면 0으로 토토 핫하면 오류가 발생합니다. 일부 운영 체제 (예 : Solaris)에서는 기능이 존재하지만 실제로 아무것도하지 않습니다.
기본값은 지원되는 시스템에서 1입니다. 그렇지 않으면 0.이 값은 같은 이름의 테이블 스페이스 매개 변수를 토토 핫하여 특정 테이블 스페이스의 테이블에 대해 재정의 될 수 있습니다 (참조테이블 스페이스 대체).
max_worker_processes
(Integer
)시스템이 지원할 수있는 최대 백그라운드 프로세스 수를 토토 핫합니다. 이 매개 변수는 서버 시작시에만 토토 핫할 수 있습니다. 기본값은 8입니다.
대기 서버를 실행할 때이 매개 변수를 마스터 서버와 동일하거나 더 높은 값으로 토토 핫해야합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.
이 값을 변경할 때 조정을 고려하십시오max_parallel_workers, max_parallel_mainenage_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 : 문서 : 11 : 15 장 메이저 토토 사이트 쿼리.
max_parallel_mainencement_workers
(정수
)단일 유틸리티 명령으로 시작할 수있는 최대 평행 작업자 수를 토토 핫합니다. 현재 병렬 작업자의 사용을 지원하는 유일한 병렬 유틸리티 명령은입니다.색인 생성
, 그리고 B-Tree 지수를 구축 할 때만. 평행 근로자는에 의해 토토 핫된 프로세스 풀에서 가져옵니다.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병렬 작업자는 해당 토토 핫에 의해 토토 핫된 작업자 프로세스 풀에서 가져 오기 때문에 효과가 없습니다.
backend_flush_after
(정수
)backend_flush_after
바이트는 단일 백엔드에 의해 작성되었으며, OS가 기본 저장소에 이러한 글을 발행하도록 강제 시도. 그렇게하면 커널 페이지 캐시의 더러운 데이터의 양이 제한되어 시점의 가능성을 줄입니다.fsync
는 체크 포인트의 끝에서 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 작성할 때 발행됩니다. 종종 트랜잭션 대기 시간이 크게 줄어들지 만, 특히보다 큰 워크로드가있는 경우도 있습니다.shared_buffers그러나 성능이 저하 될 수있는 OS의 페이지 캐시보다 작습니다. 이 토토 핫은 일부 플랫폼에 영향을 미치지 않을 수 있습니다. 유효한 범위는 사이입니다.0
, 강제 쓰기 백을 비활성화하고2MB
. 기본값은0
, 즉 강제 쓰기 백. (만약에blcksz
8KB가 아니며, 최대 값은 비례 적으로 비례합니다.)
Old_snapshot_threshold
(정수
)스냅 샷을 사용할 위험없이 사용할 수있는 최소 시간을 토토 핫합니다스냅 샷 너무 오래된
스냅 샷을 사용할 때 오류가 발생합니다. 이 매개 변수는 서버 시작에서만 토토 핫할 수 있습니다.
임계 값을 넘어서, 오래된 데이터가 청소 될 수 있습니다. 이것은 오랫동안 사용중인 스냅 샷에 팽창을 방지하는 데 도움이 될 수 있습니다. 스냅 샷에 표시되는 데이터 정리로 인해 잘못된 결과를 방지하려면 스냅 샷 이이 임계 값보다 오래된 경우 오류가 생성되고 스냅 샷이 스냅 샷을 구축 한 후 수정 된 페이지를 읽는 데 사용됩니다..
값-1
이 기능을 비활성화하고 기본값입니다. 생산 작업에 유용한 값은 아마도 적은 시간에서 며칠까지 다양합니다. 토토 핫은 세분화 된 분과 적은 숫자로 강요됩니다 (예 :0
또는1min
)는 때때로 테스트에 유용 할 수 있기 때문에 허용됩니다. 만큼 높은 토토 핫이지만60D
허용됩니다. 많은 워크로드에서 극도의 부풀어 오르거나 트랜잭션 ID 랩 어라운드가 훨씬 짧은 시간 프레임에서 발생할 수 있습니다.
이 기능이 활성화되면 관계가 끝날 때의 자유 공간은 운영 체제에 해제 할 수 없습니다.스냅 샷 너무 오래된
조건. 관계에 할당 된 모든 공간은 명시 적으로 해제되지 않는 한 해당 관계 내에서만 재사용에 대한 관계와 관련된 관계가 남아 있습니다 (예 :진공 Full
).
이 토토 핫은 특정 상황에서 오류가 생성되도록 보장하려고 시도하지 않습니다. 실제로, 결과 세트를 구체화 한 커서에서 올바른 결과를 생성 할 수 있다면 참조 테이블의 기본 행이 진공 청소 된 경우에도 오류가 발생하지 않습니다. 일부 테이블은 조기에 안전하게 진공 청소기를 청소할 수 없으므로 시스템 카탈로그와 같은이 토토 핫의 영향을받지 않습니다. 이러한 테이블의 경우이 토토 핫은 부풀어 오르거나 A의 가능성을 만들지 않습니다.스냅 샷 너무 오래된
스캔의 오류.