- DB connection pool과 스레드 개수는 메모리와 관련이있다.
- 많이 사용할 수록 메모리를 많이 점유한다.
- 개수를 적게 지정하면 서버에서는 많은 요청을 처리하지 못하고 대기하게된다.
- WAS에서 기본 개수가 10~20개 정도이다.
- DB connection pool은 보통 40~50개로 지정하고 스레드 개수는 이보다 10개 정도 더 지정한다.
- 스레드 개수 < DB connection pool : 스레드가 적은만큼 연결 필요가 없어진다.
- 스레드 개수 > DB connection pool : 여유분을 갖도록위함이다.
- 적합한 개수는 서버와 애플리케이션 상황에 따라 다르다.
- 서비스 및 서버의 상황에 맞게 값을 지정해야한다. -> 성능테스트
- DB의 CPU 사용량이 100% 도달했다면 ? CPU를 점유하는 쿼리를 찾는다 -> 인덱스가 없거나, 테이블을 풀 스캔하는 쿼리가 있는지 , 쿼리의 플랜을 확인한다.
- DB connection pool 지정 개수를 전부 사용한다고 개수를 막 늘리면 DB사용량이 늘고 응답 시간이 느려진다
- DB의 CPU 사용량이 50% 미만이고 WAS의 CPU 사용량이 100%일때 : WAS의 애플리케이션을 튜닝한다. 이미 튜닝했다면 -> 커넥션풀을 늘리기, 서버 대수 늘리는것은 가장 마지막에 고려할 것
음..회사에서 DB의 CPU점유율이 상당히 높은 편이다..이유는 바로 가장많이 이용하는 부분의 쿼리들 때문!!
이 부분도 팀원들이랑 개선점 찾아서 진행하고싶다
'* > What I did today' 카테고리의 다른 글
@Jacksonized (0) | 2023.06.06 |
---|---|
객체지향 (0) | 2023.03.23 |
How to Achieve More (3) | 2023.03.14 |
Tree (0) | 2023.01.10 |
null 대신 Optional 클래스 (0) | 2023.01.02 |
GC (0) | 2023.01.01 |
static 변수는 JVM의 어디에 저장될까 ? (0) | 2022.12.25 |
JVM (0) | 2022.12.24 |