1.DB 커넥션 풀은 애플리케이션과 DB레벨을 조화해서 설정하는 것이 중요합니다.
애플리케이션 레벨 : 예를 들어 Hikari Pool을 사용하는 경우 vCPU의 2~4배의 풀 사이즈를 설정할 수 있으며 일반적으로 중간값을 설정합니다.
DB 서버 : 서버에 연결되는 Hikari 클라이언트, 즉 애플리케이션 수에 따라 가변적입니다.
예를 들면 다음과 같습니다.
HikariCP를 사용하는 애플리케이션 서버(애플리케이션 당 가상머신 1개)
- 소형 (4vCPU * 8GB) : Pool Size - 16~20
- 중형 (8vCPU * 16GB) : Pool Size - 32~40
- 대형 (16vCPU * 32GB) : Pool Size - 64~80
DB 서버는 32vCPU * 128GB 메모리 인 경우 안정적으로 처리 가능한 활성 커넥션 수는 300 ~ 400 정도 입니다. (그 이상은 CPU/락 경합 때문에 큰 이득이 없음) 이 경우 다음과 같이 조합할 수 있습니다.
- 소형 앱 VM : 최대 15대까지 연결 가능
- 중형 앱 VM : 최대 8대까지 연결 가능
- 대형 앱 VM : 최대 4대까지 연결 가능
2.ABLESTACK이 지원하는 방식으로써 커넥션 풀 외에 물리적으로 DB 성능을 극대화하기 위해서는 데이터 디스크를 RAW 디바이스로 직접 연결해서 쓰는 방식을 선호합니다. 즉, 외장 스토리지의 LUN을 바로 연결하는 방식입니다