PostgreSQL에서 shared_buffers라는 값은 데이터를 메모리에 캐싱하는 크기를 의미한다. 즉 shared_buffers 크기가 클수록 더 많은 데이터를 메모리에 캐싱할 수 있고 그 데이터를 조회할 때 디스크에서 I/O 하지 않고 메모리에서 빠르게 읽는다. 성능이 좋아진다.
shared_buffers는 기본값이 128MB로 매우 보수적으로 설정되어 있다. 메모리가 충분한데 성능에 기여를 안 하고 있는 셈이다. 때문에 대부분의 운영 환경에서 늘려줄 필요가 있다.
postgresql.conf 파일에서 변경할 수 있다.
postgresql 공식 문서에 따르면 물리 메모리의 25% 까지 설정할 것을 권장한다. 만약 32GB RAM을 쓰는 장비면 8GB까지 설정해도 된다는 거다.
하지만 25%라는 수치는 단일 서버에 postgresql db를 메인으로 사용할 때가 기준일 것이라서 만약 다른 애플리케이션이 같이 돌아가는 환경이면 다른 애플리케이션이 사용하는 메모리를 제외하고 계산하는 게 좋을 거 같다.
아무튼 그런 걸 감안하더라도 요즘 RAM은 어지간하면 8GB, 16GB고 32GB 넘어가는 경우도 많기 때문에 기본 설정 값인 128MB는 너무 작다. 더 늘려줘도 된다.