Share via


Azure Cosmos DB for PostgreSQL 서버 매개 변수

적용 대상: PostgreSQL용 Azure Cosmos DB(Citus 데이터베이스 확장에서 PostgreSQL로 구동 )

표준 PostgreSQL과 Azure Cosmos DB for PostgreSQL에 특정한 Azure Cosmos DB for PostgreSQL의 동작에 영향을 주는 다양한 서버 매개 변수가 있습니다. 이러한 매개 변수는 클러스터용 Azure Portal에서 설정할 수 있습니다. 설정 범주에서 작업자 노드 매개 변수 또는 코디네이터 노드 매개 변수를 선택합니다. 이러한 페이지에서 모든 작업자 노드의 매개 변수를 설정하거나 코디네이터 노드의 매개 변수를 설정할 수 있습니다.

Azure Cosmos DB for PostgreSQL 매개 변수

참고 항목

이전 버전의 Citus 확장을 실행하는 클러스터는 아래에 나열된 모든 매개 변수를 제공하지 않을 수 있습니다.

일반 구성

citus.use_secondary_nodes(열거형)

SELECT 쿼리에 대한 노드를 선택할 때 사용할 정책을 설정합니다. 'always'로 설정되면 플래너는 pg_dist_node에서 'secondary' noderole이라고 표시된 노드만 쿼리합니다.

이 열거형을 지원하는 값은 다음과 같습니다.

  • never(기본값): 모든 읽기가 주 노드에서 수행됩니다.
  • always: 읽기가 보조 노드에 대해 실행되고 insert/update 문을 사용할 수 없습니다.

citus.cluster_name(텍스트)

코디네이터 노드 플래너에게 어떤 클러스터를 조정해야 하는지 알립니다. cluster_name이 설정되면 플래너는 해당 클러스터의 작업자 노드만 쿼리합니다.

citus.enable_version_checks(부울)

Azure Cosmos DB for PostgreSQL 버전을 업그레이드하려면 서버를 다시 시작(새 공유 라이브러리를 선택하기 위함)한 후 ALTER EXTENSION UPDATE 명령을 실행해야 합니다. 두 단계를 모두 실행하지 못하면 오류 또는 충돌이 발생할 수 있습니다. 따라서 Azure Cosmos DB for PostgreSQL에서 코드 버전과 확장 버전이 일치하는지 검사하고, 일치하지 않으면 오류가 발생합니다.

이 값은 기본적으로 true이며 코디네이터에 적용됩니다. 드물게 복잡한 업그레이드 프로세스에서 이 매개 변수를 false로 설정하여 검사 사용하지 않도록 설정해야 할 수 있습니다.

citus.log_distributed_deadlock_detection(부울)

서버 로그에 분산 교착 상태 검색 관련 처리를 기록할지 여부입니다. 기본값은 false입니다.

citus.distributed_deadlock_detection_factor(부동 소수점)

분산 교착 상태에 대해 검사 때까지 대기할 시간을 설정합니다. 특히 대기 시간은 이 값에 PostgreSQL의 deadlock_timeout 설정을 곱한 값입니다. 기본값은 2입니다. 값은 -1 분산 교착 상태 검색을 사용하지 않도록 설정합니다.

citus.node_connection_timeout(정수)

GUC는 citus.node_connection_timeout 연결 설정에 대기할 최대 기간(밀리초)을 설정합니다. 하나 이상의 작업자 연결이 설정되기 전에 제한 시간이 경과하면 Azure Cosmos DB for PostgreSQL에서 오류가 발생합니다. 이 GUC는 코디네이터와 작업자 간의 연결과 작업자 간의 연결에 영향을 줍니다.

  • 기본값: 5초
  • 최솟값: 10밀리초
  • 최댓값: 1시간
-- set to 30 seconds
ALTER DATABASE foo
SET citus.node_connection_timeout = 30000;

citus.log_remote_commands(부울)

코디네이터에서 작업자 노드에 보내는 모든 명령을 기록합니다. 예를 들면 다음과 같습니다.

-- reveal the per-shard queries behind the scenes
SET citus.log_remote_commands TO on;

-- run a query on distributed table "github_users"
SELECT count(*) FROM github_users;

출력은 코디네이터의 단일 count(*) 쿼리로 인해 작업자에서 실행되는 여러 쿼리를 표시합니다.

NOTICE:  issuing SELECT count(*) AS count FROM public.github_events_102040 github_events WHERE true
DETAIL:  on server citus@private-c.demo.postgres.database.azure.com:5432 connectionId: 1
NOTICE:  issuing SELECT count(*) AS count FROM public.github_events_102041 github_events WHERE true
DETAIL:  on server citus@private-c.demo.postgres.database.azure.com:5432 connectionId: 1
NOTICE:  issuing SELECT count(*) AS count FROM public.github_events_102042 github_events WHERE true
DETAIL:  on server citus@private-c.demo.postgres.database.azure.com:5432 connectionId: 1
... etc, one for each of the 32 shards

citus.show_shards_for_app_name_prefixes (text)

기본적으로 Azure Cosmos DB for PostgreSQL은 PostgreSQL이 SQL 클라이언트에 제공하는 테이블 목록에서 분할을 숨깁니다. 분산 테이블당 여러 개의 분할이 있고 분할이 SQL 클라이언트의 주의를 산만하게 할 수 있기 때문에 이렇게 합니다.

citus.show_shards_for_app_name_prefixes GUC를 사용하면 분할을 보고자 하는 선택된 클라이언트에 대해 분할을 표시할 수 있습니다. 기본값은 ''입니다.

-- show shards to psql only (hide in other clients, like pgAdmin)

SET citus.show_shards_for_app_name_prefixes TO 'psql';

-- also accepts a comma separated list

SET citus.show_shards_for_app_name_prefixes TO 'psql,pg_dump';

citus.override_table_visibility를 사용하여 분할 숨기기를 완전히 사용하지 않도록 설정할 수 있습니다.

citus.override_table_visibility(부울)

citus.show_shards_for_app_name_prefixes가 활성 상태인지 여부를 결정합니다. 기본값은 'true'입니다. 'false'로 설정하면 모든 클라이언트 애플리케이션에서 분할을 볼 수 있습니다.

citus.use_citus_managed_tables (boolean)

작업자 노드에 대한 쿼리에서 새 로컬 테이블에 액세스할 수 있도록 허용합니다. 사용하도록 설정되면 새로 만들어진 모든 테이블을 Citus 메타데이터에 추가합니다. 기본값은 'false'입니다.

citus.rebalancer_by_disk_size_base_cost(정수)

