Amazon Relational Database Service
사용 설명서 (API 버전 2014-10-31)

Amazon Aurora PostgreSQL 참조

Amazon Aurora PostgreSQL 파라미터

Amazon Aurora DB 클러스터는 다른 Amazon RDS DB 인스턴스와 마찬가지로 DB 파라미터 그룹의 파라미터를 사용하여 관리합니다. Amazon Aurora는 DB 클러스터가 다수의 DB 인스턴스로 구성되는 다른 DB 엔진들과 다릅니다. 따라서 Amazon Aurora DB 클러스터를 관리하는 데 사용하는 일부 파라미터는 엔진 클러스터에 적용되는 반면, 또 다른 일부 파라미터는 DB 클러스터의 특정 DB 인스턴스에만 적용됩니다.

클러스터 수준의 파라미터는 DB 클러스터 파라미터 그룹에서 관리됩니다. 인스턴스 수준의 파라미터는 DB 파라미터 그룹에서 관리됩니다. Aurora PostgreSQL DB 클러스터의 각 DB 인스턴스는 PostgreSQL 데이터베이스 엔진과 호환되기는 하지만, PostgreSQL 데이터베이스 엔진 파리미터의 일부는 클러스터 수준에서만 적용해야 하며 DB 클러스터 파라미터 그룹을 사용하여 관리됩니다. 클러스터 수준 파라미터는 Aurora PostgreSQL DB 클러스터의 DB 인스턴스에 대한 DB 파라미터 그룹에 없으며 이 주제의 뒷부분에 나와 있습니다.

클러스터 수준 파라미터와 인스턴스 수준 파라미터는 모두 Amazon RDS 콘솔, AWS CLI 또는 Amazon RDS API를 사용하여 관리할 수 있습니다. 클러스터 수준 파라미터와 인스턴스 수준 파라미터를 관리하기 위한 명령은 서로 다릅니다. 예를 들어 modify-db-cluster-parameter-group AWS CLI 명령을 사용하여 DB 파라미터 그룹의 클러스터 수준 파라미터를 관리할 수 있고, modify-db-parameter-group AWS CLI 명령을 사용하여 DB 클러스터의 DB 인스턴스에 대한 DB 파라미터 그룹의 인스턴스 수준 파라미터를 관리할 수 있습니다.

클러스터 수준 파라미터와 인스턴스 수준 파라미터는 모두 Amazon RDS 콘솔에서 확인하거나 AWS CLI 또는 Amazon RDS API를 사용하여 확인할 수 있습니다. 예를 들어 describe-db-cluster-parameters AWS CLI 명령을 사용하여 DB 파라미터 그룹의 클러스터 수준 파라미터를 확인하고, describe-db-parameters AWS CLI 명령을 사용하여 DB 클러스터의 DB 인스턴스에 대한 DB 파라미터 그룹의 인스턴스 수준 파라미터를 확인할 수 있습니다.

파라미터 그룹에 대한 자세한 내용은 DB 파라미터 그룹 작업 단원을 참조하십시오.

클러스터 수준 파라미터

다음 표에는 전체 Aurora PostgreSQL DB 클러스터에 적용되는 모든 파라미터가 나와 있습니다.

파라미터 이름 수정 가능

archive_command

아니요

archive_timeout

아니요

array_nulls

autovacuum

autovacuum_analyze_scale_factor

autovacuum_analyze_threshold

autovacuum_freeze_max_age

autovacuum_max_workers

autovacuum_multixact_freeze_max_age

autovacuum_naptime

autovacuum_vacuum_cost_delay

autovacuum_vacuum_cost_limit

autovacuum_vacuum_scale_factor

autovacuum_vacuum_threshold

autovacuum_work_mem

backslash_quote

client_encoding

data_directory

아니요

datestyle

default_tablespace

default_with_oids

extra_float_digits

huge_pages

아니요

intervalstyle

lc_monetary

lc_numeric

lc_time

log_autovacuum_min_duration

max_prepared_transactions

password_encryption

아니요

port

아니요

rds.extensions

아니요

rds.force_autovacuum_logging_level

rds.force_ssl

server_encoding

아니요

ssl

synchronous_commit

timezone

track_commit_timestamp

vacuum_cost_delay

vacuum_cost_limit

vacuum_cost_page_hit

vacuum_cost_page_miss

vacuum_defer_cleanup_age

vacuum_freeze_min_age

vacuum_freeze_table_age

