PostgreSQL 최대 사용 메모리 수정하는 방법

PostgreSQL의 성능이 좋지 못하다고 판단이 들 때 최대 사용 가능한 메모리를 늘려서 성능 향상을 노려볼 수 있습니다. PostgreSQL에서 수정할 수 있는 메모리 설정들은 여러 가지입니다. 상황에 맞게 메모리를 수정하시면 됩니다.

PostgreSQL 메모리 설정

1. shared_buffers

shared_buffers는 PostgreSQL 서버 프로세스 간에 공유되는 메모리 버퍼의 크기를 지정합니다. 주로 데이터베이스의 테이블 및 인덱스 데이터를 캐싱하는 데 사용됩니다. 데이터베이스의 전반적인 성능에 영향을 주는 설정 값입니다. RAM이 충분한 시스템에서 이 값을 증가시키면, 더 많은 데이터를 메모리에 캐싱할 수 있어 디스크 I/O를 줄일 수 있습니다.

 

[현재 설정 확인]

SHOW shared_buffers;

 

[값 변경]

ALTER SYSTEM SET shared_buffers = '512MB';

 

이 메모리 설정은 서버가 시작될 때 한 번만 설정되므로 변경하려면 postgresql를 재시작해야 반영됩니다.

 

2. work_mem

정렬 작업이나 해시 테이블 생성과 같은 개별 쿼리 연산에 할당되는 메모리의 최대 양을 설정합니다. 복잡한 쿼리(특히 조인과 정렬이 많은 쿼리)의 실행 시간이 긴 경우에 늘려볼 수 있습니다. 그러나 너무 높게 설정하면 동시에 많은 쿼리가 실행될 때 시스템 전체의 메모리 사용량이 증가하므로 주의가 필요합니다.

 

[현재 설정 확인]

SHOW work_mem;

 

[값 변경]

SET work_mem = '64MB';

이 메모리는 SET 명령어로도 서버 재기동 없이 값을 바로 바꿀 수 있습니다. 다만 해당 세션에만 적용되고 서버가 재시작되면 다시 원래 값으로 돌아갑니다.

 

3. maintenance_work_mem

VACUUM, 인덱스 생성 및 기타 유지 관리 작업에 사용되는 메모리의 최대 양을 지정합니다. 큰 테이블에서 VACUUM, 인덱스 작업, 테이블 수정 작업 등 유지 보수 작업이 느릴 때 늘려서 성능 향상을 노려볼 수 있습니다.

 

[현재 설정 확인]

SHOW maintenance_work_mem;

 

maintenance_work_mem

 

[값 변경]

SET maintenance_work_mem = '256MB';

 

반응형

댓글

Designed by JB FACTORY