본문 바로가기
반응형

 

Response Time, Think Time, Request interval.. 등 다양한 옵션이 있는데

 

WebLogic (외 기타WAS) Thread 는 무엇으로 튜닝하면 좋을까

 

 

 

Thread 개수는 보통 평균 Active User 수로 하는것이 적당하다.

> 예를 들어, 동시에 300명이 접속하고, 응답시간은 3초, 사용자들이 보내는 다음 요청까지 시간이 15초

 

이 경우 300*3 / (15+3) = 50

쓰레드 수는 50개가 적당하다.

다만, 피크타임 등을 생각했을 때, 50개는 과부하의 위험이 있으므로 50개는 최소 스레드의 값으로 적당하다.

 


 

 

일반적으로 쓰레드 수는 50~100개 정도를 둔다고 한다.

웹로직은 최대 400개 까지 지원하지만 보통은 그렇게 쓰지 않는다.

 

 

그럼 이어서 위와 같은 상황이지만, 유저수가 5배 더 많을때는 어떻게 WAS를 구성할까?

평균 Active User 가 약 300이므로,

3개의 JVM 스레드 100개 (instance 3대) 또는 5개의 JVM에서 스레드 60개 (instance 5대) 등으로 구성할 수 있다.

실 성능은 직접 비교를 해봐야 하는데, 위와같이 3개, 5개의 인스턴스는 스레드의 갯수 만으로 결정하는 방식이고 그 외에 메모리 크기나 GC, CPU 등 복합적인 요소를 생각하여 서버 및 스레드를 튜닝해야 한다.

 

 

> 결론으로는 하나의 도메인은 다음과 같은 구성이 일반적이라고 볼 수 있다.

 

1. Failover 를 위해 2개 이상의 인스턴스 구성

2. 힙메모리 낭비를 막기 위한 적절한 메모리(GC 테스트 이후 결정, 애플리케이션에 따라 다름)ㅖ

3. 50~100개 정도의 스렏그

4. Full GC 가 최대 4초가 되지 않을 수 있도록

 

 

728x90
반응형

한걸음 한걸음

개인적인 기록