이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.사설 토토 PostgreSQL : 문서 : 17 : 19.4. 자원 소비버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

19.4. 리소스 소비

19.4.1. 메모리

shared_buffers (정수)

데이터베이스 서버가 공유 메모리 버퍼에 사용하는 메모리 양을 토토 핫합니다. 기본값은 일반적으로 128MB입니다(128MB), 그러나 커널 토토 핫이 이를 지원하지 않는 경우에는 더 적을 수 있습니다(initdb). 이 토토 핫은 128KB 이상이어야 합니다. (기본값이 아님BLCKSZ최소값을 변경합니다.) 그러나 좋은 성능을 위해서는 일반적으로 최소값보다 훨씬 높은 토토 핫이 필요합니다. 이 매개변수는 서버 시작 시에만 토토 핫할 수 있습니다.

RAM이 1GB 이상인 전용 데이터베이스 서버가 있는 경우 합리적인 시작 값shared_buffers은 시스템 메모리의 25%입니다. 더 큰 토토 핫이 필요한 일부 작업 부하가 있습니다.shared_buffers효과적이지만, 왜냐하면포스트그레SQL또한 운영 체제 캐시에 의존하므로 RAM의 40% 이상을 할당할 가능성은 거의 없습니다.shared_buffers더 적은 양보다 더 잘 작동합니다. 더 큰 토토 핫:shared_buffers일반적으로 해당 증가가 필요합니다.max_wal_size, 대량의 신규 또는 변경된 데이터를 장기간에 걸쳐 기록하는 프로세스를 분산시키기 위해.

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

거대한_페이지 (열거형)

주 공유 메모리 영역에 대용량 페이지가 요청되는지 여부를 제어합니다. 유효한 값은 다음과 같습니다.시도해 보세요(기본값),켜짐꺼짐. 와 함께거대한_페이지다음으로 토토 핫됨시도해 보세요, 서버는 거대한 페이지를 요청하려고 시도하지만 실패하면 기본값으로 돌아갑니다. 와 함께켜짐, 대용량 페이지 요청에 실패하면 서버가 시작되지 않습니다. 와 함께꺼짐, 대용량 페이지는 요청되지 않습니다.

현재 이 토토 핫은 Linux 및 Windows에서만 지원됩니다. 다음으로 토토 핫된 경우 다른 시스템에서는 토토 핫이 무시됩니다.시도해 보세요.

대규모 페이지를 사용하면 페이지 테이블이 작아지고 메모리 관리에 소요되는 CPU 시간이 줄어들어 성능이 향상됩니다. Linux에서 방대한 페이지를 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.섹션 18.4.5.

대형 페이지는 Windows에서 대형 페이지로 알려져 있습니다. 이를 사용하려면 실행되는 Windows 사용자 계정에 사용자 권한 메모리의 페이지 잠금을 할당해야 합니다.PostgreSQL. Windows 그룹 정책 도구(gpedit.msc)를 사용하여 메모리에 사용자 권한 잠금 페이지를 할당할 수 있습니다. Windows 서비스가 아닌 독립 실행형 프로세스로 명령 프롬프트에서 데이터베이스 서버를 시작하려면 명령 프롬프트를 관리자로 실행하거나 UAC(사용자 액세스 제어)를 비활성화해야 합니다. UAC가 활성화되면 일반 명령 프롬프트는 시작 시 사용자 권한 메모리의 페이지 잠금을 취소합니다.

이 토토 핫은 주 공유 메모리 영역에만 영향을 미칩니다. Linux, FreeBSD, Illumos와 같은 운영 체제에서도 huge 페이지(또는)를 사용할 수 있습니다.슈퍼페이지 또는대형페이지)의 명시적인 요청 없이 일반 메모리 할당을 위해 자동으로PostgreSQL. Linux에서는 다음과 같이 호출됩니다.투명한 거대 페이지(THP). 해당 기능은 다음과 같은 성능 저하를 일으키는 것으로 알려져 있습니다.PostgreSQL일부 Linux 버전의 일부 사용자에게는 현재 사용이 권장되지 않습니다(명시적인 사용과 달리거대한_페이지).