vacuum_multixact_freeze_min_age

vacuum_multixact_freeze_table_age

wal_buffers

인스턴스 수준 파라미터

다음 표에는 Aurora PostgreSQL DB 클러스터의 특정 DB 인스턴스에 적용되는 모든 파라미터가 나와 있습니다.

파라미터 이름 수정 가능

application_name

authentication_timeout

auto_explain.log_analyze

auto_explain.log_buffers

auto_explain.log_format

auto_explain.log_min_duration

auto_explain.log_nested_statements

auto_explain.log_timing

auto_explain.log_triggers

auto_explain.log_verbose

auto_explain.sample_rate

backend_flush_after

bgwriter_flush_after

bytea_output

check_function_bodies

checkpoint_flush_after

checkpoint_timeout

아니요

client_min_messages

config_file

아니요

constraint_exclusion

cpu_index_tuple_cost

cpu_operator_cost

cpu_tuple_cost

cursor_tuple_fraction

db_user_namespace

아니요

deadlock_timeout

debug_pretty_print

debug_print_parse

debug_print_plan

debug_print_rewritten

default_statistics_target

default_transaction_deferrable

default_transaction_isolation

default_transaction_read_only

effective_cache_size

effective_io_concurrency

enable_bitmapscan

enable_hashagg

enable_hashjoin

enable_indexonlyscan

enable_indexscan

enable_material

enable_mergejoin

enable_nestloop

enable_seqscan

enable_sort

enable_tidscan

escape_string_warning

exit_on_error

아니요

force_parallel_mode

from_collapse_limit

geqo

geqo_effort

geqo_generations

geqo_pool_size

geqo_seed

geqo_selection_bias

geqo_threshold

gin_fuzzy_search_limit

gin_pending_list_limit

hba_file

아니요

hot_standby_feedback

ident_file

아니요

idle_in_transaction_session_timeout

join_collapse_limit

lc_messages

listen_addresses

아니요

lo_compat_privileges

아니요

log_connections

log_destination

log_directory

아니요

log_disconnections

log_duration

log_error_verbosity

log_executor_stats

log_file_mode

아니요

log_filename

log_hostname

log_line_prefix

아니요

log_lock_waits

log_min_duration_statement

log_min_error_statement

log_min_messages

log_parser_stats

log_planner_stats

log_replication_commands

log_rotation_age

log_rotation_size

log_statement

log_statement_stats

log_temp_files

log_timezone

아니요

log_truncate_on_rotation

아니요

logging_collector

아니요

maintenance_work_mem

max_connections

max_files_per_process

max_locks_per_transaction

max_replication_slots

max_stack_depth

max_standby_archive_delay

아니요

max_standby_streaming_delay

아니요

max_wal_senders

max_worker_processes

min_parallel_relation_size

old_snapshot_threshold

operator_precedence_warning

parallel_setup_cost

parallel_tuple_cost

pg_hint_plan.debug_print

pg_hint_plan.enable_hint

pg_hint_plan.enable_hint_table

pg_hint_plan.message_level

pg_hint_plan.parse_messages

pg_stat_statements.max

pg_stat_statements.save

pg_stat_statements.track

pg_stat_statements.track_utility

pgaudit.log

pgaudit.log_catalog

pgaudit.log_level

pgaudit.log_parameter

pgaudit.log_relation

pgaudit.log_statement_once

pgaudit.role

postgis.gdal_enabled_drivers

quote_all_identifiers

random_page_cost

rds.force_admin_logging_level

rds.log_retention_period

rds.rds_superuser_reserved_connections

rds.superuser_variables

아니요

replacement_sort_tuples

restart_after_crash

아니요

row_security

search_path

seq_page_cost

session_replication_role

shared_buffers

shared_preload_libraries

sql_inheritance

ssl_ca_file

아니요

ssl_cert_file

아니요

ssl_ciphers

아니요

ssl_key_file

아니요

standard_conforming_strings

statement_timeout

stats_temp_directory

아니요

superuser_reserved_connections

아니요

synchronize_seqscans

syslog_facility

아니요

tcp_keepalives_count

tcp_keepalives_idle

tcp_keepalives_interval

temp_buffers

temp_tablespaces

track_activities

track_activity_query_size

track_counts

track_functions

track_io_timing

transaction_deferrable

transaction_read_only

transform_null_equals

unix_socket_directories

아니요

unix_socket_group

아니요