각 분할된 데이터베이스 그룹은 by_disk_size 리밸런스 전략을 사용하여 실제 디스크 크기에 추가된 바이트 단위로 이 비용을 가져옵니다. 이 값은 일부 분할된 데이터베이스에 데이터가 거의 없을 때 잘못된 균형을 만들지 않도록 하는 데 사용됩니다. 병렬 처리로 인해 빈 분할된 데이터베이스도 약간의 비용이 들며 나중에 빈 분할된 데이터베이스 그룹이 증가할 가능성이 있기 때문이라고 가정합니다.

기본값은 100MB입니다.

쿼리 통계

citus.stat_statements_purge_interval(정수)

유지 관리 디먼이 pg_stat_statements의 일치하지 않는 레코드를 citus_stat_statements에서 제거하는 빈도를 설정합니다. 이 구성 값은 제거 사이의 시간 간격을 초 단위로 설정하며 기본값은 10입니다. 값이 0이면 제거를 사용하지 않도록 설정합니다.

SET citus.stat_statements_purge_interval TO 5;

이 매개 변수는 코디네이터에 적용되며 런타임에 변경할 수 있습니다.

citus.stat_statements_max(정수)

citus_stat_statements에 저장할 최대 행 수입니다. 기본값은 50000이며 범위 1000 - 100000000의 값으로 변경할 수 있습니다. 각 행에는 140바이트의 스토리지가 필요하므로 stat_statements_max를 최댓값인 10M으로 설정하면 1.4GB의 메모리가 사용됩니다.

이 GUC를 변경하면 PostgreSQL이 다시 시작될 때까지 적용되지 않습니다.

citus.stat_statements_track(열거형)

citus_stat_statements에 대한 통계를 기록하려면 추가 CPU 리소스가 필요합니다. 데이터베이스에 부하가 발생하는 경우 관리자는 다음으로 설정 citus.stat_statements_track 하여 문 추적을 none사용하지 않도록 설정할 수 있습니다.

  • all:(기본값) 모든 명령문을 추적합니다.
  • none: 추적을 사용하지 않도록 설정합니다.

citus.stat_tenants_untracked_sample_rate

에서 citus_stat_tenants새 테넌트에 대한 샘플링 속도입니다. 속도는 범위 사이 0.0 일 수 있습니다.1.0 기본값은 1.0 추적되지 않은 테넌트 쿼리의 100%가 샘플링됨을 의미합니다. 이 값을 더 낮은 값으로 설정하면 이미 추적된 테넌트에는 100% 쿼리가 샘플링되지만 현재 추적되지 않은 테넌트는 제공된 속도로만 샘플링됩니다.

데이터 로드

citus.multi_shard_commit_protocol(열거형)

해시 분산 테이블에서 COPY를 수행할 때 사용할 커밋 프로토콜을 설정합니다. 각 개별 분할된 데이터베이스 배치에서 COPY는 COPY 중에 오류가 발생하는 경우 데이터가 수집되지 않도록 트랜잭션 블록에서 수행됩니다. 그러나 모든 배치에서 COPY가 성공하지만 모든 트랜잭션을 커밋하기 전에 오류(하드웨어)가 발생하는 특정 실패 사례가 있습니다. 이 매개 변수는 다음 커밋 프로토콜 중에서 선택하여 이 경우 데이터 손실을 방지하는 데 사용할 수 있습니다.

  • 2pc(기본값): 익스텐트 배치에서 COPY가 수행되는 트랜잭션은 먼저 PostgreSQL의 2단계 커밋을 사용하여 준비된 다음, 커밋됩니다. 각각 COMMIT PREPARED 또는 ROLLBACK PREPARED를 사용하여 실패한 커밋을 수동으로 복구하거나 중단할 수 있습니다. 2pc를 사용하는 경우 모든 작업자에서 max_prepared_transactions를 일반적으로 max_connections와 동일한 값으로 늘려야 합니다.
  • 1pc: 분할된 데이터베이스 배치에서 COPY가 수행되는 트랜잭션은 단일 라운드에서 커밋됩니다. COPY가 모든 배치에서 성공한 후 커밋이 실패하면 데이터가 손실될 수 있습니다(드문 경우).

citus.shard_replication_factor(정수)

분할된 데이터베이스의 복제 인수, 즉 분할된 데이터베이스가 배치되는 노드 수를 설정하며 기본값은 1입니다. 이 매개 변수는 런타임에 설정할 수 있으며 코디네이터에 적용됩니다. 이 매개 변수의 적절한 값은 클러스터의 크기와 노드 실패 비율에 따라 다릅니다. 예를 들어 큰 클러스터를 실행하고 노드 오류를 더 자주 관찰하는 경우 이 복제본(replica)tion 요소를 늘릴 수 있습니다.

Planner 구성

citus.local_table_join_policy(열거형)

이 GUC는 로컬 테이블과 분산 테이블 간을 조인할 때 Azure Cosmos DB for PostgreSQL에서 데이터를 이동하는 방법을 결정합니다. 조인 정책을 사용자 지정하면 작업자 노드 간에 보내는 데이터의 양을 줄일 수 있습니다.

Azure Cosmos DB for PostgreSQL은 조인을 지원하기 위해 필요한 경우 노드로 로컬 테이블 또는 분산 테이블을 보냅니다. 테이블 데이터를 복사하는 것을 "변환"이라고 합니다. 로컬 테이블이 변환되면 조인을 수행하기 위해 데이터가 필요한 모든 작업자에게 전송됩니다. 분산 테이블이 변환되면 조인을 지원하기 위해 코디네이터에서 수집됩니다. Azure Cosmos DB for PostgreSQL 플래너는 변환하는 데 필요한 행만 전송합니다.

변환 기본 설정을 표현하는 데 사용할 수 있는 4가지 모드가 있습니다.

  • auto:(기본값) Azure Cosmos DB for PostgreSQL에서 모든 로컬 테이블 또는 모든 분산 테이블을 변환하여 로컬 및 분산 테이블 조인을 지원합니다. Azure Cosmos DB for PostgreSQL은 추론을 사용하여 변환할 대상을 결정합니다. 고유 인덱스(예: 기본 키)에서 상수 필터를 사용하여 조인된 분산 테이블을 변환합니다. 변환을 통해 작업자 간에 이동하는 데이터가 줄어듭니다.
  • never: Azure Cosmos DB for PostgreSQL은 로컬 테이블과 분산 테이블 간의 조인을 허용하지 않습니다.
  • prefer-local: Azure Cosmos DB for PostgreSQL에서는 로컬 테이블 및 분산 테이블 조인을 지원하기 위해 로컬 테이블을 변환하는 것이 선호됩니다.
  • prefer-distributed: Azure Cosmos DB for PostgreSQL에서는 로컬 테이블 및 분산 테이블 조인을 지원하기 위해 분산 테이블을 변환하는 것이 선호됩니다. 분산 테이블이 큰 경우 이 옵션을 사용하면 작업자 간에 많은 데이터가 이동할 수 있습니다.

