🌿 Spring

[SpringBoot] Jpa Connection Minimum-Idle μ„€μ •ν•˜μ§€ 말자... μ—λŸ¬ ν›„κΈ°

μ—°_우리 2022. 12. 4. 23:27
λ°˜μ‘ν˜•

 

 

 

ν•œλ™μ•ˆ DB에 컀λ„₯μ…˜μ—λŸ¬κ°€ λ°œμƒν–ˆμ–΄μ„œ maximum-pool-sizeλ₯Ό μ„€μ •μ£Όμ—ˆλŠ”λ°

minimum-idle μ…‹νŒ…λ„ μžˆμ–΄μ„œ 같이 μ…‹νŒ…ν•΄μ£Όμ—ˆμ—ˆλ‹€.

spring:
    datasource:
    	hikari:
            ...
            minimum-idle: 5
            maximum-pool-size: 10

 

 

 

그런데..... μ²˜μŒλ³΄λŠ” μ—λŸ¬κ°€ λ°œμƒν–ˆλ‹€

HikariPool-1 - Connection is not available, request timed out after 45005ms.

 

 

μ˜€μž‰???? μ΄μƒν•˜λ„€

이 μ„œλ²„λŠ” μ²˜μŒλ„μš°λŠ” μ„œλ²„κ°€ μ•„λ‹ˆλΌ 이전에도 계속 λŒμ•„κ°€κ³ μžˆμ—ˆλ˜ μ„œλ²„κ³ ,

사싀 컀λ„₯μ…˜ μ—λŸ¬κ°€ λ‚ κ±°μ˜€μœΌλ©΄ μš”μ²­μ΄ 더 λ§Žμ•˜μ„ λ•Œ μ—λŸ¬κ°€ λ‚¬μ–΄μ•Όν–ˆλŠ”λ°..

μ§€κΈˆμ€ μš”μ²­μ΄ μƒλŒ€μ μœΌλ‘œ μ μ€νŽΈμΈλ° μ—λŸ¬κ°€ λ‚˜μ„œ μ˜μ•„ν•΄ν–ˆλ‹€

 

 

μ—¬λŸ¬κ°€μ§€ μ΄μœ κ°€ μžˆμ—ˆκ² μ§€λ§Œ

λ‹¨νŽΈμ μœΌλ‘œ λ³€κ²½λœ 것은 λ‘κ°œ μ…‹νŒ…μ΄ μΆ”κ°€λœ κ²ƒμ΄μ˜€λ‹€.

 

 

 

κ·Έλž˜μ„œ μ°Ύμ•„λ³΄λ‹ˆ...


This property controls the minimum number of idle connections that HikariCP tries to maintain in the pool. If the idle connections dip below this value and total connections in the pool are less than maximumPoolSize, HikariCP will make the best effort to add additional connections quickly and efficiently. However, for higher performance and response, is recommend not set this value instead allow HikariCP to act as a fixed size connection pool.


minimum-idle은 기본적으둜 maximum-pool-size와 λ™μΌν•œ κ°’μœΌλ‘œ μ„€μ •λ˜λŠ”λ°,

졜적의 μ„±λŠ₯κ³Ό 응닡성을 μš”κ΅¬ν•œλ‹€λ©΄ μ„€μ •ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹λ‹€κ³ ν•œλ‹€.

 

 

 

μ²˜μŒμ—” μ™œ κ·ΈλŸ°κ°€ μ‹Άμ—ˆλŠ”λ° κ°„λ‹¨νžˆ μ˜ˆμƒν•  수 μžˆλŠ” λ¬Έμ œμ˜€λ‹€.

(μ„€μ • μ•ˆν•¨μ„ ꢌμž₯ν•˜λŠ”κ±°λ©΄ μ™œ μ…‹νŒ…ν•  수 있게 ν•΄λ‘”κ±°μ•Ό?!?!)

 

 

 

예λ₯Όλ“€μ–΄ μƒκ°ν•΄λ³΄μž.

minimum으둜 μ…‹νŒ…λœ 5개 컀λ„₯μ…˜μ΄ λͺ¨λ‘ μ‚¬μš©μ€‘μ΄λ‹€.

μΆ”κ°€μ μœΌλ‘œ 컀λ„₯μ…˜μ„ 1개 μ‚¬μš©ν•΄μ•Όν•˜λ‹ˆ 컀λ„₯μ…˜μ„ μƒˆλ‘œ λ§Œλ“ λ‹€

μ²˜λ¦¬μ™„λ£Œ

μΌμ •μ‹œκ°„μ΄ μ§€λ‚˜μž μΆ”κ°€λ‘œ λ§Œλ“  컀λ„₯μ…˜μ΄ ν•„μš” 없을 것 κ°™λ‹€. 컀λ„₯μ…˜ ν•΄μ œ!

...

κ°‘μžκΈ° μš”μ²­μ΄ 급증해 컀λ„₯μ…˜μ΄ 4κ°œκ°€ μΆ”κ°€λ‘œ ν•„μš”ν•˜λ‹€

컀λ„₯μ…˜μ„ 또 4개 μƒˆλ‘œ λ§Œλ“ λ‹€

컀λ„₯μ…˜ λ§Œλ“€λ•ŒκΉŒμ§€ μ²˜λ¦¬ν•΄μ•Όν•  μž‘μ—…μ€ λŒ€κΈ°ν•œλ‹€..

 

근데 이러면..

컀λ„₯μ…˜ν’€μ„ μ‚¬μš©ν•˜λŠ” μ˜λ―Έκ°€ 없지 μ•Šλ‚˜?! (λ¨Έμ“±)

 

 

 

 

 

λ‚˜λŠ” νŠΈλž˜ν”½μ— 따라 컀λ„₯μ…˜μ΄ μœ λ™μ μœΌλ‘œ 움직이면

λ‚­λΉ„λ˜λŠ” 컀λ„₯μ…˜ 없이 DBλ₯Ό 효과적으둜 μ“Έ 수 μžˆμ„κ±°λΌ μƒκ°ν–ˆμ—ˆλŠ”λ°

잘λͺ»λœ μƒκ°μ΄μ˜€λ‹€ πŸ˜…

μƒˆλ‘œμš΄ 연결을 λ§Ίμ„λ•ŒκΉŒμ§€ μ‹œκ°„μ΄ μ†Œμš”λ˜κΈ° λ•Œλ¬Έμ— 고정적인 μ„±λŠ₯을 λ‚Ό 수 μ—†μœΌλ‹ˆ

λ‚­λΉ„λ˜λŠ” 컀λ„₯μ…˜ μžμ›μ΄ μžˆλ”λΌλ„ minimumκ³Ό maximum의 μ‚¬μ΄μ¦ˆλ₯Ό κ³ μ •μ‹œν‚€λŠ”κ²Œ 더 μ’‹λ‹€κ³ ν•œλ‹€!

 

 

 

 

 

 

μ°Έκ³ 

https://javabom.tistory.com/101

https://netmarble.engineering/hikaricp-options-optimization-for-game-server

λ°˜μ‘ν˜•
  • 넀이버 λΈ”λŸ¬κ·Έ κ³΅μœ ν•˜κΈ°
  • 페이슀뢁 κ³΅μœ ν•˜κΈ°
  • νŠΈμœ„ν„° κ³΅μœ ν•˜κΈ°
  • ꡬ글 ν”ŒλŸ¬μŠ€ κ³΅μœ ν•˜κΈ°
  • μΉ΄μΉ΄μ˜€ν†‘ κ³΅μœ ν•˜κΈ°