성능

IBM Cloud® Databases for PostgreSQL 배치는 사용량에 따라 수동으로 스케일링하거나 특정 리소스 조건에서 자동 스케일링하도록 구성할 수 있습니다. 배포 성능을 조정할 때 고려해야 할 몇 가지 요소가 있습니다.

배치 모니터링

Databases for PostgreSQL 배치는 배치에서 리소스 사용량의 기본 모니터링을 위해 IBM Cloud® Monitoring 서비스와의 통합을 제공합니다. 배치에서 Auto-Scaling을 구성하는 데 도움이 되도록 디스크 사용량 및 IOPS와 같은 사용 가능한 많은 메트릭이 제공됩니다. 사용량 추세를 관찰하고 이에 대응하도록 Auto-Scaling을 구성하면 리소스 고갈로 인해 데이터베이스가 불안정해지기 전에 성능 문제를 완화하는 데 도움이 될 수 있습니다.

디스크 IOPS

초당 입출력(I/O) 작업(IOPS) 수는 스토리지 볼륨 유형에 따라 제한됩니다. Databases for PostgreSQL 배치용 스토리지 볼륨은 GB당 10 IOPS 계층의 Block Storage Endurance 볼륨에 프로비저닝됩니다. 작업 부하가 포화되거나 IOPS 한계를 초과하는 경우 디스크가 따라 잡을 수 있을 때까지 데이터베이스 요청 및 작업이 지연됩니다. 장시간 과부하로 인해 배치에서 조회를 처리할 수 없어 사실상 사용할 수 없게 될 수 있습니다. 응답이 지연되고 작업이 실패하는 경우 디스크의 IOPS 한계를 초과할 수 있습니다. 디스크 공간을 늘려서 배치에 사용할 수 있는 IOPS 수를 늘릴 수 있습니다.

프로덕션 환경인 경우 최소한 100GB 디스크(1000 IOPS)를 권장합니다.

메모리 사용량

Databases for PostgreSQL 배치의 메모리 설정은 배치의 총 메모리에 따라 자동으로 튜닝됩니다. 구체적으로, work_mem, maintenance_work_mem, 및 effective_cache_size 는 프로비저닝, 복원 또는 확장 시 설정됩니다.

데이터베이스의 공유 버퍼 풀에 할당되는 메모리 양은 구성 PostgreSQL 파일의 `` shared_buffers 설정을 조정하여 지정할 수 있습니다. 권장 값은 배치의 총 메모리의 25%입니다. 공유 버퍼 풀에 너무 많은 메모리를 할당하면 시스템이 다른 용도로 사용할 메모리를 확보하지 못하게 되어 성능이 저하되거나 데이터베이스가 사용 불가능해질 수 있습니다.

배치에 더 많은 양의 메모리(공유 버퍼 풀 외부)를 할당하면 여전히 성능이 향상됩니다. 예를 들어, PostgreSQL은 성능을 위해 캐시된 디스크 페이지로 메모리를 채웁니다. PostgreSQL에 메모리를 직접 할당할 필요는 없으며, PostgreSQL이 이를 사용할 수 있습니다.

연결 한계

Databases for PostgreSQL에서는 PostgreSQL 데이터베이스에 대한 최대 연결 수를 115로 설정합니다. 데이터베이스의 상태와 무결성을 유지하기 위해 수퍼유저의 경우 15개의 연결이 예비되어 있으며, 사용자 및 사용자 애플리케이션의 경우 100개의 연결이 사용 가능합니다. 연결 한계에 도달한 후 새 연결을 시작하려고 하면 오류가 발생합니다. 배치에 연결이 과도하게 많아지지 않도록 하려면 연결 풀링을 사용하거나 배치를 스케일링하고 연결 한계를 늘리십시오. 자세한 정보는 PostgreSQL 연결 관리 페이지를 참조하십시오.

Databases for PostgreSQL에서는 PostgreSQL 데이터베이스에 대한 최대 연결 수를 115로 설정합니다. 데이터베이스의 상태와 무결성을 유지하기 위해 수퍼유저의 경우 15개의 연결이 예비되어 있으며, 사용자 및 사용자 애플리케이션의 경우 100개의 연결이 사용 가능합니다. 연결 한계에 도달한 후 새 연결을 시작하려고 하면 오류가 발생합니다. 배치에 연결이 과도하게 많아지지 않도록 하려면 연결 풀링을 사용하거나 배치를 스케일링하고 연결 한계를 늘리십시오. 자세한 내용은 연결 PostgreSQL 관리를 참조하십시오.

성능 문제 해결

성능 문제 이해 및 PostgreSQL 해결 방법에 대한 도움말은 성능 문제 PostgreSQL 해결을 참조하십시오.