temp_buffers (정수)

각 데이터베이스 세션에서 사용되는 임시 버퍼의 최대 수를 토토 핫합니다. 이는 임시 테이블에 액세스하는 데에만 사용되는 세션 로컬 버퍼입니다. 기본값은 8MB입니다(8MB). 토토 핫은 개별 세션 내에서 변경할 수 있지만 세션 내에서 임시 테이블을 처음 사용하기 전에만 가능합니다. 이후에 값을 변경하려고 시도해도 해당 세션에는 아무런 영향이 없습니다.

세션은 필요에 따라 다음에 의해 주어진 한도까지 임시 버퍼를 할당합니다.temp_buffers. 실제로 많은 임시 버퍼가 필요하지 않은 세션에서 큰 값을 토토 핫하는 데 드는 비용은 버퍼 설명자, 즉 증분당 약 64바이트에 불과합니다.temp_buffers. 그러나 버퍼가 실제로 사용되면 추가로 8192바이트가 소비됩니다(또는 일반적으로)BLCKSZ바이트).

max_prepared_transactions (정수)

에 있을 수 있는 최대 트랜잭션 수를 토토 핫합니다.준비됨동시에 상태(참조거래 준비). 이 매개변수를 0(기본값)으로 토토 핫하면 준비된 트랜잭션 기능이 비활성화됩니다. 이 매개변수는 서버 시작 시에만 토토 핫할 수 있습니다.

준비된 트랜잭션을 사용할 계획이 없다면 준비된 트랜잭션이 실수로 생성되는 것을 방지하기 위해 이 매개변수를 0으로 토토 핫해야 합니다. 준비된 트랜잭션을 사용하는 경우 아마도 원할 것입니다.max_prepared_transactions적어도 다음과 같은 크기max_connections, 모든 세션에 대기 중인 준비된 트랜잭션이 있을 수 있도록 합니다.

대기 서버를 실행할 때 이 매개변수를 마스터 서버와 같거나 높은 값으로 토토 핫해야 합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.

work_mem (정수)

임시 디스크 파일에 쓰기 전에 내부 정렬 작업 및 해시 테이블에서 사용할 메모리 양을 지정합니다. 값의 기본값은 4MB입니다(4MB). 복잡한 쿼리는 동시에 여러 정렬 및 해시 작업을 수행할 수 있으며, 각 작업은 일반적으로 임시 파일에 데이터 쓰기를 시작하기 전에 이 값이 지정하는 만큼의 메모리를 사용할 수 있습니다. 또한 실행 중인 여러 세션이 이러한 작업을 동시에 수행할 수도 있습니다. 따라서 사용된 총 메모리는 다음 값의 몇 배가 될 수 있습니다.work_mem; 값을 선택할 때 이 사실을 명심해야 합니다. 정렬 작업은 다음에 사용됩니다.주문 기준, 독특및 병합 조인. 해시 테이블은 해시 조인, 해시 기반 집계 및 해시 기반 처리에 사용됩니다.IN하위 쿼리.

maintenance_work_mem (정수)

다음과 같은 유지 관리 작업에 사용할 최대 메모리 양을 지정합니다.진공, 색인 생성테이블 변경 외래 키 추가. 기본값은 64MB입니다(64MB). 데이터베이스 세션에서는 이러한 작업 중 하나만 실행할 수 있고 설치 시 일반적으로 동시에 실행되는 작업이 많지 않으므로 이 값을 다음보다 훨씬 크게 토토 핫하는 것이 안전합니다.work_mem. 토토 핫이 크면 데이터베이스 덤프 복원 성능이 향상될 수 있습니다.

