PostgreSQL의 shared_buffers
2025. 6. 1. 14:40ㆍDB/Postgres
반응형
PostgreSQL의 shared_buffers
shared_buffers는 PostgreSQL이 운영체제 메모리(RAM)에서 자체적으로 사용하는 캐시 영역이다. 이 설정값은 PostgreSQL 내부에서 데이터를 캐시하여 디스크 I/O를 줄이고 성능을 높이는 역할을 한다.
하지만 PostgreSQL은 운영체제(OS)의 파일 시스템 캐시(페이지 캐시)를 신뢰하는 설계로 되어 있어, 다른 DBMS에 비해 shared_buffers 설정이 상대적으로 작게 설정되는 것이 일반적이다.
25%와 75%
- PostgreSQL에서는 shared_buffers를 전체 시스템 메모리의 25% 정도로 설정하는 것이 일반적인 권장사항이다.
- 예: 시스템 메모리 16GB → shared_buffers = 4GB
- 나머지 75%는 OS의 페이지 캐시에 맡기도록 설계되어 있다.
- OS가 디스크에서 읽은 블록을 자체적으로 캐시하기 때문에, PostgreSQL이 모든 메모리를 직접 관리할 필요가 없다.
✅ PostgreSQL이 리눅스의 고성능 파일 캐시 메커니즘을 활용하도록 설계되었기 때문이다.
🆚 다른 DBMS와의 차이점
PostgreSQL Oracle MySQL (InnoDB) 등
메모리 캐시 방식 | OS 페이지 캐시 활용 중심 + shared_buffers | DBMS 내부 캐시 (SGA, InnoDB buffer pool 등) 중심 |
권장 shared buffer 비율 | RAM의 25% 수준 | 가능한 한 많이 (가능하면 60~80%까지 설정) |
설계 철학 | OS와 협업 | 자체적으로 최대한 관리 |
✅ 정리
- PostgreSQL의 shared_buffers는 일반적으로 RAM의 25% 정도로 설정하며,
- 나머지 75%는 OS 페이지 캐시가 처리하게 설계되어 있음.
- 이는 다른 DBMS와 PostgreSQL의 메모리 사용 철학 차이에 기인한 것임.
반응형
'DBMS > Postgres' 카테고리의 다른 글
pgAdmin4 PostGIS PL/Python 설치 (0) | 2025.07.13 |
---|---|
Postmaster , Backend , Background 프로세스 (0) | 2025.06.01 |
\dt 명령어로 테이블을 조회했을 때 스키마가 보이지 않을 (0) | 2025.05.29 |
권한 부여 (0) | 2025.05.01 |
VirtualBox Ubuntu VM postgres 설 (0) | 2025.04.21 |