2. DBMS이야기/01. PostgreSQL

[PostgreSQL] Configuration 기본튜닝

OSSW(Open Source System SoftWare 2014. 8. 1. 18:29

-- 해당 내용은 postgresql.conf 파일에 환경설정을 해야 적용이 된다.

 

1. 공유 버퍼( shared_buffers ) 조정

  • RDBMS에서 가장 기본인 Shared Buffer 값 조정
  • PostgreSQL 도 여느 RDBMS와 마찬가지로 데이터베이스에 엑세스를 시도하면, 먼저 디스크에서 필요한 데이터를 공유 버퍼로 먼저 읽어 들인다.  그리고, 공유 버퍼에서 데이터를 읽고, 쓰기를 처리한다. 이후, 동일한 데이터 엑세스에 대해서는 공유버퍼에서 읽어 들여, 느린 디스크 엑세스를 줄여 성능을 확보 할 수 있는 기본적인 튜닝이다.
  • 기본적인 디스크 캐싱이라 보면 적절
  • 공유 버퍼의 크기는 기본 32M 이지만, 대략 서버 메모리 기준으로 1/4 ~ 1/2 정도로 할당한다.

 

2. 트랜잭션 로그 버퍼 ( wal_buffers )

  • 공유 버퍼 조정으로 디스크 캐싱하여 성능이 확보 되었다면, 신뢰성을 보장하는 트랜잭션 로그에 대한 설정도 필요
  • 데이터를 업데이트 할 때 어떤 변경을 할 것 인지를 남기는 로그이며, PostgreSQL에서는 WAL(Write Ahead Log)이라 명칭함
  • 손실된 데이터 복원에 아주 중요한 역할
  • config파일에서 wal_buffers 값 변경, 일반적으로 shared_buffers의 1/32 크기로 지정
  • postgresql.conf 내 wal_buffers 설정

 

3. 체크 포인트 세그먼트 ( checkpoint_segments )

  • 아직 디스크에 기록 안 된 공유 버퍼의 페이지를 기록하는 부분의 설정
  • 디폴트는 3세그먼트 이므로, 3*16MB, 즉, 48MB가 쌓이면 디스크에 기록한다는 의미
  • 운영하면서 시스템 상황과 통계치를 근거로 설정. DISK I/O 빈도를 줄여 성능향상에 도움이 됨
  • postgresql.conf 내 Checkpoints 부분 설정

 

출처 : http://hochul.net/blog/postgresql-configuration-tuning-basic-guide/

 

By. 백준