KeepAlive정의
특정 한 프로세스가 특정 사용자의 지속적인 요청 작업들을 계속해서 처리하도록
함.
즉, 첫 요청 시에 열어 놓은 Port를 끊지
않고, 지정된 KeepAliveTimeout동안 idle하면 끊는다.
KeepAliveTimeout값이 채워지기 전에
다시 요청이 온다면 다시 KeepAliveTimeout은 다시 0부터 Count를
수행한다.
최종적으로, KeepAliveTimeout
지정한 시간만큼 idle하면 그때, 해당 Port연결을
끊는다.
설정법
KeepAlive [On/Off]
MaxKeepAliveRequest [회수]
KeepAliveTimeout
[초]
사용
예
KeepAlive On
MaxKeepAliveRequest 100
KeepAliveTimeout 60
개인적인
견해
Client 수가 많을 경우, 상당히 민감하게 작용하는 부분이므로 신중히 설정하여야 한다.
보통 단발성 요청들이 많을 경우,
KeepAlive를 Off하는 것이 좋을 수도 있다.
허나, KeepAlive를 사용하면
웹브라저상에서의 체감속도는 빨라진다는것을 잊지 말자.
필자의 경우, 예전에 그림 파일들이 엑박이 뜨는 문제가 발생하여 해결하고자 사이트 지원을
나갔었는데,
이 문제는 특정 날에만 발생을 하였다.
Access로그를 분석한 결과, 해당 날에 요청이 급격히 많았음을
확인하였고,
Errorlog상에서는 많은 요청들이
웹서버단에서 튕겨버림을 확인하였다.
이때, KeepAliveTimeout의 값은 60초 였으며, 서비스 성격 특성상 많은 이미지 파일들의
요청이 src="http://~ " 형식으로 되어 있어서 이 이미지 처리를 위해 매번 이미지 요청시마다 소켓이 새로 생성되었던
것이였다.
그에 따라, KeepAliveTimeout의 수치를 10초 내로 줄였다. 그러자 해당 문제는 해결 되었다.