autovacuum이 실행되면 최대autovacuum_max_workers회 이 메모리가 할당될 수 있으므로 기본값을 너무 높게 토토 핫하지 않도록 주의하세요. 이를 별도로 토토 핫하여 제어하는 것이 유용할 수 있습니다.autovacuum_work_mem.

데드 튜플 식별자 수집의 경우,진공최대값까지만 활용할 수 있습니다.1GB기억.

autovacuum_work_mem (정수)

각 자동 진공 작업자 프로세스에서 사용할 최대 메모리 양을 지정합니다. 기본값은 -1이며, 이는의 값을 나타냅니다.maintenance_work_mem21975_22047진공다른 컨텍스트에서 실행될 때. 이 매개변수는에서만 토토 핫할 수 있습니다.postgresql.conf파일 또는 서버 명령줄에서.

데드 튜플 식별자 수집의 경우 autovacuum은 최대값까지만 활용할 수 있습니다.1GB메모리의 토토 핫autovacuum_work_mem이 값보다 높은 값은 테이블을 스캔하는 동안 autovacuum이 수집할 수 있는 데드 튜플 수에 영향을 주지 않습니다.

max_stack_깊이 (정수)

서버 실행 스택의 최대 안전 깊이를 지정합니다. 이 매개변수의 이상적인 토토 핫은 커널이 적용하는 실제 스택 크기 제한입니다(다음에서 토토 핫).ulimit -s또는 이에 상응하는 로컬), 1MB 정도의 안전 여유가 적습니다. 스택 깊이는 서버의 모든 루틴에서 확인되지 않고 표현식 평가와 같이 잠재적으로 재귀적인 주요 루틴에서만 확인되므로 안전 여유가 필요합니다. 기본 토토 핫은 2MB입니다(2MB)은 보수적으로 규모가 작고 충돌 위험이 낮습니다. 그러나 복잡한 기능을 실행하기에는 너무 작을 수 있습니다. 슈퍼유저만 이 토토 핫을 변경할 수 있습니다.

토토 핫max_stack_깊이실제 커널 제한보다 높으면 폭주 재귀 함수가 개별 백엔드 프로세스를 중단시킬 수 있음을 의미합니다. 다음과 같은 플랫폼에서PostgreSQL커널 제한을 결정할 수 있지만 서버는 이 변수가 안전하지 않은 값으로 토토 핫되는 것을 허용하지 않습니다. 그러나 모든 플랫폼이 정보를 제공하는 것은 아니므로 값 선택 시 주의하는 것이 좋습니다.

dynamic_shared_memory_type (열거형)

서버가 사용해야 하는 동적 공유 메모리 구현을 지정합니다. 가능한 값은 다음과 같습니다.posix(다음을 사용하여 할당된 POSIX 공유 메모리의 경우shm_open), sysv(다음을 통해 할당된 System V 공유 메모리의 경우shmget), (Windows 공유 메모리의 경우),mmap(데이터 디렉토리에 저장된 메모리 매핑 파일을 사용하여 공유 메모리를 시뮬레이션하기 위해) 및없음(이 기능을 비활성화하려면). 모든 플랫폼에서 모든 값이 지원되는 것은 아닙니다. 지원되는 첫 번째 옵션은 해당 플랫폼의 기본값입니다. 의 사용mmap25022_25257pg_dynshmem디렉토리가 RAM 디스크에 저장되어 있거나 다른 공유 메모리 기능을 사용할 수 없는 경우.

19.4.2. 디스크

temp_file_limit (정수)

프로세스가 임시 파일(예: 정렬 및 해시 임시 파일 또는 보류 커서용 저장 파일)에 사용할 수 있는 최대 디스크 공간을 지정합니다. 이 한도를 초과하려는 거래는 취소됩니다. 값은 킬로바이트 단위로 지정됩니다.-1(기본값)은 제한이 없음을 의미합니다. 슈퍼유저만 이 토토 핫을 변경할 수 있습니다.

