Apache socket_timeout , reply_timeout 설정

성능분석/튜닝 2015. 12. 30. 17:05 Posted by 알 수 없는 사용자

 

socket_timeout & reply_timeout ERROR CODE

· - socket_timeout 발생시 access log에 502(Bad GateWay)이 발생.

· - reply_timeout 발상시 access log에 504(Gateway Time-out) 이 발생.

 

Apache, Tomcat 의 Timeout 관련 테스트

1. mod_jk(worker.properties) 의 socket_timeout 옵션

ex) socket_timeout 을 10초로 설정
worker.worker1.socket_timeout=10
worker.worker1. retries=1

테스트 결과 :
◾클라이언트 요청 이후 10초 이상 응답이 지연되면 클라이언트로 502 리턴 (retries 설정 1 기준)
◾비정상 응답이라 하더라도 클라이언트에게 빠르게 응답을 줄 수 있고, 클라이언트<->웹서버 부하에 대한 timeout 컨트롤을 할 수 있다.
◾다만 WAS의 부하와는 무관한 설정으로, WAS 행업에는 도움이 되지 않는다.

2. Tomcat(server.xml) 의 Stuck Thread Detection Valve 설정

ex) threshold, interruptThreadThreshold 를 각각 5초로 설정
<Valve className="org.apache.catalina.valves.StuckThreadDetectionValve" threshold="5" interruptThreadThreshold=”5” />

테스트 결과 :
◾클라이언트 요청 이후 5초 이상 응답이 지연되면 클라이언트로 500 리턴, 그리고 WAS의 work thread 역시 Exception과 함께 free 상태로 전환한다.
◾클라이언트 & Web & WAS 전체 부하에 대한 timeout 컨트롤을 할 수 있어 효과적이지만, 비교적 Tomcat 최신 버전(7.0.55 이상) 의 기능이고, 운영 상황에서 적용 사례를 찾기 힘들어 side effect 예측 어려움 (* 특이사항으로 jsp, JAVA 로직 안에서 재귀적으로 생성한 thread 동작에 대해서는 Tomcat이 컨트롤하지 못한다.)

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.