shared_buffers - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

shared_buffers

shared_buffers 파라미터는 PostgreSQL이 데이터를 메모리에 캐시하는 데 사용하는 메모리 양을 제어합니다. 이 매개 변수를 적절한 값으로 설정하면 쿼리 성능을 개선하는 데 도움이 될 수 있습니다.

Amazon RDS의 경우 DB 인스턴스의 사용 가능한 메모리를 기준으로 의 기본값이 {DBInstanceClassMemory/32768} 바이트로 shared_buffers 설정됩니다. Aurora의 경우 DB 인스턴스의 사용 가능한 메모리를 기준으로 기본값이 로 {DBInstanceClassMemory/12038,-50003} 설정됩니다. 이 파라미터의 최적값은 데이터베이스 크기, 동시 연결 수, 사용 가능한 인스턴스 메모리 등 여러 요인에 따라 달라집니다.

AWS CLI 구문

다음 명령은 특정 DB 파라미터 그룹에 shared_buffers 대해 변경됩니다. 이 변경 사항은 파라미터 그룹을 사용하는 모든 인스턴스 또는 클러스터에 적용됩니다.

# Modify shared_buffers on a DB parameter group aws rds modify-db-parameter-group \ --db-parameter-group-name <parameter_group_name> \ --parameters "ParameterName=shared_buffers,ParameterValue=<new_value>,ApplyMethod=immediate" # Modify shared_buffers on a DB cluster parameter group aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name <parameter_group_name> \ --parameters "ParameterName=shared_buffers,ParameterValue=<new-value>,ApplyMethod=immediate"

유형: 정적 (변경 사항을 적용하려면 재부팅해야 함)

기본값: {DBInstanceClassMemory/12038,-50003} PostgreSQL용 Amazon RDS에서는 {DBInstanceClassMemory/32768} 바이트, Aurora에서는 PostgreSQL과 호환됩니다. 대부분의 경우 이 방정식은 시스템 메모리의 약 25% 를 차지합니다. 이 지침에 따라 파라미터 그룹의 shared_buffers 설정은 바이트 또는 킬로바이트 대신 PostgreSQL의 기본 단위인 8K 버퍼를 사용하여 설정됩니다.

shared_buffers파라미터 설정은 성능에 상당한 영향을 미칠 수 있으므로 변경 내용을 철저하게 테스트하여 해당 값이 워크로드에 적합한지 확인하는 것이 좋습니다.

Amazon RDS 또는 Aurora에서 PostgreSQL 데이터베이스를 실행하는 금융 서비스 애플리케이션이 있다고 가정해 보겠습니다. 이 데이터베이스는 고객 거래 데이터를 저장하는 데 사용됩니다. 많은 수의 테이블이 있으며 많은 서버의 여러 애플리케이션에서 액세스할 수 있습니다. 응용 프로그램의 쿼리 성능이 느리고 CPU 사용량이 높습니다. shared_buffers매개 변수를 조정하면 성능 향상에 도움이 될 수 있다고 판단합니다.

Amazon RDS for PostgreSQL에서는 shared_buffers 기본값이 db.r5.xlarge 사용 가능한 메모리의 바이트 단위 (예: 3GB) 로 {DBInstanceClassMemory/32768} 설정됩니다. 적절한 값을 결정하기 위해 shared_buffers 사용 가능한 메모리의 기본값부터 시작하여 값을 점진적으로 늘려가면서 다양한 값을 사용하여 일련의 테스트를 실행합니다. shared_buffers 각 테스트에 대해 데이터베이스의 쿼리 성능과 CPU 사용량을 측정합니다.

테스트 결과를 바탕으로 값을 shared_buffers 8GB로 설정하면 워크로드에 대한 전체 쿼리 성능과 CPU 사용량이 가장 좋다고 판단합니다. 이 값은 데이터베이스 크기, 쿼리 수 및 복잡성, 동시 사용자 수, 사용 가능한 시스템 리소스 등 워크로드 특성에 대한 테스트 및 분석을 조합하여 결정됩니다. 변경 후에는 모니터링 시스템이 데이터베이스 성능을 검사하여 새 값이 워크로드에 적합한지 확인합니다. 그런 다음 필요에 따라 추가 매개 변수를 미세 조정하여 성능을 더욱 개선할 수 있습니다.