예를 들어 citus_tablex 열에서 분산된 분산 테이블이고 postgres_table이 로컬 테이블이라고 가정합니다.

CREATE TABLE citus_table(x int primary key, y int);
SELECT create_distributed_table('citus_table', 'x');

CREATE TABLE postgres_table(x int, y int);

-- even though the join is on primary key, there isn't a constant filter
-- hence postgres_table will be sent to worker nodes to support the join
SELECT * FROM citus_table JOIN postgres_table USING (x);

-- there is a constant filter on a primary key, hence the filtered row
-- from the distributed table will be pulled to coordinator to support the join
SELECT * FROM citus_table JOIN postgres_table USING (x) WHERE citus_table.x = 10;

SET citus.local_table_join_policy to 'prefer-distributed';
-- since we prefer distributed tables, citus_table will be pulled to coordinator
-- to support the join. Note that citus_table can be huge.
SELECT * FROM citus_table JOIN postgres_table USING (x);

SET citus.local_table_join_policy to 'prefer-local';
-- even though there is a constant filter on primary key for citus_table
-- postgres_table will be sent to necessary workers because we are using 'prefer-local'.
SELECT * FROM citus_table JOIN postgres_table USING (x) WHERE citus_table.x = 10;

citus.limit_clause_row_fetch_count(정수)

제한 절 최적화를 위해 태스크당 가져올 행 수를 설정합니다. 경우에 따라 제한 절이 있는 쿼리를 선택하면 결과를 생성하기 위해 각 작업의 모든 행을 가져와야 할 수 있습니다. 이 경우 그리고 근사값이 의미 있는 결과를 생성하는 경우 이 구성 값은 각 익스텐트에서 가져오는 행 수를 설정합니다. 제한 근사값은 기본적으로 사용하지 않도록 설정되며 이 매개 변수는 -1로 설정됩니다. 이 값은 런타임에 설정할 수 있으며 코디네이터에 적용됩니다.

citus.count_distinct_error_rate(부동 소수점)

Azure Cosmos DB for PostgreSQL은 postgresql-hll 확장을 사용하여 개수(고유) 근사치를 계산할 수 있습니다. 이 구성 항목은 count(distinct)를 계산할 때 원하는 오류 속도를 설정합니다. 기본값인 0.0은 개수(고유)에 근사치를 사용하지 않고, 1.0은 결과의 정확도를 보장하지 않습니다. 최상의 결과를 위해 이 매개 변수를 0.005로 설정하는 것이 좋습니다. 이 값은 런타임에 설정할 수 있으며 코디네이터에 적용됩니다.

citus.task_assignment_policy(열거형)

참고 항목

이 GUC는 shard_replication_factor가 1보다 크거나 reference_tables에 대한 쿼리인 경우에만 적용됩니다.

작업자에게 작업을 할당할 때 사용할 정책을 설정합니다. 코디네이터는 분할된 데이터베이스 위치에 따라 작업자에게 작업을 할당합니다. 이 구성 값은 이러한 할당을 수행할 때 사용할 정책을 지정합니다. 현재 사용할 수 있는 세 가지 작업 할당 정책이 있습니다.

  • greedy: 탐욕스러운 정책은 기본값이며 작업자 간에 작업을 균등하게 분배하는 것을 목표로 합니다.
  • 라운드 로빈: 라운드 로빈 정책은 여러 복제본(replica) 번갈아 가며 라운드 로빈 방식으로 작업자에게 작업을 할당합니다. 이 정책을 사용하면 테이블의 익스텐트 수가 작업자 수보다 적을 때 클러스터 사용률이 향상됩니다.
  • first-replica: first-replica(첫 번째 복제본) 정책은 익스텐트에 대한 배치(복제본)의 삽입 순서에 따라 작업을 할당합니다. 즉, 분할된 데이터베이스의 첫 번째 복제본(replica) 있는 작업자에 분할된 데이터베이스에 대한 조각 쿼리가 할당됩니다. 이 방법을 사용하면 어떤 노드에서 어떤 분할된 데이터베이스가 사용되는지 명확하게 보장(즉, 더 강력한 메모리 상주 보장)할 수 있습니다.

이 매개 변수는 런타임에 설정할 수 있으며 코디네이터에 적용됩니다.

citus.enable_non_colocated_router_query_pushdown(부울)

공동 배치되지 않은 분산 테이블을 참조하는 쿼리에 라우터 플래너를 사용하도록 설정합니다.

라우터 플래너는 공동 배치된 분산 테이블을 참조하는 쿼리에 대해서만 사용할 수 있습니다. 그렇지 않으면 분할된 데이터베이스가 동일한 노드에 있지 않을 수 있기 때문입니다. 이 플래그를 사용하면 이러한 테이블을 참조하는 쿼리를 최적화할 수 있지만 분할된 데이터베이스의 균형을 조정하거나 해당 테이블의 분할된 데이터베이스 수를 변경한 후에는 쿼리가 작동하지 않을 수 있습니다.

기본값은 off입니다.

중간 데이터 전송

citus.max_intermediate_result_size(정수)

실행 또는 복합 하위 쿼리에 대한 작업자 노드로 푸시할 수 없는 CTE의 최대 중간 결과 크기(KB)입니다. 기본값은 1GB이고 값 -1은 제한이 없음을 의미합니다. 제한을 초과하는 쿼리는 취소되고 오류 메시지가 생성됩니다.

DDL

citus.enable_schema_based_sharding

매개 변수를 설정하면 ON생성된 모든 스키마가 기본적으로 배포됩니다. 분산 스키마는 개별 공동 배치 그룹과 자동으로 연결되어 이러한 스키마에서 만든 테이블이 분할 키 없이 공동 배치된 분산 테이블로 변환됩니다. 이 설정은 개별 세션에 대해 수정할 수 있습니다.

이 GUC를 사용하는 예제는 마이크로 서비스용으로 디자인하는 방법을 참조 하세요.

실행기 구성

일반

citus.all_modifications_commutative