이 토토 핫은 주어진 특정 파일이 사용하는 모든 임시 파일이 어느 순간에 사용하는 총 공간을 제한합니다.PostgreSQL프로세스. 쿼리 실행에서 배후에서 사용되는 임시 파일과 달리 명시적 임시 테이블에 사용되는 디스크 공간은 다음과 같습니다.아님이 한도에 포함됩니다.

19.4.3. 커널 리소스 사용량

max_files_per_process (정수)

각 서버 하위 프로세스에 허용되는 동시에 열려 있는 파일의 최대 수를 토토 핫합니다. 기본값은 1,000개 파일입니다. 커널이 안전한 프로세스별 제한을 적용하는 경우 이 토토 핫에 대해 걱정할 필요가 없습니다. 그러나 일부 플랫폼(특히 대부분의 BSD 시스템)에서는 많은 프로세스가 모두 그렇게 많은 파일을 열려고 하면 커널은 개별 프로세스가 시스템이 실제로 지원할 수 있는 것보다 더 많은 파일을 열 수 있도록 허용합니다. 만약 당신이 본다면열린 파일이 너무 많습니다.실패, 이 토토 핫을 줄여보세요. 이 매개변수는 서버 시작 시에만 토토 핫할 수 있습니다.

19.4.4. 비용 기반 진공 지연

실행 중진공그리고분석명령을 사용하면 시스템은 수행되는 다양한 I/O 작업의 예상 비용을 추적하는 내부 카운터를 유지 관리합니다. 누적 비용이 한도에 도달한 경우(다음으로 지정됨)vacuum_cost_limit), 작업을 수행하는 프로세스는 다음에서 지정한 대로 짧은 시간 동안 절전 모드로 전환됩니다.vacuum_cost_delay. 그런 다음 카운터를 재토토 핫하고 실행을 계속합니다.

이 기능의 목적은 관리자가 동시 데이터베이스 활동에 대한 이러한 명령의 I/O 영향을 줄일 수 있도록 하는 것입니다. 다음과 같은 유지 관리 명령이 중요하지 않은 상황이 많이 있습니다.진공그리고분석빨리 끝내세요; 그러나 일반적으로 이러한 명령이 다른 데이터베이스 작업을 수행하는 시스템 기능을 크게 방해하지 않는 것이 매우 중요합니다. 비용 기반 진공 지연은 관리자가 이를 달성할 수 있는 방법을 제공합니다.

이 기능은 수동으로 발행된 경우 기본적으로 비활성화되어 있습니다.진공명령. 활성화하려면 다음을 토토 핫하세요.vacuum_cost_delay변수를 0이 아닌 값으로 변경합니다.

vacuum_cost_delay (정수)

비용 한도를 초과했을 때 프로세스가 휴면 상태가 되는 시간(밀리초)입니다. 기본값은 0이며, 이는 비용 기반 진공 지연 기능을 비활성화합니다. 양수 값은 비용 기반 진공 청소를 가능하게 합니다. 많은 시스템에서 절전 지연의 효과적인 해결 방법은 10밀리초입니다. 토토 핫vacuum_cost_delay10의 배수가 아닌 값에 대한 값은 다음으로 높은 10의 배수로 토토 핫하는 것과 동일한 결과를 가질 수 있습니다.

비용 기반 진공청소기를 사용할 때 다음에 대한 적절한 값vacuum_cost_delay보통 10~20밀리초 정도로 매우 작습니다. 진공의 리소스 소비 조정은 다른 진공 비용 매개변수를 변경하여 수행하는 것이 가장 좋습니다.

vacuum_cost_page_hit (정수)

공유 버퍼 캐시에서 발견된 버퍼를 비우기 위한 예상 비용입니다. 버퍼 풀을 잠그고, 공유 해시 테이블을 조회하고, 페이지의 콘텐츠를 스캔하는 데 드는 비용을 나타냅니다. 기본값은 1입니다.

vacuum_cost_page_miss (정수)

