파라미터 목록
카카오 클라우드에서는 PostgreSQL 설정에 필요한 다양한 파라미터들을 제공합니다.
일부 파라미터는 함수, 수식, 예약어를 지원하며 자세한 내용은 파라미터 그룹 > 파라미터에 사용되는 수식, 함수, 예약어를 참고하시기 바랍니다.
파라미터들의 단위(unit), 유형, 데이터 형식, 수정 여부 등 자세한 내용은 콘솔 내 파라미터 그룹 상세 보기에서 확인할 수 있습니다.
데이터 형식 Float
데이터 형식이 Float 파라미터는 값을 표시할 때 %.6g 형식을 사용합니다. 이 형식은 소수점을 제외한 유효 숫자 6자리까지만 출력하며 자릿수가 초과될 경우 자동으로 반올림처리해 표시되므로 파라미터 그룹에서 입력한 값과 실제 DB에서 확인되는 값과 다를 수 있습니다.
수정 시 주의해야 하는 파라미터
적절한 값으로 설정하지 않으면 PostgreSQL 서비스 운영에 영향을 미칠 수 있으므로 수정 시 주의가 필요한 파라미터입니다.
주의
PostgreSQL은 내부 구조상 전체 프로세스 수를 262,143개 이하로 제한하고 있습니다.
autovacuum_max_workers, max_connections, max_wal_senders, max_worker_processes의 합이 262,143을 초과하는 경우 해당 파라미터들의 설정 값은 적용되지 않습니다.
| 파라미터 이름 | 설명 | 주의 사항 |
|---|---|---|
| autovacuum_work_mem | Autovacuum 작업을 위한 메모리 크기 (-1은 maintenance_work_mem 사용) | 기본값은 -1로 별도의 메모리 크기가 설정되어 있지 않으며 maintenance_work_mem 값을 대신 사용하도록 설정되어 있습니다.데이터베이스 제약사항에 따라 0 ~ 1023 값은 설정할 수 없습니다.해당 파라미터를 별도의 지정 값으로 설정하는 경우, 전체 메모리 사용량이 autovacuum_work_mem × autovacuum_max_workers까지늘어날 수 있으므로 수정 시 주의가 필요합니다. |
| effective_cache_size | 쿼리 플래너가 사용 가능한 캐시 메모리를 추정할 때 사용하는 값 | 실제 메모리를 직접 할당하지는 않지만 데이터베이스 서버의 전체 메모리 규모를 고려하여 적절히 설정해야 합니다. |
| maintenance_work_mem | 유지보수 작업(VACUUM, CREATE INDEX 등)에서 사용할 최대 메모리 크기 | 해당 메모리는 작업 단위로 개별 할당되므로 여러 작업이 동시에 수행될 경우 전체 메모리 사용량이 증가하여 서비스에 영향을 미칠 수 있습니다. |
| max_connections | 동시에 허용되는 최대 클라이언트 연결 수 | 각 연결에 시스템 자원을 소비하므로 과도하게 큰 값을 설정할 경우, CPU 및 메모리 사용으로 시스템 부하로 서비스에 영향을 미칠 수 있습니다. |
| max_locks_per_transaction | 트랜잭션 당 획득할 수 있는 최대 락 개수 | 과도하게 큰 값을 설정할 경우, 메모리 부족으로 인해 서비스 기동에 문제가 발생할 수 있습니다. |
| max_parallel_workers | 서버에서 허용되는 최대 병렬 작업자 수 | 서버 사양에 맞지 않는 큰 값을 설정할 경우, CPU 및 메모리 사용으로 시스템에 부하를 줄 수 있습니다. |
| max_pred_locks_per_transaction | 각 트랜잭션에서 획득할 수 있는 최대 예측 락 개수 | 과도하게 큰 값을 설정할 경우, 메모리 부족으로 인해 서비스 기동에 문제가 발생할 수 있습니다. |
| max_prepared_transactions | 동시에 사용할 수 있는 최대 사전 준비된 트랜잭션 수 | 과도하게 큰 값을 설정할 경우, 메모리 부족으로 인해 서비스 기동에 문제가 발생할 수 있습니다. |
| max_worker_processes | 병렬 처리, 백그라운드 작업, 확장 기능 등에서 실행될 수 있는 최대 백그라운드 작업자 수 | 너무 낮게 설정할 경우, 기능이 제대로 동작하지 않거나 병렬 처리에 제한이 있을 수 있으며 반대로 너무 크게 설정하는 경우 메모리 부족으로 인해 서비스 기동에 문제가 발생할 수 있습니다. |
| shared_buffers | 테이블 및 인덱스 데이터를 캐시 하기 위한 Shared memory 크기를 지정하는 파라미터 | 너무 작게 설정하면 성능 저하가, 너무 크게 설정하면 시스템 과부하나 장애가 발생할 수 있어 주의가 필요합니다. |
| wal_keep_size | 보존할 WAL 파일의 최소 크기를 지정하는 설정 | 복제 지연이 발생했을 때 스탠바이 서버가 필요한 WAL 파일을 받지 못하면 복제 연결이 끊어질 수 있으므로 충분한 값으로 설정해 WAL이 삭제되지 않도록 해야 합니다. |
| work_mem | 정렬, 해시, 집계 등의 쿼리 작업에 할당되는 메모리 크기 | 작업 단위별로 별도 할당되기 때문에 동시 실행되는 쿼리가 많을 경우 메모리 사용량이 증가해 서비스에 영향을 미칠 수 있습니다. |
권장값·제한이 있는 파라미터
제공하는 파라미터 중 운영 정책상 권장하는 설정값이 있거나 직접 설정할 수 없는 파라미터입니다.
| 파라미터 이름 | 설명 |
|---|---|
| application_name | 현재 세션을 실행하는 애플리케이션의 이름을 지정 변경이 필요한 경우, SET 명령을 통해 Session-level로 설정할 수 있습니다. |
| client_encoding | 클라이언트와 서버 간의 문자 인코딩 방식을 설정 변경이 필요한 경우, SET 명령을 통해 Session-level로 설정할 수 있습니다. PostgreSQL에서 지원하는 캐릭터셋만 사용할 수 있으며, 목록과 자세한 설명은 공식 문서를 참고하시기를 바랍니다. |
| DateStyle | 날짜와 시간의 출력 형식을 설정 다른 데이터스타일 사용시에는 디비 파라미터가 아닌 alter user 로 set로 설정해 사용자의 데이터스타일을 고정해 사용하시는 것을 권장합니다. |
| lc_messages | 메시지 및 오류 메시지 언어 설정 운영체제에서 제공하는 로케일 정보를 기반으로 제공되며 시스템에 등록된 로케일 외의 값은 설정할 수 없습니다. |
| lc_monetary | 화폐 단위 형식을 결정하는 로케일 운영체제에서 제공하는 로케일 정보를 기반으로 제공되며 시스템에 등록된 로케일 외의 값은 설정할 수 없습니다. |
| lc_numeric | 숫자 형식을 결정하는 로케일 운영체제에서 제공하는 로케일 정보를 기반으로 제공되며 시스템에 등록된 로케일 외의 값은 설정할 수 없습니다. |
| lc_time | 날짜 및 시간 형식을 결정하는 로케일 운영체제에서 제공하는 로케일 정보를 기반으로 제공되며 시스템에 등록된 로케일 외의 값은 설정할 수 없습니다. |
| log_statement_stats | 쿼리 실행 통계를 로깅할지 여부log_parser_stats, log_planner_stats, log_executor_stats가 모두 비활성화(OFF)되어야만 설정할 수 있습니다. |
| log_timezone | 로그 타임스탬프에 사용할 시간대 설정할 수 있는 타임존은 주요 국가 및 지역 기준으로 제공됩니다. |
| tcp_keepalives_count | TCP 연결이 끊어지기 전에 보낼 최대 keepalive 패킷 수 운영체제의 TCP Keepalive 설정에 따라 결정되어 수정이 불가능합니다. |
| tcp_keepalives_idle | TCP 연결이 비활성 상태로 유지될 수 있는 최대 시간(초) 운영체제의 TCP Keepalive 설정에 따라 결정되어 수정이 불가능합니다. |
| tcp_keepalives_interval | TCP keepalive 패킷 간격(초) 운영체제의 TCP Keepalive 설정에 따라 결정되어 수정이 불가능합니다. |
| TimeZone | 서버에서 사용할 기본 시간대 설정 가능한 타임존은 주요 국가 및 지역 기준으로 제공됩니다. |
| wal_buffer | WAL 로그 버퍼 크기 데이터베이스 제약사항에 따라 0 ~ 3의 값은 설정할 수 없습니다. |