TIL
DeadLock 피하기_커넥션풀 설정과 스레드 개수
HANDA개발
2022. 9. 2. 10:06
[Spring] DB커넥션풀과 Hikari CP 알아보기
실무환경에서 DataBase 성능 최적화 및 ORM에 대해 이야기 할때 커넥션풀이라는 단어가 자주 등장하여 한번 정리가 필요할 것 같아 정리한 포스트 입니다.
velog.io
DeadLock 피하기
이론적으로 필요한 최소한의 커넥션 풀 사이즈를 알아보면 다음과 같다.
PoolSize = Tn × ( Cm -1 ) + 1
- Tn : 전체 Thread 갯수
- Cm : 하나의 Task에서 동시에 필요한 Connection 수
위와 같은 식으로 설정을 한다면 데드락을 피할 수는 있겠지만 여유 커넥션풀이 하나 뿐이라 성능상 좋지 못하다.
따라서 커넥션풀의 여유를 주기위해 아래와 같은 식을 사용하는것을 권장한다.
PoolSize = Tn × ( Cm - 1 ) + ( Tn / 2 )
- thread count : 16
- simultaneous connection count : 2
- pool size : 16 * ( 2 – 1 ) + (16 / 2) = 24
더 자세히 알아보고 싶으면 다음 블로그에서 확인하면 좋을듯 하다.
HikariCP Dead lock에서 벗어나기 (실전편)