ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PostgreSQL 성능 관련 옵션
    PostgreSQL 2019. 11. 22. 15:15

    autovacuum_max_workers

    CPU의 코어수가 많은 경우 사용가능

    기본값은 0

    동시에 작업을 수행 할 수 있도록 코어 수와 동일한 값으로 설정하면 좋음

    해당 매개 변수와 함께 multiple_autovacuum_workers를 설정해야 함

    이 값은 코어의 1/2보다 큰 값으로 설정

    autovacuum_vacuum_scale_factor

    Vacuuming은 삭제 및 삽입으로 생성된 dead tuples를 제거하는 프로세스

    지정된 임계 값에 따라 테이블을 자동으로 vacuuming 함

    effective_cache_size

    캐시할 수 있는 메모리 양이 증가

    값이 클수록 데이터베이스에서 index를 더 많이 사용함

    권장값은 RAM 값의 50% 이상

    maintenance_work_mem

    vacuuming, 인덱스 생성, 외래 키 확인을위한 유지 보수에 사용

    대형 데이터베이스의 경우 256MB에서 1GB 정도로 값을 설정

    max_connection

    너무 많은 연결로 인한 성능 저하를 막기 위해 연결 수를 제한하기위함

    기본값은 100

    값을 너무 높게 설정하면 대기 시간이 길어짐

    random_page_cost

    기본값은 random_page_cost = 4.0 및 seq_page_cost = 1.0

    shared_buffer

    많은 동시 쿼리를 사용 하거나 웹 응용 프로그램이나 OLAP와 같은 많은양의 CPU를 사용하는 경우 더 많은 버퍼가 필요

    일반적으로 RAM의 1/4 또는 effective_cache_size의 3/4

    그러나 1/4는 small machine에서는 너무 낮을 수 있고 big machine에서는 너무 높을 수 있으므로 1/4로 시작해서 다른 값을 시도하여 적절할 값을 찾아야 함

    synchronous_commit

    기본 구성을 사용하면 success response가 클라이언트에 리턴 된 후 commit이 이루어짐

    이 매개 변수를 on으로 설정하면 success message 수신 여부와 상관없이 데이터베이스 서버에서 커밋이 발생합니다.

    일반적인 권장 사항은 안전을 위해 off로 설정

    (min, max)_wal_size

    최소 1GB로 만들고 최대 수 GB를 50 - 100GB

    max_wal_size의 이점을 얻으려면 checkpoint_timeout을 늘려야 함

    work_mem

    정렬 및 조인과 같은 작업에 사용되는 최대 로컬 프로세스 메모리를 결정

    최적의 값은 OLTP, OLAP 및 DW에 따라 크게 다를 수 있음

    swapping으로 인해 임시 파일을 로깅하면 work_mem 값이 충분하지 않다는 것을 의미함

    'PostgreSQL' 카테고리의 다른 글

    PostgreSQL Server configuration  (1) 2019.11.22
    PostgreSQL 동시성 개요  (0) 2019.11.22
    PostgreSQL Authorization  (0) 2019.11.22
    PostgreSQL 백업 및 복구 - Migration  (0) 2019.11.22
    PostgreSQL 백업 및 복구 - Tool 사용  (0) 2019.11.22
Designed by Tistory.