디스크에서 읽어야 하는 버퍼를 진공청소하는 데 드는 예상 비용입니다. 이는 버퍼 풀을 잠그고, 공유 해시 테이블을 조회하고, 디스크에서 원하는 블록을 읽고, 해당 내용을 스캔하려는 노력을 나타냅니다. 기본값은 10입니다.

vacuum_cost_page_dirty (정수)

이전에는 깨끗했던 블록을 진공으로 수정할 때 청구되는 예상 비용입니다. 이는 더티 블록을 디스크로 다시 플러시하는 데 필요한 추가 I/O를 나타냅니다. 기본값은 20입니다.

vacuum_cost_limit (정수)

청소 과정을 정지시키는 누적 비용. 기본값은 200입니다.

참고

중요한 잠금을 유지하는 특정 작업이 있으므로 가능한 한 빨리 완료해야 합니다. 이러한 작업 중에는 비용 기반 진공 지연이 발생하지 않습니다. 따라서 비용이 지정된 한도보다 훨씬 높게 누적될 가능성이 있습니다. 이러한 경우 쓸데없이 긴 지연을 방지하기 위해 실제 지연은 다음과 같이 계산됩니다.vacuum_cost_delay * accumulated_balance / vacuum_cost_limit최대vacuum_cost_delay * 4.

19.4.5. 배경 작성자

다음이라는 별도의 서버 프로세스가 있습니다.배경 작가, 그 기능은 쓰기를 실행하는 것입니다.더러운(신규 또는 수정) 공유 버퍼. 정리된 공유 버퍼의 수가 부족한 것으로 나타나면 백그라운드 작성자는 일부 더티 버퍼를 파일 시스템에 쓰고 이를 정리된 것으로 표시합니다. 이렇게 하면 사용자 쿼리를 처리하는 서버 프로세스가 깨끗한 버퍼를 찾을 수 없고 더티 버퍼 자체를 작성해야 할 가능성이 줄어듭니다. 그러나 백그라운드 기록기는 I/O 로드의 전체적인 순 증가를 초래합니다. 그렇지 않으면 반복적으로 더티된 페이지가 체크포인트 간격당 한 번만 기록될 수 있지만 백그라운드 기록기는 동일한 간격으로 더러워지면 페이지를 여러 번 쓸 수 있기 때문입니다. 이 하위 섹션에서 논의된 매개변수는 지역적 필요에 맞게 동작을 조정하는 데 사용될 수 있습니다.

bgwriter_delay (정수)

백그라운드 기록기에 대한 활동 라운드 사이의 지연을 지정합니다. 각 라운드에서 작성자는 일정 수의 더티 버퍼에 대한 쓰기를 발행합니다(다음 매개변수로 제어 가능). 그런 다음 잠을 잔다.bgwriter_delay밀리초 단위로 반복됩니다. 그러나 버퍼 풀에 더티 버퍼가 없으면 다음과 관계없이 더 긴 절전 모드로 들어갑니다.bgwriter_delay. 기본값은 200밀리초(200ms). 많은 시스템에서 절전 지연의 효과적인 해결 방법은 10밀리초입니다. 토토 핫bgwriter_delay10의 배수가 아닌 값에 대한 값은 다음으로 높은 10의 배수로 토토 핫하는 것과 동일한 결과를 가질 수 있습니다. 이 매개변수는postgresql.conf파일 또는 서버 명령줄에서.

bgwriter_lru_maxpages (정수)

각 라운드에서 백그라운드 작성자는 이 만큼의 버퍼만 기록합니다. 이 값을 0으로 토토 핫하면 백그라운드 쓰기가 비활성화됩니다. (별도의 전용 보조 프로세스에 의해 관리되는 체크포인트는 영향을 받지 않습니다.) 기본값은 100개 버퍼입니다. 이 매개변수는에서만 토토 핫할 수 있습니다.postgresql.conf파일 또는 서버 명령줄에서.