unix_socket_permissions

아니요

update_process_title

wal_receiver_status_interval

wal_receiver_timeout

wal_sender_timeout

work_mem

xmlbinary

xmloption

Amazon Aurora PostgreSQL 이벤트

다음은 Aurora PostgreSQL의 일반 대기 이벤트입니다.

BufferPin:BufferPin

이 대기 이벤트에서는 세션이 데이터 버퍼에 액세스하려고 대기 중이며 이 기간 동안 다른 세션은 해당 버퍼를 검사할 수 없습니다. 다른 프로세스에서 해당 버퍼로부터 마지막으로 읽은 데이터에 열린 커서를 유지하는 경우 버퍼 핀 대기가 연장될 수 있습니다.

Client:ClientRead

이 대기 이벤트에서는 세션이 애플리케이션 클라이언트에서 데이터를 받고 있습니다. 이 대기는 COPY 문을 사용한 대량 데이터 로드 중에, 또는 클라이언트와 데이터베이스 간의 많은 왕복 횟수를 사용하여 Aurora에 데이터를 전달하는 애플리케이션에서 일반적으로 발생할 수 있습니다. 트랜잭션당 높은 클라이언트 읽기 대기 횟수는 파라미터 전달 같은 과다한 왕복 시간을 나타낼 수도 있습니다. 이 값을 트랜잭션당 필요 문 수와 비교해야 합니다.

IO:DataFilePrefetch

이 대기 이벤트에서는 세션이 Aurora Storage의 비동기 미리 가져오기를 대기 중입니다.

IO:DataFileRead

이 대기 이벤트에서는 세션이 Aurora Storage에서 데이터를 읽고 있습니다. 이는 I/O 집약적인 워크로드에 대해 발생하는 일반적인 대기 이벤트일 수 있습니다. SQL 문에서 다른 SQL 문에 비해 상대적으로 높은 비율의 이 대기 이벤트를 보이는 경우 이 상황은 대량의 데이터를 읽어야 하는 비효율적인 쿼리 계획을 사용 중일 때 발생할 수 있습니다.

IO:XactSync

이 대기 이벤트에서는 세션이 COMMIT 또는 ROLLBACK을 실행 중이며, 현재 트랜잭션의 변경 내용이 유지되어야 합니다. Aurora은 Aurora 스토리지가 지속성을 확인할 때까지 대기 중입니다.

이 대기는 시스템에서 커밋 활동 비율이 매우 높은 경우에 흔히 발생합니다. 이따금 트랜잭션을 일괄적으로 커밋하도록 애플리케이션을 수정하면 이 대기가 완화되기도 합니다. DB 로드가 DB 인스턴스에 대한 가상 CPU(vCPU) 수를 초과하는 경우 CPU 대기와 동시에 이 대기를 볼 수 있습니다. 이 경우 CPU 집약적인 데이터베이스 워크로드가 존재하는 CPU에 대해 스토리지 지속성 경합이 벌어질 수도 있습니다. 이 시나리오를 완화하려는 경우 이러한 워크로드를 줄이거나 더 많은 vCPU를 사용하는 DB 인스턴스로 확장해 볼 수 있습니다.

Lock:transactionid

이 대기 이벤트에서는 세션이 다른 세션에 의해 수정된 데이터를 수정하려고 하며, 다른 세션의 트랜잭션이 커밋되거나 롤백되기를 기다리고 있습니다. 차단 및 대기 세션은 pg_locks 보기에서 살펴볼 수 있습니다.

LWLock:buffer_content

이 대기 이벤트에서는 다른 세션에서 특정 데이터 페이지에 대해 쓰기 잠금을 설정한 동안 세션에서 메모리 내 해당 페이지 읽기 또는 쓰기를 대기 중입니다. 여러 세션에 의한 동일 데이터 부분의 잦은 업데이트로 인해 단일 페이지(핫 페이지)에 대한 쓰기 경합이 심화되어 이 대기 이벤트가 일반적으로 발생할 수 있습니다. 외래 키 제약 조건의 과도한 사용으로 잠금 기간이 길어져서 경합이 증가할 수 있습니다. 외래 키 제약 조건 사용과 관련하여 high buffer_content 대기가 발생하는 워크로드를 검토하여 해당 제약 조건이 필요한지 여부를 확인해야 합니다.

모든 PostgreSQL 대기 이벤트의 전체 목록은 PostgreSQL wait-event table을 참조하십시오.