1. 웹서버
1.1 KeepAlive
웹 서버와 웹 브라우저가 연결이 되었을 때 KeepAlive 기능이 켜져 있지 않으면, 매번 HTTP 연결을 맺었다 끊었다가 하는 작업을 반복한다.
1.2 KeepAlive Timeout
이 설정은 초 단위로 KeepAlive가 끊기는 시간을 지정, 즉 마지막 연결이 끝난 이후에 다음 연결이 될 때까지 얼마나 기다릴지를 지정함.
2. WAS
2.1 DB Connection Pool 및 Thread Pool 설정
최소 및 최대 값을 동일하게 하는 것이 좋음(Thread Pool, DB Connection Pool 공통), 만약 사용자 수가 갑자기 증가하면 DB Connection Pool의 개수도 증가되어야 하고, 증가할 때 대기 시간이 발생할 확률이 크기 때문(Thread Pool 또한 대기 시간 발생)
DB Connection Pool은 보통 40~50개로 지정하며, Thread Pool은 이보다 10개 정도 더 지정. 이렇게 지정하는 이유는, Thread Pool의 수가 DB Connection Pool의 개수보다 적으면 적은 수만큼의 연결은 필요 없기 때문 (모든 애플리케이션이나 화면이 DB에 접속하는 것은 아님)
그러나 최종적인 DB Connection Pool 과 Thread Pool의 수는 성능 테스트를 통해 결정하여야 함.
2.2 WAS 인스턴스 개수 설정
CPU 소켓당 1인스턴스를 하는 것이 좋음. 여러개의 인스턴스에서 경합을 하면서 CPU를 차지하려고 하기 때문에..
Memory의 경우 Full GC가 발생할 때마다 많은 시간이 소요될 확률이 커지기 때문에 가급적이면 512MB~2GB 사이에서 지정
단독 인스턴스를 구성하여 사용하는 것은 서버에 예기치 못한 상황이 발생했을 때 서비스가 불가능해지므로 되도록 피해야 함. 장비가 한 대여도, 두 개 이상의 인스턴스가 서로 클러스터링하도록 지정하여 사용자의 세션 정보를 공유하도록 하는 것이 좋음.
Thread Pool 과 DB Connection Pool의 개수가 많을때 (통상적으로 100) 또한 인스턴스를 분리하는 것이 좋음.
2.3 Session Timeout 시간 설정
WEB-INF 폴더 하단의 web.xml 파일 통해 설정
해당 설정을 하지 않으면 세션정보를 삭제하지 않으니 필히 할 것.
2.4 GC 설정
GC야 말로 정답이 없음. 반드시 성능 테스트를 통해 최적의 퍼포먼스가 나오는 값을 찾아야 함.
'IT > MiddleWare(WEB WAS)' 카테고리의 다른 글
[WEBTOB]HSTS 설정 (0) | 2020.11.23 |
---|---|
[JEUS]jsper jsp파서 사용 (0) | 2020.11.11 |
[JEUS]JDBC 연결이 되지 않을 시 확인사항 (0) | 2020.10.08 |
[JEUS]servlet 버전 차이에 따른 url slash 결과 차이 (0) | 2020.06.09 |
[WEBTOB]하나의 LISTEN PORT에서 다중의 SSL인증서 적용 (0) | 2020.05.20 |