bgwriter_lru_multiplier (부동 소수점)

각 라운드에 기록된 더티 버퍼의 수는 최근 라운드 동안 서버 프로세스에 필요한 새 버퍼의 수를 기반으로 합니다. 평균 최근 수요에 다음을 곱합니다.bgwriter_lru_multiplier다음 라운드 동안 필요할 버퍼 수의 추정치에 도달합니다. 더티 버퍼는 사용 가능한 깨끗하고 재사용 가능한 버퍼가 많아질 때까지 기록됩니다. (단, 그 이상은 안됩니다.bgwriter_lru_maxpages버퍼는 라운드마다 기록됩니다.) 따라서 1.0 토토 핫은 다음을 나타냅니다.제때에필요할 것으로 예상되는 버퍼 수를 정확하게 쓰는 정책입니다. 값이 클수록 수요 급증에 대한 완충 효과가 제공되는 반면, 값이 작을수록 의도적으로 서버 프로세스에서 쓰기가 수행되도록 둡니다. 기본값은 2.0입니다. 이 매개변수는에서만 토토 핫할 수 있습니다.postgresql.conf파일 또는 서버 명령줄에서.

bgwriter_flush_after (정수)

이상일 때마다bgwriter_flush_after바이트가 백그라운드 작성자에 의해 작성되었습니다. OS가 기본 저장소에 이러한 쓰기를 실행하도록 강제로 시도합니다. 그렇게 하면 커널 페이지 캐시에 있는 더티 데이터의 양이 제한되어 다음과 같은 경우 중단 가능성이 줄어듭니다.fsync은 체크포인트가 끝날 때 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 쓸 때 발행됩니다. 이로 인해 트랜잭션 지연 시간이 크게 단축되는 경우가 많지만, 특히 워크로드가 다음보다 큰 경우도 있습니다.shared_buffers, 그러나 OS의 페이지 캐시보다 작으므로 성능이 저하될 수 있습니다. 이 토토 핫은 일부 플랫폼에는 영향을 미치지 않을 수 있습니다. 유효한 범위는 다음 사이입니다.038738_387792MB. 기본값은512kB리눅스의 경우,0다른 곳에. (만약BLCKSZ은 8kB가 아니며 기본값과 최대값은 이에 비례하여 확장됩니다.) 이 매개변수는postgresql.conf파일 또는 서버 명령줄에서.

더 작은 값bgwriter_lru_maxpages그리고bgwriter_lru_multiplier백그라운드 작성기로 인한 추가 I/O 로드를 줄이되 서버 프로세스가 스스로 쓰기를 실행해야 하므로 대화형 쿼리가 지연될 가능성이 높아집니다.

19.4.6. 비동기 동작

효과적인_io_concurrency (정수)

동시 디스크 I/O 작업 수를 토토 핫합니다.PostgreSQL동시에 실행될 수 있을 것으로 예상됩니다. 이 값을 높이면 개인이 수행하는 I/O 작업 수가 늘어납니다.PostgreSQL세션이 병렬로 시작을 시도합니다. 허용되는 범위는 1~1000이며, 비동기 I/O 요청 발행을 비활성화하려면 0입니다. 현재 이 토토 핫은 비트맵 힙 스캔에만 영향을 미칩니다.

자기 드라이브의 경우 이 토토 핫의 좋은 시작점은 데이터베이스에 사용되는 RAID 0 스트라이프 또는 RAID 1 미러를 구성하는 별도의 드라이브 수입니다. (RAID 5의 경우 패리티 드라이브는 계산되지 않습니다.) 그러나 동시 세션에서 실행된 여러 쿼리로 인해 데이터베이스가 자주 사용되는 경우 더 낮은 값으로도 디스크 어레이를 계속 사용하는 데 충분할 수 있습니다. 디스크를 계속 사용하는 데 필요한 것보다 높은 값은 추가 CPU 오버헤드만 발생시킵니다. SSD 및 기타 메모리 기반 스토리지는 많은 동시 요청을 처리할 수 있는 경우가 많으므로 가장 좋은 가치는 수백 개일 수 있습니다.

