shared_buffers (정수) #데이터베이스 서버가 공유 메모리 버퍼에 사용하는 메모리 양을 토토 커뮤니티합니다. 기본값은 일반적으로 128MB입니다(128MB), 그러나 커널 토토 커뮤니티이 이를 지원하지 않는 경우에는 더 적을 수 있습니다(이 과정에서 결정됨).initdb). 이 토토 커뮤니티은 128KB 이상이어야 합니다. 그러나 일반적으로 좋은 성능을 위해서는 최소값보다 훨씬 높은 토토 커뮤니티이 필요합니다. 이 값을 단위 없이 지정하면 블록으로 간주됩니다. 즉,BLCKSZ바이트, 일반적으로 8kB. (기본값이 아님BLCKSZ최소값을 변경하세요.) 이 매개변수는 서버 시작 시에만 토토 커뮤니티할 수 있습니다.
RAM이 1GB 이상인 전용 데이터베이스 서버가 있는 경우 합리적인 시작 값shared_buffers는 시스템 메모리의 25%입니다. 더 큰 토토 커뮤니티이 필요한 일부 작업 부하가 있습니다.shared_buffers효과적이지만 왜냐하면PostgreSQL또한 운영 체제 캐시에 의존하므로 RAM의 40% 이상을 할당할 가능성은 거의 없습니다.shared_buffers더 적은 양보다 더 잘 작동합니다. 더 큰 토토 커뮤니티:shared_buffers보통 그에 상응하는 증가가 필요합니다max_wal_size, 대량의 신규 또는 변경된 데이터를 장기간에 걸쳐 작성하는 프로세스를 분산시키기 위해.
RAM이 1GB 미만인 시스템에서는 운영 체제에 적절한 공간을 남겨두기 위해 더 적은 비율의 RAM이 적합합니다.
거대한_페이지 (열거형) #주 공유 메모리 영역에 대용량 페이지가 요청되는지 여부를 제어합니다. 유효한 값은 다음과 같습니다.시도해 보세요(기본값),켜짐및꺼짐. 와 함께거대한_페이지다음으로 토토 커뮤니티됨시도해 보세요, 서버는 거대한 페이지를 요청하려고 시도하지만 실패하면 기본값으로 돌아갑니다. 와 함께켜짐, 대용량 페이지 요청에 실패하면 서버가 시작되지 않습니다. 와 함께꺼짐, 대용량 페이지는 요청되지 않습니다. 거대한 페이지의 실제 상태는 서버 변수로 표시됩니다.huge_pages_status.
현재 이 토토 커뮤니티은 Linux 및 Windows에서만 지원됩니다. 로 토토 커뮤니티하면 다른 시스템에서는 토토 커뮤니티이 무시됩니다.시도해 보세요. Linux에서는 다음 경우에만 지원됩니다.shared_memory_type다음으로 토토 커뮤니티됨mmap(기본값).
대규모 페이지를 사용하면 페이지 테이블이 작아지고 메모리 관리에 소요되는 CPU 시간이 줄어들어 성능이 향상됩니다. Linux에서 방대한 페이지를 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.섹션 18.4.5.
대형 페이지는 Windows에서 대형 페이지로 알려져 있습니다. 사용하려면 사용자 권한을 할당해야 합니다.“메모리에 페이지 잠금”실행하는 Windows 사용자 계정으로PostgreSQL. Windows 그룹 정책 도구(gpedit.msc)를 사용하여 사용자 권한을 할당할 수 있습니다.“메모리에 페이지 잠금”. Windows 서비스가 아닌 독립 실행형 프로세스로 명령 프롬프트에서 데이터베이스 서버를 시작하려면 명령 프롬프트를 관리자로 실행하거나 UAC(사용자 액세스 제어)를 비활성화해야 합니다. UAC가 활성화되면 일반 명령 프롬프트는 사용자 권한을 취소합니다.“메모리에 페이지 잠금”시작할 때.
이 토토 커뮤니티은 주 공유 메모리 영역에만 영향을 미칩니다. Linux, FreeBSD, Illumos와 같은 운영 체제에서도 huge 페이지(또는)를 사용할 수 있습니다.“슈퍼”페이지 또는“대형”페이지)의 명시적인 요청 없이 일반 메모리 할당을 위해 자동으로포스트그레SQL. Linux에서는 다음과 같이 호출됩니다.“투명한 거대 페이지”(THP). 해당 기능은 다음과 같은 성능 저하를 일으키는 것으로 알려져 있습니다.PostgreSQL일부 Linux 버전의 일부 사용자에게는 현재 사용이 권장되지 않습니다(명시적인 사용과 달리거대한_페이지).
huge_page_size (정수) #활성화된 경우 대용량 페이지의 크기를 제어합니다.거대한_페이지. 기본값은 0(0). 으로 토토 커뮤니티된 경우0, 시스템의 기본 거대 페이지 크기가 사용됩니다. 이 매개변수는 서버 시작 시에만 토토 커뮤니티할 수 있습니다.
최신 64비트 서버 아키텍처에서 일반적으로 사용 가능한 페이지 크기는 다음과 같습니다.2MB그리고1GB(인텔 및 AMD),16MB그리고16GB(IBM POWER) 및64kB, 2MB, 32MB그리고1GB(ARM). 사용법 및 지원에 대한 자세한 내용은 다음을 참조하세요.섹션 18.4.5.
기본값이 아닌 토토 커뮤니티은 현재 Linux에서만 지원됩니다.
temp_buffers (정수) #각 데이터베이스 세션 내에서 임시 버퍼에 사용되는 최대 메모리 양을 토토 커뮤니티합니다. 이는 임시 테이블에 액세스하는 데에만 사용되는 세션 로컬 버퍼입니다. 이 값을 단위 없이 지정하면 블록으로 간주됩니다. 즉,BLCKSZ바이트, 일반적으로 8kB. 기본값은 8MB입니다(8MB). (만약에BLCKSZ은 8kB가 아니며 기본값은 이에 비례하여 확장됩니다.) 이 토토 커뮤니티은 개별 세션 내에서 변경할 수 있지만 세션 내에서 임시 테이블을 처음 사용하기 전에만 변경할 수 있습니다. 이후에 값을 변경하려고 시도해도 해당 세션에는 아무런 영향이 없습니다.
세션은 필요에 따라 다음에 의해 주어진 한도까지 임시 버퍼를 할당합니다.temp_buffers. 실제로 많은 임시 버퍼가 필요하지 않은 세션에서 큰 값을 토토 커뮤니티하는 데 드는 비용은 버퍼 설명자, 즉 증분당 약 64바이트에 불과합니다.temp_buffers. 그러나 버퍼가 실제로 사용되면 추가로 8192바이트가 소비됩니다(또는 일반적으로)BLCKSZ바이트).
max_prepared_transactions (정수) #에 있을 수 있는 최대 트랜잭션 수를 토토 커뮤니티합니다.“준비됨”동시에 상태(참조거래 준비). 이 매개변수를 0(기본값)으로 토토 커뮤니티하면 준비된 트랜잭션 기능이 비활성화됩니다. 이 매개변수는 서버 시작 시에만 토토 커뮤니티할 수 있습니다.
준비된 트랜잭션을 사용할 계획이 없다면 준비된 트랜잭션이 실수로 생성되는 것을 방지하기 위해 이 매개변수를 0으로 토토 커뮤니티해야 합니다. 준비된 트랜잭션을 사용하는 경우 아마도 원할 것입니다.max_prepared_transactions적어도 다음과 같은 크기max_connections, 모든 세션에 대기 중인 준비된 트랜잭션이 있을 수 있도록 합니다.
대기 서버를 실행할 때, 이 매개변수를 기본 서버의 값과 같거나 높은 값으로 토토 커뮤니티해야 합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.
work_mem (정수) #임시 디스크 파일에 쓰기 전에 쿼리 작업(예: 정렬 또는 해시 테이블)에 사용할 기본 최대 메모리 양을 토토 커뮤니티합니다. 이 값을 단위 없이 지정하면 킬로바이트로 간주됩니다. 기본값은 4MB입니다(4MB). 복잡한 쿼리는 동시에 여러 정렬 및 해시 작업을 수행할 수 있으며, 각 작업은 일반적으로 임시 파일에 데이터 쓰기를 시작하기 전에 이 값이 지정하는 만큼의 메모리를 사용할 수 있습니다. 또한 실행 중인 여러 세션이 이러한 작업을 동시에 수행할 수도 있습니다. 따라서 사용된 총 메모리는 다음 값의 몇 배가 될 수 있습니다.work_mem; 값을 선택할 때 이 사실을 명심해야 합니다. 정렬 작업은 다음에 사용됩니다.주문 기준, 독특및 병합 조인. 해시 테이블은 해시 조인, 해시 기반 집계, 메모화 노드 및 해시 기반 처리에 사용됩니다.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은 혼합 작업 부하에 효과적인 경우가 많습니다. 2.0~8.0 이상의 높은 토토 커뮤니티은 다음과 같은 환경에서 효과적일 수 있습니다.work_mem이미 40MB 이상으로 늘어났습니다.
maintenance_work_mem (정수) #다음과 같은 유지 관리 작업에 사용할 최대 메모리 양을 지정합니다.진공, 색인 생성및테이블 변경 외래 키 추가. 이 값을 단위 없이 지정하면 킬로바이트로 간주됩니다. 기본값은 64MB입니다(64MB). 데이터베이스 세션에서는 이러한 작업 중 하나만 실행할 수 있고 설치 시 일반적으로 동시에 실행되는 작업이 많지 않으므로 이 값을 다음보다 훨씬 크게 토토 커뮤니티하는 것이 안전합니다.work_mem. 토토 커뮤니티이 크면 데이터베이스 덤프 복원 성능이 향상될 수 있습니다.
autovacuum이 실행될 때 최대autovacuum_max_workers회 이 메모리가 할당될 수 있으므로 기본값을 너무 높게 토토 커뮤니티하지 않도록 주의하세요. 이를 별도로 토토 커뮤니티하여 제어하는 것이 유용할 수 있습니다.autovacuum_work_mem.
autovacuum_work_mem (정수) #각 자동 진공 작업자 프로세스에서 사용할 최대 메모리 양을 지정합니다. 이 값을 단위 없이 지정하면 킬로바이트로 간주됩니다. 기본값은 -1이며, 이는의 값을 나타냅니다.maintenance_work_mem25989_26061진공다른 컨텍스트에서 실행될 때. 이 매개변수는에서만 토토 커뮤니티할 수 있습니다.postgresql.conf파일 또는 서버 명령줄에서.
vacuum_buffer_usage_limit (정수) #크기를 지정합니다.버퍼 액세스 전략다음에 의해 사용됨진공그리고분석명령. 토토 커뮤니티은0작업에서 원하는 수의 사용을 허용합니다shared_buffers. 그렇지 않은 경우 유효한 크기 범위는 다음과 같습니다.128KB에16GB. 지정된 크기가 크기의 1/8을 초과하는 경우shared_buffers, 크기는 자동으로 해당 값으로 제한됩니다. 기본값은2MB. 이 값을 단위 없이 지정하면 킬로바이트로 간주됩니다. 이 매개변수는 언제든지 토토 커뮤니티할 수 있습니다. 다음에 대해 재정의될 수 있습니다.진공그리고분석통과할 때BUFFER_USAGE_LIMIT옵션. 더 높은 토토 커뮤니티이 허용될 수 있음진공그리고분석더 빠르게 실행하기 위한 것이지만 토토 커뮤니티이 너무 크면 공유 버퍼에서 다른 유용한 페이지가 너무 많이 제거될 수 있습니다.
logical_decoding_work_mem (정수) #디코딩된 변경 사항 중 일부가 로컬 디스크에 기록되기 전에 논리적 디코딩에 사용될 최대 메모리 양을 지정합니다. 이는 논리적 스트리밍 복제 연결에 사용되는 메모리 양을 제한합니다. 기본값은 64MB입니다(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/members(참조표 65.1). 이 값을 단위 없이 지정하면 블록으로 간주됩니다. 즉,BLCKSZ바이트, 일반적으로 8kB. 기본값은32. 이 매개변수는 서버 시작 시에만 토토 커뮤니티할 수 있습니다.
multixact_offset_buffers (정수) #콘텐츠를 캐시하는 데 사용할 공유 메모리의 양을 지정합니다.pg_multixact/오프셋(참조표 65.1). 이 값을 단위 없이 지정하면 블록으로 간주됩니다. 즉,BLCKSZ바이트, 일반적으로 8kB. 기본값은16. 이 매개변수는 서버 시작 시에만 토토 커뮤니티할 수 있습니다.
notify_buffers (정수) #콘텐츠를 캐시하는 데 사용할 공유 메모리의 양을 지정합니다.pg_notify(참조표 65.1). 이 값을 단위 없이 지정하면 블록으로 간주됩니다. 즉,BLCKSZ바이트, 일반적으로 8kB. 기본값은16. 이 매개변수는 서버 시작 시에만 토토 커뮤니티할 수 있습니다.
직렬화 가능_버퍼 (정수) #콘텐츠를 캐시하는 데 사용할 공유 메모리의 양을 지정합니다.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_깊이 (정수) #서버 실행 스택의 최대 안전 깊이를 지정합니다. 이 매개변수의 이상적인 토토 커뮤니티은 커널이 적용하는 실제 스택 크기 제한입니다(다음에서 토토 커뮤니티).ulimit -s또는 이에 상응하는 로컬), 1MB 정도의 안전 여유가 적습니다. 스택 깊이는 서버의 모든 루틴에서 확인되지 않고 잠재적으로 재귀적인 주요 루틴에서만 확인되므로 안전 여유가 필요합니다. 이 값을 단위 없이 지정하면 킬로바이트로 간주됩니다. 기본 토토 커뮤니티은 2MB입니다(2MB)는 보수적으로 규모가 작고 충돌 위험이 낮습니다. 그러나 복잡한 기능을 실행하기에는 너무 작을 수 있습니다. 적절한 권한을 가진 수퍼유저 및 사용자만SET권한으로 이 토토 커뮤니티을 변경할 수 있습니다.
토토 커뮤니티max_stack_깊이실제 커널 제한보다 높으면 폭주 재귀 함수가 개별 백엔드 프로세스를 중단시킬 수 있음을 의미합니다. 다음과 같은 플랫폼에서PostgreSQL커널 제한을 결정할 수 있지만 서버는 이 변수가 안전하지 않은 값으로 토토 커뮤니티되는 것을 허용하지 않습니다. 그러나 모든 플랫폼이 정보를 제공하는 것은 아니므로 값 선택 시 주의하는 것이 좋습니다.
shared_memory_type (열거형) #서버가 보유하는 기본 공유 메모리 영역에 사용해야 하는 공유 메모리 구현을 지정합니다.PostgreSQL의 공유 버퍼 및 기타 공유 데이터. 가능한 값은 다음과 같습니다.mmap(다음을 사용하여 할당된 익명 공유 메모리의 경우mmap), sysv(다음을 통해 할당된 System V 공유 메모리의 경우shmget) 및창(Windows 공유 메모리의 경우). 모든 플랫폼에서 모든 값이 지원되는 것은 아닙니다. 지원되는 첫 번째 옵션은 해당 플랫폼의 기본값입니다. 의 사용sysv37795_37967섹션 18.4.1).
dynamic_shared_memory_type (열거형) #서버가 사용해야 하는 동적 공유 메모리 구현을 지정합니다. 가능한 값은 다음과 같습니다.posix(다음을 사용하여 할당된 POSIX 공유 메모리의 경우shm_open), sysv(다음을 통해 할당된 System V 공유 메모리의 경우shmget), 창(Windows 공유 메모리의 경우) 및mmap(데이터 디렉토리에 저장된 메모리 매핑 파일을 사용하여 공유 메모리를 시뮬레이션하기 위해). 모든 플랫폼에서 모든 값이 지원되는 것은 아닙니다. 처음으로 지원되는 옵션은 일반적으로 해당 플랫폼의 기본값입니다. 의 사용mmap39133_39368pg_dynshmem디렉토리가 RAM 디스크에 저장되어 있거나 다른 공유 메모리 기능을 사용할 수 없는 경우.
min_dynamic_shared_memory (정수) #병렬 쿼리에 사용하기 위해 서버 시작 시 할당되어야 하는 메모리 양을 지정합니다. 이 메모리 영역이 부족하거나 동시 쿼리로 인해 소진되면 새 병렬 쿼리는 다음으로 구성된 방법을 사용하여 운영 체제에서 임시로 추가 공유 메모리를 할당하려고 시도합니다.dynamic_shared_memory_type, 메모리 관리 오버헤드로 인해 속도가 느려질 수 있습니다. 시작 시 할당되는 메모리는min_dynamic_shared_memory다음의 영향을 받습니다.거대한_페이지지원되는 운영 체제에 토토 커뮤니티하면 자동으로 관리되는 운영 체제에서 더 큰 페이지를 사용하는 것이 더 유리할 수 있습니다. 기본값은0(없음). 이 매개변수는 서버 시작 시에만 토토 커뮤니티할 수 있습니다.
temp_file_limit (정수) #프로세스가 임시 파일(예: 정렬 및 해시 임시 파일 또는 보류 커서용 저장 파일)에 사용할 수 있는 최대 디스크 공간을 지정합니다. 이 한도를 초과하려는 거래는 취소됩니다. 이 값을 단위 없이 지정하면 킬로바이트로 간주됩니다.-1(기본값)은 제한이 없음을 의미합니다. 적절한 권한을 가진 수퍼유저 및 사용자만세트권한으로 이 토토 커뮤니티을 변경할 수 있습니다.
이 토토 커뮤니티은 주어진 특정 파일이 사용하는 모든 임시 파일이 어느 순간에 사용하는 총 공간을 제한합니다.PostgreSQL프로세스. 쿼리 실행에서 배후에서 사용되는 임시 파일과 달리 명시적 임시 테이블에 사용되는 디스크 공간은 다음과 같습니다.아님이 한도에 포함됩니다.
max_notify_queue_pages (정수) #할당된 페이지의 최대량을 지정합니다.알림 / 듣기큐. 기본값은 1048576입니다. 8KB 페이지의 경우 최대 8GB의 디스크 공간을 사용할 수 있습니다.
max_files_per_process (정수) #각 서버 하위 프로세스에 허용되는 동시에 열려 있는 파일의 최대 수를 토토 커뮤니티합니다. 기본값은 1,000개의 파일입니다. 커널이 안전한 프로세스별 제한을 적용하는 경우 이 토토 커뮤니티에 대해 걱정할 필요가 없습니다. 그러나 일부 플랫폼(특히 대부분의 BSD 시스템)에서는 많은 프로세스가 모두 그렇게 많은 파일을 열려고 하면 커널은 개별 프로세스가 시스템이 실제로 지원할 수 있는 것보다 더 많은 파일을 열 수 있도록 허용합니다. 만약 당신이 본다면“열린 파일이 너무 많습니다.”실패, 이 토토 커뮤니티을 줄여보세요. 이 매개변수는 서버 시작 시에만 토토 커뮤니티할 수 있습니다.
실행 중진공그리고분석명령을 사용하면 시스템은 수행되는 다양한 I/O 작업의 예상 비용을 추적하는 내부 카운터를 유지 관리합니다. 누적 비용이 한도에 도달한 경우(다음으로 지정됨)vacuum_cost_limit), 작업을 수행하는 프로세스는 다음에서 지정한 대로 짧은 시간 동안 절전 모드로 전환됩니다.vacuum_cost_delay. 그런 다음 카운터를 재토토 커뮤니티하고 실행을 계속합니다.
이 기능의 목적은 관리자가 동시 데이터베이스 활동에 대한 이러한 명령의 I/O 영향을 줄일 수 있도록 하는 것입니다. 다음과 같은 유지 관리 명령이 중요하지 않은 상황이 많이 있습니다.진공그리고분석빨리 끝내세요; 그러나 일반적으로 이러한 명령이 다른 데이터베이스 작업을 수행하는 시스템 기능을 크게 방해하지 않는 것이 매우 중요합니다. 비용 기반 진공 지연은 관리자가 이를 달성할 수 있는 방법을 제공합니다.
이 기능은 수동으로 발행된 경우 기본적으로 비활성화되어 있습니다.진공명령. 활성화하려면 다음을 토토 커뮤니티하세요.vacuum_cost_delay변수를 0이 아닌 값으로 변경합니다.
vacuum_cost_delay (부동 소수점) #비용 한도를 초과했을 때 프로세스가 휴면 상태에 있는 시간입니다. 이 값을 단위 없이 지정하면 밀리초로 간주됩니다. 기본값은 0이며, 이는 비용 기반 진공 지연 기능을 비활성화합니다. 양수 값은 비용 기반 진공 청소를 가능하게 합니다.
비용 기반 진공 청소를 사용할 때 적절한 값vacuum_cost_delay보통 매우 작으며 아마도 1밀리초 미만일 것입니다. 하는 동안vacuum_cost_delay은 밀리초 단위의 값으로 토토 커뮤니티될 수 있으며, 이러한 지연은 이전 플랫폼에서는 정확하게 측정되지 않을 수 있습니다. 이러한 플랫폼에서는 증가하고 있습니다.진공47143_47291vacuum_cost_delay귀하의 플랫폼이 일관되게 측정할 만큼 작습니다. 큰 지연은 도움이 되지 않습니다.
vacuum_cost_page_hit (정수) #공유 버퍼 캐시에서 발견된 버퍼를 비우기 위한 예상 비용입니다. 버퍼 풀을 잠그고, 공유 해시 테이블을 조회하고, 페이지의 콘텐츠를 스캔하는 데 드는 비용을 나타냅니다. 기본값은 1입니다.
vacuum_cost_page_miss (정수) #디스크에서 읽어야 하는 버퍼를 진공청소하는 데 드는 예상 비용입니다. 이는 버퍼 풀을 잠그고, 공유 해시 테이블을 조회하고, 디스크에서 원하는 블록을 읽고, 해당 내용을 스캔하려는 노력을 나타냅니다. 기본값은 2입니다.
vacuum_cost_page_dirty (정수) #이전에 깨끗했던 블록을 진공으로 수정할 때 청구되는 예상 비용입니다. 이는 더티 블록을 디스크로 다시 플러시하는 데 필요한 추가 I/O를 나타냅니다. 기본값은 20입니다.
vacuum_cost_limit (정수) #이것은 진공 청소 과정을 잠자기 상태로 만드는 누적 비용입니다.vacuum_cost_delay. 기본값은 200입니다.
중요한 잠금을 유지하는 특정 작업이 있으므로 가능한 한 빨리 완료해야 합니다. 이러한 작업 중에는 비용 기반 진공 지연이 발생하지 않습니다. 따라서 비용이 지정된 한도보다 훨씬 높게 누적될 가능성이 있습니다. 이러한 경우 쓸데없이 긴 지연을 방지하기 위해 실제 지연은 다음과 같이 계산됩니다.vacuum_cost_delay * accumulated_balance / vacuum_cost_limit최대vacuum_cost_delay * 4.
다음이라는 별도의 서버 프로세스가 있습니다.백그라운드 작가, 그 기능은 쓰기를 실행하는 것입니다.“더러운”(신규 또는 수정) 공유 버퍼. 정리된 공유 버퍼의 수가 부족한 것으로 나타나면 백그라운드 작성자는 일부 더티 버퍼를 파일 시스템에 쓰고 이를 정리된 것으로 표시합니다. 이렇게 하면 사용자 쿼리를 처리하는 서버 프로세스가 깨끗한 버퍼를 찾을 수 없고 더티 버퍼 자체를 작성해야 할 가능성이 줄어듭니다. 그러나 백그라운드 기록기는 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 (정수) #백그라운드 기록기에 의해 이 양 이상의 데이터가 기록될 때마다 OS가 기본 저장소에 이러한 쓰기를 실행하도록 강제로 시도하십시오. 그렇게 하면 커널 페이지 캐시에 있는 더티 데이터의 양이 제한되어 다음과 같은 경우 중단 가능성이 줄어듭니다.fsync은 체크포인트가 끝날 때 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 쓸 때 발행됩니다. 이로 인해 트랜잭션 지연 시간이 크게 단축되는 경우가 많지만, 특히 워크로드가 다음보다 큰 경우도 있습니다.shared_buffers, 그러나 OS의 페이지 캐시보다 작으므로 성능이 저하될 수 있습니다. 이 토토 커뮤니티은 일부 플랫폼에는 영향을 미치지 않을 수 있습니다. 이 값을 단위 없이 지정하면 블록으로 간주됩니다. 즉,BLCKSZ바이트, 일반적으로 8kB. 유효한 범위는 다음 사이입니다.056176_562172MB. 기본값은512kBLinux의 경우,0다른 곳에. (만약에BLCKSZ는 8kB가 아니며 기본값과 최대값은 이에 비례하여 확장됩니다.) 이 매개변수는postgresql.conf파일 또는 서버 명령줄에서.
더 작은 값bgwriter_lru_maxpages그리고bgwriter_lru_multiplier백그라운드 작성기로 인한 추가 I/O 로드를 줄이되 서버 프로세스가 스스로 쓰기를 실행해야 하므로 대화형 쿼리가 지연될 가능성이 높아집니다.
backend_flush_after (정수) #단일 백엔드에서 이 양보다 많은 데이터를 기록할 때마다 OS가 기본 저장소에 이러한 쓰기를 실행하도록 강제로 시도하십시오. 그렇게 하면 커널 페이지 캐시에 있는 더티 데이터의 양이 제한되어 다음과 같은 경우 중단 가능성이 줄어듭니다.fsync은 체크포인트가 끝날 때 또는 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 쓸 때 발행됩니다. 이로 인해 트랜잭션 지연 시간이 크게 단축되는 경우가 많지만, 특히 워크로드가 다음보다 큰 경우도 있습니다.shared_buffers, 그러나 OS의 페이지 캐시보다 작으므로 성능이 저하될 수 있습니다. 이 토토 커뮤니티은 일부 플랫폼에는 영향을 미치지 않을 수 있습니다. 이 값을 단위 없이 지정하면 블록으로 간주됩니다. 즉,BLCKSZ바이트, 일반적으로 8kB. 유효한 범위는 다음 사이입니다.058577_586182MB. 기본값은0, 즉 강제 쓰기 저장이 없습니다. (만약에BLCKSZ는 8kB가 아니며 최대값은 이에 비례하여 확장됩니다.)
효과적인_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입니다. 이 값은 동일한 이름의 테이블스페이스 매개변수를 토토 커뮤니티하여 특정 테이블스페이스의 테이블에 대해 재정의될 수 있습니다(참조테이블스페이스 변경).
maintenance_io_concurrency (정수) #비슷함효과적인_io_concurrency, 그러나 많은 클라이언트 세션을 대신하여 수행되는 유지 관리 작업에 사용됩니다.
지원되는 시스템에서 기본값은 10이고 그렇지 않으면 0입니다. 이 값은 동일한 이름의 테이블스페이스 매개변수를 토토 커뮤니티하여 특정 테이블스페이스의 테이블에 대해 재정의될 수 있습니다(참조테이블스페이스 변경).
io_combine_limit (정수) #I/O를 결합하는 작업에서 최대 I/O 크기를 제어합니다. 기본값은 128kB입니다.
max_worker_processes (정수) #클러스터가 지원할 수 있는 최대 백그라운드 프로세스 수를 토토 커뮤니티합니다. 이 매개변수는 서버 시작 시에만 토토 커뮤니티할 수 있습니다. 기본값은 8입니다.
대기 서버를 실행할 때, 이 매개변수를 기본 서버와 같거나 높은 값으로 토토 커뮤니티해야 합니다. 그렇지 않으면 대기 서버에서 쿼리가 허용되지 않습니다.
이 값을 변경할 때 조정도 고려하십시오.max_parallel_workers, max_parallel_maintenance_workers및max_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 : 문서 : 17 : 15 장 토토 캔 쿼리.
max_parallel_maintenance_workers (정수) #단일 유틸리티 명령으로 시작할 수 있는 최대 병렬 작업자 수를 토토 커뮤니티합니다. 현재 병렬 작업자 사용을 지원하는 병렬 유틸리티 명령은 다음과 같습니다.색인 생성B-트리 또는 BRIN 인덱스를 구축할 때 및진공없이전체옵션. 병렬 작업자는 다음에 의해 토토 커뮤니티된 프로세스 풀에서 가져옵니다.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병렬 작업자는 해당 토토 커뮤니티에 의해 토토 커뮤니티된 작업자 프로세스 풀에서 가져오기 때문에 효과가 없습니다.
parallel_leader_participation (부울) #리더 프로세스가 아래 쿼리 계획을 실행할 수 있도록 허용집결그리고집합 병합노드를 작업자 프로세스를 기다리는 대신에 사용합니다. 기본값은켜짐. 이 값을 다음으로 토토 커뮤니티합니다.꺼짐리더가 튜플을 충분히 빠르게 읽지 않기 때문에 작업자가 차단될 가능성을 줄이지만, 첫 번째 튜플이 생성되기 전에 작업자 프로세스가 시작될 때까지 리더 프로세스가 기다려야 합니다. 리더가 성과를 돕거나 방해할 수 있는 정도는 계획 유형, 작업자 수 및 쿼리 기간에 따라 다릅니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.