Azure Cosmos DB for PostgreSQL은 동작의 정확성을 보장하기 위해 교환 규칙을 적용하고 수정 작업에 적절한 잠금을 획득합니다. 예를 들어 INSERT 문은 UPDATE 또는 DELETE 문이 아닌 다른 INSERT 문으로 통근한다고 가정합니다. 마찬가지로 UPDATE 또는 DELETE 문이 다른 UPDATE 또는 DELETE 문과 교환되지 않는 것으로 가정합니다. 이 예방 조치는 UPDATE 및 DELET가 더 강력한 잠금을 획득하기 위해서는 Azure Cosmos DB for PostgreSQL이 필요함을 의미합니다.

INSERT 또는 기타 UPDATE와 함께 통근하는 UPDATE 문이 있는 경우 이 매개 변수를 true로 설정하여 이러한 통근 가정을 완화할 수 있습니다. 이 매개 변수를 true로 설정하면 모든 명령이 커밋된 것으로 간주되고 공유 잠금을 클레임하여 전체 처리량을 향상시킬 수 있습니다. 이 매개 변수는 런타임에 설정할 수 있으며 코디네이터에 적용됩니다.

citus.remote_task_check_interval(정수)

Azure Cosmos DB for PostgreSQL이 작업 추적기 실행기에서 관리하는 작업의 상태를 확인하는 빈도를 설정합니다. 기본값은 10ms입니다. 코디네이터에서 작업자에게 작업을 할당한 다음, 각 작업의 진행 상황을 정기적으로 확인합니다. 이 구성 값은 두 개의 결과 검사 사이의 시간 간격을 설정합니다. 이 매개 변수는 코디네이터에 적용되며 런타임에 설정할 수 있습니다.

citus.task_executor_type(열거형)

Azure Cosmos DB for PostgreSQL에는 분산 SELECT 쿼리를 실행하기 위한 실행기 유형이 세 가지 있습니다. 이 구성 매개 변수를 설정하여 원하는 실행기를 선택할 수 있습니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • adaptive: 기본값입니다. 여러 익스텐트에 걸쳐 있는 집계 및 공동 배치 조인이 포함된 쿼리에 빠르게 응답하는 데 적합합니다.
  • task-tracker: 작업 추적기 실행기는 작업자 노드 전체에서 데이터 순서를 섞어야 하고 효율적인 리소스 관리가 필요한 복잡하고 오래 실행되는 쿼리에 적합합니다.
  • 실시간: (사용되지 않음) 적응 실행기와 비슷한 용도로 사용되지만 유연성이 떨어지며 작업자 노드에 더 많은 연결 압력을 가할 수 있습니다.

이 매개 변수는 런타임에 설정할 수 있으며 코디네이터에 적용됩니다.