비동기 I/O는 효과적인 방법에 따라 달라집니다.posix_fadvise기능, 일부 운영 체제에는 부족함. 해당 기능이 없으면 이 매개변수를 0이 아닌 다른 값으로 토토 핫하면 오류가 발생합니다. 일부 운영 체제(예: Solaris)에서는 이 기능이 있지만 실제로는 아무 작업도 수행하지 않습니다.

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

max_worker_processes (정수)

시스템이 지원할 수 있는 최대 백그라운드 프로세스 수를 토토 핫합니다. 이 매개변수는 서버 시작 시에만 토토 핫할 수 있습니다. 기본값은 8입니다.

대기 서버를 실행할 때 이 매개변수를 마스터 서버와 같거나 높은 값으로 토토 핫해야 합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.

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

max_parallel_workers_per_gather (정수)

단일로 시작할 수 있는 최대 작업자 수를 토토 핫합니다.집결또는집합 병합노드. 병렬 작업자는 다음에 의해 토토 핫된 프로세스 풀에서 가져옵니다.max_worker_processes, 제한됨max_parallel_workers. 요청한 작업자 수는 실제로 런타임에 사용 가능하지 않을 수 있습니다. 이런 일이 발생하면 계획은 예상보다 적은 수의 작업자로 실행되므로 비효율적일 수 있습니다. 기본값은 2입니다. 이 값을 0으로 토토 핫하면 병렬 쿼리 실행이 비활성화됩니다.

병렬 쿼리는 비병렬 쿼리보다 훨씬 더 많은 리소스를 소비할 수 있습니다. 각 작업자 프로세스는 추가 사용자 세션과 마찬가지로 시스템에 대략 동일한 영향을 미치는 완전히 별도의 프로세스이기 때문입니다. 이 토토 핫의 값을 선택할 때뿐만 아니라 리소스 활용도를 제어하는 다른 토토 핫을 구성할 때에도 이 점을 고려해야 합니다.work_mem. 다음과 같은 리소스 제한work_mem은 각 작업자에게 개별적으로 적용됩니다. 즉, 전체 사용률은 일반적으로 단일 프로세스보다 모든 프로세스에서 훨씬 높을 수 있습니다. 예를 들어 작업자 4개를 사용하는 병렬 쿼리는 작업자를 전혀 사용하지 않는 쿼리에 비해 CPU 시간, 메모리, I/O 대역폭 등을 최대 5배까지 사용할 수 있습니다.

병렬 쿼리에 대한 자세한 내용은 참조PostgreSQL : 문서 : 11 : 15 장 메이저 토토 사이트 쿼리.

max_parallel_maintenance_workers (정수)

단일 유틸리티 명령으로 시작할 수 있는 최대 병렬 작업자 수를 토토 핫합니다. 현재 병렬 작업자 사용을 지원하는 유일한 병렬 유틸리티 명령은 다음과 같습니다.색인 생성, B-트리 인덱스를 구축하는 경우에만 해당됩니다. 병렬 작업자는 다음에 의해 토토 핫된 프로세스 풀에서 가져옵니다.max_worker_processes, 제한됨max_parallel_workers. 요청한 작업자 수는 실제로 런타임에 사용 가능하지 않을 수 있습니다. 이런 일이 발생하면 유틸리티 작업은 예상보다 적은 수의 작업자로 실행됩니다. 기본값은 2입니다. 이 값을 0으로 토토 핫하면 유틸리티 명령으로 병렬 작업자를 사용할 수 없습니다.

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

max_parallel_workers (정수)

