Aurora PostgreSQL의 shared_buffers DB 파라미터 기본값이 Amazon RDS PostgreSQL의 기본값보다 높은 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 1월 13일

Amazon Aurora PostgreSQL의 shared_buffers DB 파라미터 기본값이 Amazon Relational Database Service(Amazon RDS) PostgreSQL의 기본값보다 높은 이유는 무엇입니까?

​해결 방법

PostgreSQL은 shared_buffers에 시스템 메모리의 25%에 해당하는 적절한 시작 값을 사용할 것을 권장합니다. 하지만 워크로드 요구 사항에 따라 이 값을 변경할 수 있습니다. 워크로드에 대한 적절한 shared_buffers 값을 확인하려면 리소스 소비에 대한 PostgreSQL 설명서를 참조하십시오.

PostgreSQL은 캐싱(이중 버퍼링)을 위해 운영 체제에 크게 의존합니다. 따라서 shared_buffers에 RAM의 40% 이상을 할당할 경우, 더 작은 값을 할당하는 경우에 비해 더 좋은 성능을 발휘할 가능성이 낮아집니다.

RDS DB 인스턴스의 경우 DB 파라미터 그룹의 기본값은 총 메모리의 25%로 설정됩니다. 하지만 Aurora DB 인스턴스의 경우에는 DB 파라미터 그룹의 기본값이 총 메모리의 75%로 설정됩니다. 이는 Aurora PostgreSQL이 이중 버퍼링을 제거하고 파일 시스템 캐시를 활용하지 않기 때문입니다. 따라서 Aurora PostgreSQL은 shared_buffers를 늘려 성능을 개선할 수 있습니다. Aurora PostgreSQL을 사용할 때에는 shared_buffers DB 파라미터에 대해 75%를 기본값으로 사용하는 것이 가장 좋습니다. 기본값이 더 작을 경우 데이터 페이지에 사용할 수 있는 메모리가 작아지고 Aurora 스토리지 하위 시스템의 I/O가 증가하여 성능이 저하될 수 있습니다. 자세한 내용은 Amazon Aurora PostgreSQL 참조를 확인하십시오.

참고: 일부 워크로드의 경우에는 shared_buffers 파라미터 값을 줄여야 할 수 있습니다. 예를 들어 워크로드에서 기본값보다 많은 수의 연결을 수락하거나 크기가 더 큰 work_mem, ,maintenance_work_mem 등을 자주 사용하는 경우 파라미터 값을 줄여야 할 수 있습니다. 하지만 shared_buffers 값이 작아지면 캐시 적중률도 낮아집니다. 결과적으로 스토리지 액세스가 빈번하기 때문에 데이터베이스 페이지의 액세스 지연 시간이 길어질 수 있습니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?