HANDA개발
HANDA개발공부
HANDA개발
전체 방문자
오늘
어제
  • HANDA_list
    • 취업일지
    • 일상
    • TIL
    • Linux
    • RabbitMQ
    • Spring
      • Security
      • Batch
      • Project
    • ERROR
    • DB
      • Oracle
      • PostgreSQL
    • JUnit
    • JAVA
    • AWS
    • OAuth2.0
    • Redis
    • API
    • Jenkins
    • Nigix
    • CS
    • 코테준비
      • 자료구조
      • 알고리즘
    • 학교수업
    • 디자인패턴

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • oracle
  • cmd
  • SpringBatch
  • 애플코딩
  • 역직렬화
  • java실행과정
  • valid어노테이션
  • Spring
  • 재실행
  • mybatis
  • 상태관리
  • error
  • 프로그래머스
  • 명령어
  • 데이터베이스
  • 프로시져호출
  • JAVA명령어
  • JVM
  • MQ
  • batch
  • EAI
  • Parameter
  • gson
  • @Valid
  • Job
  • 공부준비
  • 어노테이션
  • garbaage
  • 스프링배치
  • 다른파라미터

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HANDA개발

HANDA개발공부

TIL

DeadLock 피하기_커넥션풀 설정과 스레드 개수

2022. 9. 2. 10:06

참고 | https://velog.io/@miot2j/Spring-DB%EC%BB%A4%EB%84%A5%EC%85%98%ED%92%80%EA%B3%BC-Hikari-CP-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

 

[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에서 벗어나기 (실전편)

'TIL' 카테고리의 다른 글

[Read IT Today] 20220914  (0) 2022.09.15
wsl2 설치 및 도커설치  (0) 2022.09.13
SSL Exception 해결하기. 500에러  (0) 2022.08.29
jackson 으로 json값 주고 받기 (+ gson)  (0) 2022.08.25
cmd 명령어 정리  (0) 2022.08.25
    'TIL' 카테고리의 다른 글
    • [Read IT Today] 20220914
    • wsl2 설치 및 도커설치
    • SSL Exception 해결하기. 500에러
    • jackson 으로 json값 주고 받기 (+ gson)
    HANDA개발
    HANDA개발

    티스토리툴바