Server/Spring JPA

Spring Boot - 커넥션 풀 상태 확인하기!

JaeHoney 2022. 6. 11. 13:37

Spring Boot 2.0 이상에서는 DBCP(DataBase Connection Pool) 구현체를 default로 HikariCP를 사용하고 있다.

 

다음의 HikariCP의 프로퍼티를 수정해서 현재 커넥션풀의 상태를 확인할 수 있다.

 

application.properties

logging.level.com.zaxxer.hikari=TRACE
logging.level.com.zaxxer.hikari.HikariConfig=DEBUG

application.yml

logging:
  level:
    com.zaxxer.hikari: TRACE
    com.zaxxer.hikari.HikariConfig: DEBUG

 

결과 아래와 같은 로그를 확인하는 것이 가능하다.

예제 앱에서는 데이터 소스를 4개 사용하고 있다. 하나의 데이터소스는 하나의 커넥션풀을 가지고 커넥션 풀은 기본적으로 10개의 커넥션을 만들어 둔다. 위 설정을 통해 로그로 각 커넥션풀의 상태를 확인할 수 있다.

 

추가적으로 아래의 옵션들을 사용해서 HikariCP를 튜닝할 수 있다.

spring.datasource.hikari.minimumIdle=5
spring.datasource.hikari.connectionTimeout=10000
spring.datasource.hikari.maximumPoolSize=10
spring.datasource.hikari.idleTimeout=10000
spring.datasource.hikari.maxLifeTime=580000
spring.datasource.hikari.autoCommit=true
spring.datasource.hikari.data-source-properties.cachePrepStmts=true
spring.datasource.hikari.data-source-properties.prepStmtCacheSize=200
spring.datasource.hikari.data-source-properties.prepStmtCacheSqlLimit=2048
spring.datasource.hikari.data-source-properties.useServerPrepStmts=true

Reference