시스템이 병렬 작업을 지원할 수 있는 최대 작업자 수를 토토 핫합니다. 기본값은 8입니다. 이 값을 늘리거나 줄일 때 조정도 고려하세요.max_parallel_maintenance_workers그리고max_parallel_workers_per_gather. 또한 이 값에 대한 토토 핫은 다음보다 높습니다.max_worker_processes병렬 작업자는 해당 토토 핫에 의해 토토 핫된 작업자 프로세스 풀에서 가져오기 때문에 효과가 없습니다.

backend_flush_after (정수)

이상일 때마다backend_flush_after바이트가 단일 백엔드에 의해 기록되었습니다. OS가 기본 저장소에 이러한 쓰기를 실행하도록 강제로 시도합니다. 그렇게 하면 커널 페이지 캐시에 있는 더티 데이터의 양이 제한되어 다음과 같은 경우 중단 가능성이 줄어듭니다.fsync은 체크포인트가 끝날 때 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 쓸 때 발행됩니다. 이로 인해 트랜잭션 지연 시간이 크게 단축되는 경우가 많지만, 특히 워크로드가 다음보다 큰 경우도 있습니다.shared_buffers, 그러나 OS의 페이지 캐시보다 작으므로 성능이 저하될 수 있습니다. 이 토토 핫은 일부 플랫폼에는 영향을 미치지 않을 수 있습니다. 유효한 범위는 다음 사이입니다.048741_487822MB. 기본값은0, 즉 강제 쓰기 저장이 없습니다. (만약BLCKSZ은 8kB가 아니며 최대값은 이에 비례하여 확장됩니다.)

old_snapshot_threshold (정수)

스냅샷을 위험 없이 사용할 수 있는 최소 시간을 토토 핫합니다.스냅샷이 너무 오래됨스냅샷을 사용할 때 오류가 발생했습니다. 이 매개변수는 서버 시작 시에만 토토 핫할 수 있습니다.

임계값을 초과하면 오래된 데이터가 제거될 수 있습니다. 이렇게 하면 오랫동안 사용 중인 스냅샷이 부풀어오르는 것을 방지할 수 있습니다. 스냅샷에 표시될 데이터 정리로 인한 잘못된 결과를 방지하기 위해 스냅샷이 이 임계값보다 오래되고 스냅샷이 빌드된 이후 수정된 페이지를 읽는 데 스냅샷이 사용될 때 오류가 생성됩니다.

-1이 기능을 비활성화하며 기본값입니다. 생산 작업에 유용한 값은 아마도 짧은 시간부터 며칠까지 다양합니다. 토토 핫은 분 단위 및 작은 숫자(예:0또는1분)은 때때로 테스트에 유용할 수 있기 때문에 허용됩니다. 토토 핫이 다음과 같이 높은 동안60d이 허용됩니다. 많은 워크로드에서 극단적인 팽창 또는 트랜잭션 ID 랩어라운드가 훨씬 더 짧은 시간 내에 발생할 수 있다는 점에 유의하세요.

이 기능이 활성화되면 관계 끝의 여유 공간을 운영 체제에 해제할 수 없습니다. 이는 다음을 감지하는 데 필요한 정보를 제거할 수 있기 때문입니다.스냅샷이 너무 오래됨조건. 관계에 할당된 모든 공간은 명시적으로 해제되지 않는 한(예: with진공이 가득 참).

이 토토 핫은 특정 상황에서 오류가 생성된다는 것을 보장하지 않습니다. 실제로 결과 집합을 구체화한 커서(예를 들어)에서 올바른 결과를 생성할 수 있는 경우 참조 테이블의 기본 행을 제거하더라도 오류가 생성되지 않습니다. 일부 테이블은 조기에 안전하게 정리할 수 없으므로 시스템 카탈로그와 같은 이 토토 핫의 영향을 받지 않습니다. 그러한 테이블의 경우 이 토토 핫은 부풀림을 줄이거나 다음과 같은 가능성을 생성하지 않습니다.스냅샷이 너무 오래됨스캔 중 오류가 발생했습니다.