tomcat도 아파치 튜닝처럼 운영하면서 최적의 설정값을 찾아내야 합니다. 
apache의 80포트로는 접속이 잘 안되는데, tomcat이 사용하는 8080 포트로는 해당 페이지가 잘 열리는지 살펴보세요. 
아주 예전에 이런 경험이 있어 설정 변경을 했습니다. 

다음은 TOMCAT 홈/conf/server.xml 의 일부 default 설정입니다. 
(2004.중순 tomcat 5.0.x의 기준입니다. 오래됐네요. ^^) 

코드:

    <Connector port="8080" 
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
               enableLookups="false" redirectPort="8443" acceptCount="100" 
               debug="0" connectionTimeout="20000" 
               disableUploadTimeout="true" /> 

    <Connector port="8009" 
               enableLookups="false" redirectPort="8443" debug="0" 
               protocol="AJP/1.3" /> 


위에서 8080으로 쓰이는 connector의 thread 설정 튜닝과 
8009포트를 사용하는 AJP connector의 KeepAlive on/off와 Min/Max process 개수 등의 설정이 필요합니다. 
thread 설정을 약간 늘려보시구요, AJP connector의 maxKeepAliveRequests는 off로 하고 process개수를 변경해보세요. 
80은 접속이 잘 안되고, 8080은 된다면 다음 설정이 효과가 있을겁니다. 설정값은 님이 직접 튜닝하시구요. 

코드:

    <Connector port="8080" 
               maxThreads="300" minSpareThreads="75" maxSpareThreads="150" 
               enableLookups="false" redirectPort="8443" acceptCount="250" 
               debug="0" connectionTimeout="20000" 
               disableUploadTimeout="true" /> 

    <Connector port="8009" 
               enableLookups="false" redirectPort="8443" debug="0" 
               maxKeepAliveRequests="-1" minProcessors="150" maxProcessors="500" 
               protocol="AJP/1.3" /> 


mod_jk socket_timeout

tomcat timeout

tomcat keepalive off

CLOSE_WAIT

max_thread_proc aix

ibatis cache size

java  tomcat

아파치 KeepAliveTimeout

http://www.google.co.kr/search?complete=1&hl=ko&newwindow=1&q=%EC%95%84%ED%8C%8C%EC%B9%98+%EC%9B%B9%EC%84%9C%EB%B2%84+%EC%A3%BD%EC%96%B4%EA%B0%80&lr=&aq=f&oq=


http://tomcat.apache.org/connectors-doc/generic_howto/timeouts.html

http://www.mungchung.com/xe/protip/5401

http://dstein.egloos.com/1598359

http://lonelycat.tistory.com/99

http://www.ietf.org/rfc/rfc0793.txt?number=793

http://www.jspwiki.org/wiki/ApacheTomcatConnection#ref-ApacheTomcatConnection-1

http://hoooow.tistory.com/entry/%EC%95%84%ED%8C%8C%EC%B9%98%EC%9B%B9%EC%84%9C%EB%B2%84%EA%B0%80-%EB%8A%90%EB%A0%A4%EC%A7%80%EA%B1%B0%EB%82%98-%EB%8B%A4%EC%9A%B4%EB%90%98%EB%8A%94-%EC%9B%90

http://www.itmoa.co.kr/gzboard.php?code=techqna&mode=gz_read&Page=6&no=206

http://httpd.apache.org/docs/2.0/ko/misc/perf-tuning.html

 

socket_timeout 은 네트웤이나 다른 어떤  있을경우 응답을 받지 못한다.
그래서 추천하는것이 socket_connect_timeout 이다. 1000에서 5000(milliseconds)  값을 입력하도록한다.

 

firewall 을 사용하는 경우
connection_pool_timeout  connection_pool_minsize 를 사용하도록 한다.
JK 와 톰캣에..

JK쪽에 
 (10분) 을 추천한다.
그리고 톰캣쪽에 server.xml에 설정을 해줘야 한다.
connectionTimeout=600000
 하고 connectionTimeout=600000 하고 맞춰줘야 한다.

Furthermore using the boolean  socket_keepalive you can set a standard socket option, 
that  sends TCP keepalive packets after some idle time on each  By default this is set to "False". 
If you  idle connection drops by firewalls you should set this to 

 


load blancer 설정 에러로 인한  방법(1.2.26버전까지)
error_escalation_time 은 recover_time 의 절반(단위:초) recover_time은 최소 30초는 되어여  
error_escalation_time=15
recover_time=30

 

-- workers.properties load blancer 설정 

# The advanced router LB worker
  worker.list=router

 # Define a worker using ajp13
  worker.worker1.port=8009
  worker.worker1.host=node1.domain.org
 worker.worker1.type=ajp13
  worker.worker1.lbfactor=1
  # Define preferred failover node for  
  worker.worker1.redirect=worker2

  # Define another worker using ajp13
 worker.worker2.port=8009
  worker.worker2.host=node2.domain.org
  worker.worker2.type=ajp13
  worker.worker2.lbfactor=1
  # Disable  for all requests except failover
  worker.worker2.activation=disabled
  
  # Define  LB worker
  worker.router.type=lb
  worker.router.balance_workers=worker1,worker2

+ Recent posts