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
'Server > Spring JPA' 카테고리의 다른 글
JPA - Update(수정) 시 save() 메서드를 호출하는 것이 좋을까? (2) | 2022.09.15 |
---|---|
Spring - JpaRepository가 아닌 Repository를 사용해야 하는 이유! (1) | 2022.07.18 |
QueryDSL - Select 성능 개선하는 방법들! (+ JPQL 관련 이슈) (0) | 2022.05.29 |
Java - LazyConnectionDataSourceProxy란? (+Dynamic DataSource) (0) | 2022.05.21 |
QueryDSL - 벌크(Bulk) 연산 시 주의할 점! (0) | 2022.05.08 |