citus.multi_task_query_log_level(열거형) {#multi_task_logging}

둘 이상의 작업(즉, 둘 이상의 분할된 데이터베이스에 도달)을 생성하는 쿼리에 대한 로그 수준을 설정합니다. 로깅은 다중 테넌트 애플리케이션 마이그레이션 중에 이러한 쿼리를 찾거나 tenant_id 필터를 추가하도록 오류 또는 경고하도록 선택할 수 있으므로 유용합니다. 이 매개 변수는 런타임에 설정할 수 있으며 코디네이터에 적용됩니다. 이 매개 변수의 기본값은 ‘off’입니다.

이 열거형을 지원하는 값은 다음과 같습니다.

  • off: 여러 작업을 생성하는 쿼리 로깅 해제(즉, 여러 분할된 데이터베이스에 걸쳐)
  • debug: DEBUG 심각도 수준에서 문을 기록합니다.
  • log: LOG 심각도 수준에서 명령문을 기록합니다. 로그 줄에는 실행된 SQL 쿼리가 포함됩니다.
  • 알림: 알림 심각도 수준에서 문을 기록합니다.
  • NOTICE : WARNING 심각도 수준에서 명령문을 기록합니다.
  • error: ERROR 심각도 수준에서 문을 기록합니다.

개발 테스트 중에 사용하는 error 것이 유용할 수 있으며 실제 프로덕션 배포 중과 같이 log 로그 수준이 낮을 수 있습니다. log를 선택하면 다중 작업 쿼리가 데이터베이스 로그에 표시되고 쿼리 자체가 “STATEMENT” 뒤에 표시됩니다.

LOG:  multi-task query about to be executed
HINT:  Queries are split to multiple tasks if they have to be split into several queries on the workers.
STATEMENT:  select * from foo;
citus.propagate_set_commands(열거형)

코디네이터에서 작업자로 전파되는 SET 명령을 결정합니다. 이 매개 변수의 기본값은 'none'입니다.

지원되는 값은 다음과 같습니다.

  • none: SET 명령이 전파되지 않습니다.
  • local: SET LOCAL 명령만 전파됩니다.
citus.create_object_propagation (enum)

지원되는 개체에 대한 트랜잭션에서 CREATE 문의 동작을 제어합니다.

개체가 다중 문 트랜잭션 블록에서 만들어진 경우 Azure Cosmos DB for PostgreSQL에서 만들어진 개체를 나중에 분할 문에서 볼 수 있도록 순차 모드를 전환합니다. 그러나 순차 모드로의 전환이 항상 바람직한 것은 아닙니다. 이 동작을 재정의함으로써 사용자는 새 개체를 만들 때 완전한 트랜잭션 일관성을 위해 성능을 절충할 수 있습니다.

이 매개 변수의 기본값은 'immediate'입니다.

지원되는 값은 다음과 같습니다.

  • immediate: CREATE TYPE을 시도하기 전에 create_distributed_table과 같은 병렬 작업이 발생하는 트랜잭션에서 오류가 발생합니다.
  • automatic: 분산 테이블에서 병렬 작업으로 트랜잭션을 공유할 때 형식 만들기를 연기합니다. 서로 다른 노드에 있는 데이터베이스 개체 간에 약간의 불일치가 있을 수 있습니다.
  • deferred: 11.0 이전 동작으로 돌아갑니다. 이는 automatic과 비슷하지만 다른 미묘한 경우가 있습니다. 이전 버전과의 진정한 호환성이 필요한 경우가 아니면 deferred보다 자동 설정을 권장합니다.

작동 중인 이 GUC의 예는 형식 전파를 참조하세요.

citus.enable_repartition_joins(부울)

일반적으로 적응형 실행기를 사용하여 다시 분할 조인을 시도하면 오류 메시지와 함께 실패합니다. 그러나 citus.enable_repartition_joins를 true로 설정하면 Azure Cosmos DB for PostgreSQL에서 일시적으로 작업 추적기 실행기로 전환하여 조인할 수 있습니다. 기본값은 false입니다.

citus.enable_repartitioned_insert_select(부울)

기본적으로 푸시다운할 수 없는 INSERT INTO ... 푸시다운할 수 없는 SELECT 문은 SELECT 문에서 행을 다시 분할하고 삽입을 위해 작업자 간에 행 전송을 시도합니다. 그러나 대상 테이블에 익스텐트가 너무 많으면 다시 분할이 잘 수행되지 않을 수 있습니다. 결과를 분할하는 방법을 결정할 때 익스텐트 간격을 처리하는 오버헤드가 너무 큽니다. citus.enable_repartitioned_insert_select를 false로 설정하여 수동으로 다시 분할을 사용하지 않도록 설정할 수 있습니다.

citus.enable_binary_protocol(부울)

이 매개 변수를 true로 설정하면 PostgreSQL의 이진 serialization 형식(해당되는 경우)을 사용하여 작업자를 통해 데이터를 전송하도록 코디네이터 노드에 지시합니다. 일부 열 형식은 이진 serialization을 지원하지 않습니다.

이 매개 변수를 사용하도록 설정하는 것은 주로 작업자가 많은 양의 데이터를 반환해야 하는 경우에 유용합니다. 예를 들어 많은 행이 요청되거나 행에 많은 열이 있거나 postgresql-hll 확장의 hll과 같은 다양한 형식을 사용하는 경우가 있습니다.

기본값은 true입니다. 로 false설정하면 모든 결과가 인코딩되고 텍스트 형식으로 전송됩니다.

citus.max_adaptive_executor_pool_size(정수)

max_adaptive_executor_pool_size는 현재 세션의 작업자 연결을 제한합니다. 이 GUC는 다음과 같은 경우에 유용합니다.

  • 단일 백 엔드에서 모든 작업자 리소스를 가져오지 못하도록 방지
  • 우선 순위 관리 제공: max_adaptive_executor_pool_size를 사용하여 낮은 우선 순위 세션을 지정하고 더 높은 값을 사용하여 높은 우선 순위 세션을 지정

기본값은 16입니다.

citus.executor_slow_start_interval(정수)

동일한 작업자 노드에 대한 연결 열기 사이의 대기 시간(밀리초)입니다.

다중 익스텐트 쿼리의 개별 작업에 시간이 거의 걸리지 않는 경우 단일(종종 이미 캐시된) 연결을 통해 완료될 수 있는 경우가 많습니다. 더 많은 연결을 중복적으로 열지 않도록 방지하기 위해 실행기가 연결 시도 사이에 구성된 시간(밀리초) 동안 기다립니다. 간격이 끝나면 다음에 열 수 있는 연결 수가 증가합니다.

긴 쿼리(500ms 미만 소요)의 경우 느린 시작에서 대기 시간을 추가할 수 있지만, 짧은 쿼리의 경우 더 빠릅니다. 기본값은 10ms입니다.

citus.max_cached_conns_per_worker(정수)

각 백 엔드에서 작업자에 대한 연결을 열어 익스텐트를 쿼리합니다. 트랜잭션이 끝나면 구성된 연결 수가 열린 상태로 유지되어 후속 명령의 속도를 향상시킵니다. 이 값을 늘리면 다중 분할된 데이터베이스 쿼리의 대기 시간이 줄어들지만 작업자의 오버헤드도 증가합니다.

기본값은 1입니다. 2와 같은 더 큰 값은 적은 수의 동시 세션을 사용하는 클러스터에 유용할 수 있지만 더 늘리는 것은 좋지 않습니다(예: 16은 너무 높음).

citus.force_max_query_parallelization(부울)

더 이상 사용되지 않고 현재 존재하지 않는 실시간 실행기를 시뮬레이션합니다. 이 매개 변수는 쿼리 병렬화를 최대화하기 위해 가능한 한 많은 연결을 여는 데 사용됩니다.

이 GUC가 사용하도록 설정된 경우 Azure Cosmos DB for PostgreSQL은 병렬 분산 쿼리를 실행하는 동안 적응형 실행기에서 가급적 많은 연결을 사용하도록 강제 적용합니다. 사용하도록 설정되지 않으면 실행기에서 전체 쿼리 실행 처리량을 최적화하기 위해 더 적은 수의 연결을 사용하도록 선택할 수 있습니다. 내부적으로 이를 true로 설정하면 작업당 하나의 연결을 사용하게 됩니다.

이 매개 변수가 유용한 곳 중 하나는 첫 번째 쿼리가 간단하고 연결이 거의 필요하지 않은 반면 후속 쿼리는 더 많은 연결을 통해 이점을 얻을 수 있는 트랜잭션입니다. Azure Cosmos DB for PostgreSQL은 첫 번째 문을 기반으로 하는 트랜잭션에서 사용할 연결 수를 결정합니다. 이는 GUC를 사용하여 힌트를 제공하지 않는 한, 다른 쿼리를 제한할 수 있습니다.

BEGIN;
-- add this hint
SET citus.force_max_query_parallelization TO ON;

-- a lightweight query that doesn't require many connections
SELECT count(*) FROM table WHERE filter = x;

-- a query that benefits from more connections, and can obtain
-- them since we forced max parallelization above
SELECT ... very .. complex .. SQL;
COMMIT;

기본값은 false입니다.

작업 추적기 실행기 구성

citus.task_tracker_delay(정수)

이 매개 변수는 작업 관리 라운드 간에 작업 추적기 절전 모드 시간을 설정하고 기본값은 200ms로 설정합니다. 작업 추적기 프로세스는 정기적으로 절전 모드를 해제하고, 할당된 모든 작업을 안내하고, 이러한 작업을 예약하고 실행합니다. 그런 다음 작업 추적기는 이러한 작업을 다시 진행하기 전에 일정 기간 동안 대기합니다. 이 구성 값은 해당 절전 모드 기간의 길이를 결정합니다. 이 매개 변수는 작업자에게 적용되며 postgresql.conf 파일에서 변경해야 합니다. 구성 파일을 편집한 후 사용자는 SIGHUP 신호를 보내거나 서버를 다시 시작하여 변경 내용을 적용할 수 있습니다.

이 매개 변수를 줄이면 관리 라운드 간의 시간 간격을 줄여서 작업 추적기 실행기 때문에 발생하는 지연 시간을 줄일 수 있습니다. 익스텐트 쿼리가 짧아서 상태가 정기적으로 업데이트되는 경우 지연 시간을 줄이면 도움이 됩니다.

citus.max_assign_task_batch_size(정수)

코디네이터의 작업 추적기 실행기는 작업을 일괄 처리로 작업자의 디먼에 동기적으로 할당합니다. 이 매개 변수는 단일 일괄 처리에서 할당할 최대 작업 수를 설정합니다. 일괄 처리 크기를 높게 선택하면 작업을 더 빠르게 할당할 수 있습니다. 그러나 작업자 수가 많으면 모든 작업자가 작업을 가져오는 데 더 오래 걸릴 수 있습니다. 이 매개 변수는 런타임에 설정할 수 있으며 코디네이터에 적용됩니다.

citus.max_running_tasks_per_node(정수)

작업 추적기 프로세스는 할당된 작업을 적절하게 예약하고 실행합니다. 이 구성 값은 지정된 시간에 한 노드에서 동시에 실행할 최대 작업 수를 설정하고 기본값은 8로 설정합니다.

제한은 많은 작업에서 동시에 디스크를 사용하지 않도록 하여 디스크 I/O 경합을 방지하는 데 도움이 됩니다. 쿼리가 메모리 또는 SSD에서 제공되는 경우 큰 걱정 없이 max_running_tasks_per_node를 늘릴 수 있습니다.

citus.partition_buffer_size(정수)

파티션 작업에 사용할 버퍼 크기를 설정하며 기본값은 8MB입니다. Azure Cosmos DB for PostgreSQL을 사용하면 두 개의 대형 테이블을 조인할 때 테이블 데이터를 여러 파일로 다시 분할할 수 있습니다. 이 파티션 버퍼가 채워지면 다시 분할된 데이터가 디스크의 파일로 플러시됩니다. 이 구성 항목은 런타임에 설정할 수 있으며 작업자에게 적용됩니다.

출력 설명

citus.explain_all_tasks(부울)

기본적으로 Azure Cosmos DB for PostgreSQL은 분산 쿼리에서 EXPLAIN을 실행할 때 단일 임의 작업의 출력을 표시합니다. 대부분의 경우 EXPLAIN 출력은 작업 간에 유사합니다. 경우에 따라 일부 작업이 다르게 계획되거나 실행 시간이 훨씬 길어질 수 있습니다. 이 경우 이 매개 변수를 사용하도록 설정하면 EXPLAIN 출력에 모든 작업이 포함되므로 도움이 될 수 있습니다. 모든 작업을 설명하면 EXPLAIN이 더 오래 걸릴 수 있습니다.

citus.explain_analyze_sort_method(열거형)

EXPLAIN ANALYZE의 출력에서 작업의 정렬 방법을 결정합니다. citus.explain_analyze_sort_method 의 기본값은 execution-time입니다.

지원되는 값은 다음과 같습니다.

  • execution-time: 실행 시간을 기준으로 정렬합니다.
  • taskId: 작업 ID를 기준으로 정렬합니다.

관리형 PgBouncer 매개 변수

다음 관리형 PgBouncer 매개 변수는 단일 노드 또는 코디네이터에서 구성할 수 있습니다.

매개 변수 이름 설명 기본값
pgbouncer.default_pool_size 이 매개 변수 값을 사용자/데이터베이스 쌍당 연결 수로 설정합니다. 295
pgbouncer.ignore_startup_parameters PgBouncer에서 무시할 수 있는 쉼표로 구분된 매개 변수 목록입니다. 예를 들어 PgBouncer에서 매개 변수를 무시 extra_float_digits 하도록 할 수 있습니다. 일부 매개 변수는 허용되고 다른 매개 변수는 모두 오류를 발생합니다. 이 기능은 시작 패킷에서 무조건 'extra_float_digits=2'를 설정하려는 과도한 JDBC를 허용하는 데 필요합니다. pq: unsupported startup parameter: extra_float_digits와 같은 보고서 오류를 사용하는 라이브러리인 경우 이 옵션을 사용합니다. extra_float_digits, ssl_renegotiation_limit
pgBouncer.max_client_conn 이 매개 변수 값을 지원하려는 PgBouncer에 대한 최대 클라이언트 연결 수로 설정합니다. 2000
pgBouncer.min_pool_size 이 숫자보다 낮으면 풀에 서버 연결을 더 추가합니다. 0(사용 안 함)
pgBouncer.pool_mode 트랜잭션 풀링을 위해 이 매개 변수 값을 TRANSACTION으로 설정합니다(대부분의 워크로드에 권장되는 설정). TRANSACTION
pgbouncer.query_wait_timeout 최대 시간(초) 쿼리는 실행을 기다리는 데 소요될 수 있습니다. 이 시간 동안 쿼리가 서버에 할당되지 않으면 클라이언트의 연결이 끊어집니다. 20초
pgbouncer.server_idle_timeout 서버 연결이 이 시간(초) 이상 유휴 상태이면 연결이 끊깁니다. 0이면 이 시간 제한이 비활성화됩니다. 60초

PostgreSQL 매개 변수

  • DateStyle - 날짜 및 시간 값의 표시 형식 설정
  • IntervalStyle - 간격 값의 표시 형식 설정
  • TimeZone - 타임스탬프를 표시하고 해석하는 표준 시간대 설정
  • application_name - 통계 및 로그에 보고할 애플리케이션 이름 설정
  • array_nulls - 배열에 NULL 요소 입력을 사용하도록 설정
  • autovacuum - 자동 진공 하위 프로세스를 시작합니다.
  • autovacuum_analyze_scale_factor - 튜플 삽입, 업데이트 또는 삭제 수입니다.
  • autovacuum_analyze_threshold - 분석하기 전에 최소 튜플 삽입, 업데이트 또는 삭제 수
  • autovacuum_naptime - 자동 진공 실행 사이에 절전 모드로 전환
  • autovacuum_vacuum_cost_delay - 진공의 경우 진공 비용 지연(밀리초)
  • autovacuum_vacuum_cost_limit - 자동 진공을 위해 낮잠 전에 사용할 수 있는 진공 비용 금액
  • autovacuum_vacuum_scale_factor - 진공 이전의 튜플 업데이트 또는 삭제 횟수(reltuples의 일부로)
  • autovacuum_vacuum_threshold - 진공 전의 최소 튜플 업데이트 또는 삭제 수
  • autovacuum_work_mem - 각 자동 진공 작업자 프로세스에서 사용할 최대 메모리 설정
  • backend_flush_after - 이전에 수행한 쓰기가 디스크로 플러시된 후의 페이지 수
  • backslash_quote - 문자열 리터럴에서 "'"가 허용되는지 여부 설정
  • bgwriter_delay - 라운드 사이의 백그라운드 기록기 절전 모드 시간
  • backend_flush_after - 이전에 수행한 쓰기가 디스크로 플러시되는 페이지 수
  • bgwriter_lru_maxpages - 라운드마다 플러시할 백그라운드 기록기 최대 LRU 페이지 수
  • bgwriter_lru_multiplier - 라운드당 무료 평균 버퍼 사용량의 배수
  • bytea_output - 바이테아의 출력 형식 설정
  • 검사_function_bodies - CREATE FUNCTION 중에 함수 본문을 확인합니다.
  • 검사point_completion_target - 검사point 동안 더티 버퍼를 검사포인트 간격의 일부로 플러시하는 데 소요된 시간입니다.
  • 검사point_timeout - 자동 WAL 검사포인트 사이의 최대 시간 설정
  • checkpoint_warning - 검사점 세그먼트가 이 값보다 자주 채워지는 경우 경고를 사용합니다.
  • client_encoding - 클라이언트의 문자 집합 인코딩을 설정합니다.
  • client_min_messages - 클라이언트에 전송되는 메시지 수준을 설정합니다.
  • commit_delay - 트랜잭션 커밋과 WAL을 디스크로 플러시하는 사이의 지연 시간(마이크로초) 설정
  • commit_siblings - commit_delay를 수행하기 전의 최소 동시 열린 트랜잭션 수를 설정
  • constraint_exclusion - 플래너가 제약 조건을 사용하여 쿼리를 최적화할 수 있도록 설정
  • cpu_index_tuple_cost - 인덱스 검사 중에 플래너가 각 인덱스 항목을 처리하는 데 들 것으로 예상되는 비용 설정
  • cpu_operator_cost - 플래너가 각 연산자 또는 함수 호출을 처리하는 데 들 것으로 예상되는 비용 설정
  • cpu_tuple_cost - 각 튜플(행)을 처리하는 데 드는 플래너의 예상 비용 설정
  • cursor_tuple_fraction - 검색된 커서 행의 일부에 대한 플래너의 추정치 설정
  • deadlock_timeout - 교착 상태를 검사 전에 잠금을 대기하는 시간(밀리초)을 설정합니다.
  • debug_pretty_print - 구문 분석 및 계획 트리 표시 들여쓰기
  • debug_print_parse - 각 쿼리의 구문 분석 트리를 기록합니다.
  • debug_print_plan - 각 쿼리의 실행 계획을 기록합니다.
  • debug_print_rewritten - 각 쿼리의 다시 작성된 구문 분석 트리를 기록합니다.
  • default_statistics_target - 기본 통계 대상 설정
  • default_tablespace - 테이블 및 인덱스를 만들 기본 테이블스페이스 설정
  • default_text_search_config - 기본 텍스트 검색 구성 설정
  • default_transaction_deferrable - 새 트랜잭션의 기본 연기 가능 상태 설정
  • default_transaction_isolation - 각 새 트랜잭션의 트랜잭션 격리 수준 설정
  • default_transaction_read_only - 새 트랜잭션의 기본 읽기 전용 상태 설정합니다.
  • default_with_oids - 기본적으로 OID를 사용하여 새 테이블 만들기
  • effective_cache_size - 디스크 캐시 크기에 대한 플래너의 가정 설정
  • enable_bitmapscan - 플래너가 비트맵 스캔 계획을 사용할 수 있도록 합니다.
  • enable_gathermerge - 플래너가 병합 플랜 수집을 사용할 수 있도록 합니다.
  • enable_hashagg - 플래너가 해시된 집계 계획을 사용할 수 있도록 합니다.
  • enable_hashjoin - 플래너가 해시 조인 계획을 사용할 수 있도록 합니다.
  • enable_indexonlyscan - 플래너가 인덱스 전용 검사 계획을 사용할 수 있도록 설정
  • enable_indexscan - 플래너가 인덱스 스캔 계획을 사용하도록 설정
  • enable_material - 플래너가 구체화를 사용하도록 설정
  • enable_mergejoin - 플래너가 병합 조인 계획을 사용할 수 있도록 합니다.
  • enable_nestloop - 플래너가 중첩 루프 조인 계획을 사용할 수 있도록 합니다.
  • enable_seqscan - 플래너가 순차 검사 계획을 사용할 수 있도록 합니다.
  • enable_sort - 플래너가 명시적 정렬 단계를 사용할 수 있도록 설정
  • enable_tidscan - 플래너가 TID 스캔 계획을 사용할 수 있도록 설정
  • escape_string_warning - 일반 문자열 리터럴의 백슬래시 이스케이프에 대해 경고
  • exit_on_error - 오류 발생 시 세션 종료
  • extra_float_digits - 부동 소수점 값에 대해 표시되는 자릿수 설정
  • force_parallel_mode - 병렬 쿼리 기능을 사용하도록 강제
  • from_collapse_limit - 하위 쿼리가 축소되지 않는 FROM-list 크기 설정
  • geqo - 유전자 쿼리 최적화 사용
  • geqo_effort - GEQO: 다른 GEQO 매개 변수에 대한 기본값을 설정하는 데 노력이 사용됩니다.
  • geqo_generations - GEQO: 알고리즘의 반복 횟수
  • geqo_pool_size - GEQO: 모집단의 개인 수
  • geqo_seed - GEQO: 임의 경로 선택에 대한 시드
  • geqo_selection_bias - GEQO: 모집단 내 선택적 압력
  • geqo_threshold - GEQO가 사용되는 FROM 항목의 임계값 설정
  • gin_fuzzy_search_limit - GIN에서 정확한 검색에 허용되는 최대 결과 설정
  • gin_pending_list_limit - GIN 인덱스에 대한 보류 중인 목록의 최대 크기 설정
  • idle_in_transaction_session_timeout - 유휴 트랜잭션의 최대 허용 기간 설정
  • join_collapse_limit - JOIN 구문이 평면화되지 않는 FROM-list 크기 설정
  • lc_monetary - 통화 금액의 서식을 지정하기 위한 로캘 설정
  • lc_numeric - 숫자 서식 지정을 위한 로캘 설정
  • lo_compat_privileges - 큰 개체에서 권한 검사 대해 이전 버전과의 호환 모드를 사용하도록 설정합니다.
  • lock_timeout - 잠금 대기의 최대 허용 기간(밀리초)을 설정합니다. 0이 꺼집니다.
  • log_autovacuum_min_duration - 자동 진공 작업이 로그되는 최소 실행 시간 설정
  • log_connections - 성공한 각 연결을 기록합니다.
  • log_destination - 서버 로그 출력의 대상 설정
  • log_disconnections - 기간을 포함하여 세션의 끝을 기록합니다.
  • log_duration - 완료된 각 SQL 문의 기간을 기록합니다.
  • log_error_verbosity - 기록된 메시지의 세부 정보 표시 설정
  • log_lock_waits - 긴 잠금 대기 기록
  • log_min_duration_statement - 명령문이 로그되는 최소 실행 시간(밀리초) 설정 -1은 명령문 로깅 기간을 사용하지 않음
  • log_min_error_statement - 이 수준 이상에서 오류를 생성하는 모든 문이 기록되도록 합니다.
  • log_min_messages - 로깅되는 메시지 수준 설정
  • log_복제본(replica)tion_commands - 각 복제본(replica)tion 명령을 기록합니다.
  • log_statement - 로깅하는 명령문의 유형 설정
  • log_statement_stats - 각 쿼리에 대해 누적 성능 통계를 서버 로그에 씁니다.
  • log_temp_files - 이 킬로바이트 수보다 큰 임시 파일의 사용을 기록합니다.
  • 기본tenance_work_mem - 기본 테넌스 작업에 사용할 최대 메모리 설정
  • max_parallel_workers - 한 번에 활성화할 수 있는 최대 병렬 작업자 수 설정
  • max_parallel_workers_per_gather - 실행기 노드당 최대 병렬 프로세스 수 설정
  • max_pred_locks_per_page - 페이지당 최대 조건자 잠금 튜플 수 설정
  • max_pred_locks_per_relation - 관계당 최대 조건자 잠금 페이지 및 튜플 수 설정
  • max_standby_archive_delay - 핫 대기 서버가 보관된 WAL 데이터를 처리할 때 쿼리를 취소하기 전에 최대 지연 시간 설정
  • max_standby_streaming_delay - 상시 대기 서버가 스트리밍된 WAL 데이터를 처리할 때 쿼리가 취소되는 최대 지연 시간 설정
  • max_sync_workers_per_subscription - 구독당 최대 테이블 동기화 작업자 수
  • max_wal_size - 검사포인트를 트리거하는 WAL 크기 설정
  • min_parallel_index_scan_size - 병렬 검사에 대한 인덱스 데이터의 최소 크기 설정
  • min_wal_size - WAL을 축소하는 최소 크기 설정
  • operator_precedence_warning - PostgreSQL 9.4 이후 의미가 변경된 구문에 대한 경고를 내보낸다.
  • parallel_setup_cost - 병렬 쿼리에 대한 작업자 프로세스를 시작하기 위한 플래너의 예상 비용 설정
  • parallel_tuple_cost - 작업자에서 기본 백 엔드로 각 튜플(행)을 전달하는 데 드는 플래너의 예상 비용 설정
  • pg_stat_statements.save - 서버 종료에서 pg_stat_statements 통계 저장
  • pg_stat_statements.track - pg_stat_statements 추적할 문을 선택합니다.
  • pg_stat_statements.track_utility - 유틸리티 명령이 pg_stat_statements 추적되는지 여부를 선택합니다.
  • quote_all_identifiers - SQL 조각을 생성할 때 모든 식별자를 따옴표로 지정합니다.
  • random_page_cost - 디스크 페이지를 비순차적으로 가져오기 위한 플래너의 예상 비용 설정
  • row_security - 행 보안 사용
  • search_path - 스키마가 한정되지 않은 이름의 스키마 검색 순서 설정
  • seq_page_cost - 순차적으로 가져온 디스크 페이지의 플래너 예상 비용 설정
  • session_복제본(replica)tion_role - 트리거에 대한 세션의 동작을 설정하고 규칙을 다시 작성합니다.
  • standard_conforming_strings - '...' 원인 백슬라이시를 문자 그대로 처리하는 문자열
  • statement_timeout - 문의 허용되는 최대 기간을 밀리초 단위로 설정합니다. 0이 꺼집니다.
  • synchronize_seqscans - 동기화된 순차 스캔 사용
  • synchronous_commit - 현재 트랜잭션의 동기화 수준 설정
  • tcp_keepalives_count - TCP keepalive의 최대 재전송 수
  • tcp_keepalives_idle - TCP keepalives 발급 사이의 시간
  • tcp_keepalives_interval - TCP 유지 재투자 간 시간
  • temp_buffers - 각 데이터베이스 세션에서 사용되는 최대 임시 버퍼 수 설정
  • temp_tablespaces - 임시 테이블 및 정렬 파일에 사용할 테이블스페이스 설정
  • track_activities - 명령 실행에 대한 정보 수집
  • track_counts - 데이터베이스 작업에 대한 통계 수집
  • track_functions - 데이터베이스 작업에 대한 함수 수준 통계 수집
  • track_io_timing - 데이터베이스 I/O 활동에 대한 타이밍 통계 수집
  • transform_null_equals - "expr=NULL"을 "expr IS NULL"로 처리합니다.
  • vacuum_cost_delay - 진공 비용 지연(밀리초)
  • vacuum_cost_limit - 낮잠 전에 사용할 수 있는 진공 비용 금액
  • vacuum_cost_page_더티 - 진공으로 인해 더러워진 페이지의 진공 비용
  • vacuum_cost_page_hit - 버퍼 캐시에 있는 페이지의 진공 비용
  • vacuum_cost_page_miss - 버퍼 캐시에 없는 페이지의 진공 비용
  • vacuum_defer_클린up_age - VACUUM 및 HOT 클린up을 연기해야 하는 트랜잭션 수입니다(있는 경우).
  • vacuum_freeze_min_age - VACUUM이 테이블 행을 고정해야 하는 최소 기간
  • vacuum_freeze_table_age - VACUUM이 전체 테이블을 스캔하여 튜플을 고정해야 하는 기간
  • vacuum_multixact_freeze_min_age - VACUUM이 테이블 행의 MultiXactId를 동결해야 하는 최소 기간
  • vacuum_multixact_freeze_table_age - VACUUM이 전체 테이블을 스캔하여 튜플을 동결해야 하는 Multixact 기간
  • wal_receiver_상태_interval - WAL 수신기 상태 보고서 사이의 최대 간격을 기본으로 설정합니다.
  • wal_writer_delay - WAL 기록기에서 수행된 WAL 플러시 사이의 시간
  • wal_writer_flush_after - 플러시를 트리거하는 WAL 기록기에 의해 작성된 WAL의 양
  • work_mem - 임시 디스크 파일에 쓰기 전에 내부 정렬 작업 및 해시 테이블에서 사용할 메모리 양을 설정합니다.
  • xmlbinary - XML에서 이진 값을 인코딩하는 방법 설정
  • xmloption - 암시적 구문 분석 및 serialization 작업의 XML 데이터를 문서 또는 콘텐츠 조각으로 간주할지 여부를 설정합니다.

다음 단계

  • 서버 매개 변수 외에 또 다른 구성 형태로 클러스터의 리소스 구성 옵션이 있습니다.
  • 기본 PostgreSQL 데이터 베이스에는 구성 매개 변수도 있습니다.