Print
카테고리: [ Apache HTTP Server ]
조회수: 39834

1. 개요

사용자 급증에 따라 WEB, WAS 설정을 변경했습니다. WEB서버에선 ThreadsPerChild와 ThreadLimit 을 늘려줬고,

WAS에서도 maxThreads 값을 늘려주었지요. WEB 쪽에서 별도로 커넥션 풀 설정들은 하지 않았어요.

적용하고 며칠간 모니터링을 한다고 Apache server-status 를 보는데 W 가 너무 많은 겁니다. 

(W : Sending Reply 입니당.)

이런 경우 보셨나요..ㅠ_ㅠ

 

구글링을 해보니 최악의 경우에는 Apache를 재설치해야 한다고!! 하더라구요..제발 그런 상황까지는 되지 않길 바라며..

원복을 해보는 대신에(사실 원복을 할수 없는 사연이...있..) 몇가지 설정을 추가해 봤습니다.

조금 의심이 되는 부분이 발견됐거든요. :)

 

 

2. W 상태인 커넥션을 살펴보자.

W 상태가 지속되는 커넥션들을 보니 모두 WAS와 연동되는 커넥션이었어요.

며칠간 모니터링을 해봤는데 시간이 계속 증가합니다. (맙소사) 갯수도 늘어나구요..완전 Stuck 상태로 보이더라구요.. -_-

이대로두면 서비스도 안되겠다며..혹시 몰라 재기동 조치부터 해봤지만 역시나 기동 이후로 계속 증가하네요.

엇, 뭔가 스쳐지나가는 생각에...!

이 커넥션들이 timeout 없이 무한 대기하는걸까 라는 생각이 들더라구요.. 안되면 업그레이드 하지 뭐..라고 생각하며..

우선 timeout 설정 해보기로 결심했습니다.

 

 

3. Timeout 설정들을 적용해보자.

WEB-WAS 연동 설정을 우선 살펴보았어요. 

workers.properties 파일을 열고 디폴트로 설정되어 있던 부분을 살짝 변경해서

커넥션 풀에대한 min/max 제한 값들은 제외하고 timeout 설정들만 적용해보았습니다.

 

>> Apache HTTP Server

# workers.properties
worker.xxx.socket_timeout=300
worker.xxx.connect_timeout=30000
worker.xxx.connection_pool_timeout=20

 

>> Apache Tomcat

# server.xml
연동 대상 Connector 설정 항목에 다음을 추가
connectionTimeout="30000"

 

 

4. 모니터링

제발 timeout 이 먹어주었으면...하고 기대하면서 모니터링을 해보았습니다. 

언제나 그랬듯 server-status를 확인해보았어요. 계속 하염없이 늘어나던 W들..없네요 없어욧!

timeout 의 고마움과 중요성을 다시금 깨닫는 순간이었답니다. 

 

Total accesses: 17239167 - Total Traffic: 2292.9 GB20.6 requests/sec - 2.8 MB/second - 139.5 kB/request
52 requests currently being processed, 8140 idle workers

 > 내겐 너무 예쁜 화면 ↓ (*^^*)

________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
__________________________________C_R___KR______________________
________________________________________________________________
_KK_____K_K__K___________W_______KC_________KK__K_____CRC___R_KR
___K_____W__K__WRKK_C___R_C_C___C_______C___RC__KRK______RWCW_K_
R______________________________R___W____________________________
________________________________________________________________
___R____________________________________________________________
________________________________________________________________
________________________________K_______________________________
________________________________________________________________
________________________________________________________________
____________________R___________________________________________
____________________________R________________________K__________