Hi,

I have dedicated RHEL5 boxes (dedicate quad core, 4GB RAM) setup with both apache httpd and tomcat running on the same box, with a hardware load balancer selecting the node a user is routed to. I have mod_jk setup, but am seeing some behaviour I'm not sure is correct. This is on httpd 2.2.3, tomcat 6.0.16, and mod_lk version of 1.2.26. The load balancer pings the machines every 2 seconds as part of a health check.


Below are the relevant bits of my configuration:

mod_jk.conf
==========
LoadModule      jk_module modules/mod_jk.so
JkLogFile       /var/log/httpd/mod_jk.log
JkLogLevel      info
JkWorkersFile   /etc/httpd/conf.d/workers.properties
JkShmFile       /var/log/httpd/jk.shm
JkShmSize       800
JkOptions       +ForwardURICompatUnparsed
JkMount         /* ajp13
JkUnMount       /cacti/* ajp13
JkUnMount       /manager/* ajp13

workers.properties
==============
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.maintain=60
worker.ajp13.type=ajp13
# worker.ajp13.connection_pool_minsize=0
worker.ajp13.connection_pool_timeout=600
worker.ajp13.connect_timeout=10000
worker.ajp13.prepost_timeout=10000
worker.ajp13.max_packet_size=16384

httpd.conf
========
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      800
MaxClients       800
MaxRequestsPerChild  0
</IfModule>

server.xml
========
<Connector port="8009" connectionTimeout="600000" minSpareThreads="5" packetSize="16384" address="127.0.0.1" enableLookups="false" disableUploadTimeout="true" maxSpareThreads="75" maxThreads="800" protocol="AJP/1.3" />

On one machine, after 5 or 6 hours, when I run netstat to look at connections between http and tomcat, I have 250 or so:

tcp 0 0 ::ffff:127.0.0.1:8009 ::ffff: 127.0.0.1:60408 ESTABLISHED

whereas the other machine only has 40 or so, and they are equally load balanced. I tried setting worker.ajp13.connection_pool_minsize=0 but this has no effect on what I'm seeing.

Is this the behaviour I should expect? The load on the machine is not that heavy, at the busiest period there would be 3 request per second going to the box.

I wouldn't expect this number to keep growing, especially under light load.

I'm also seeing a few errors like the following in mod_jk.log:

[Thu Mar 05 10:34:08.878 2009] [25849:3086382864] [info] ajp_process_callback::jk_ajp_common.c (1603): Writing to client aborted or client network problems [Thu Mar 05 10:34:08.878 2009] [25849:3086382864] [info] ajp_service::jk_ajp_common.c (2186): (ajp13) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1) [Thu Mar 05 10:34:08.878 2009] [25849:3086382864] [info] jk_handler::mod_jk.c (2357): Aborting connection for worker=ajp13 [Thu Mar 05 10:34:28.527 2009] [26222:3086382864] [info] ajp_process_callback::jk_ajp_common.c (1603): Writing to client aborted or client network problems [Thu Mar 05 10:34:28.527 2009] [26222:3086382864] [info] ajp_service::jk_ajp_common.c (2186): (ajp13) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1) [Thu Mar 05 10:34:28.528 2009] [26222:3086382864] [info] jk_handler::mod_jk.c (2357): Aborting connection for worker=ajp13 [Thu Mar 05 10:36:01.071 2009] [25855:3086382864] [info] ajp_process_callback::jk_ajp_common.c (1603): Writing to client aborted or client network problems [Thu Mar 05 10:36:01.072 2009] [25855:3086382864] [info] ajp_service::jk_ajp_common.c (2186): (ajp13) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1) [Thu Mar 05 10:36:01.072 2009] [25855:3086382864] [info] jk_handler::mod_jk.c (2357): Aborting connection for worker=ajp13 [Thu Mar 05 11:53:42.298 2009] [27523:3086382864] [info] ajp_process_callback::jk_ajp_common.c (1603): Writing to client aborted or client network problems [Thu Mar 05 11:53:42.298 2009] [27523:3086382864] [info] ajp_service::jk_ajp_common.c (2186): (ajp13) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1) [Thu Mar 05 11:53:42.298 2009] [27523:3086382864] [info] jk_handler::mod_jk.c (2357): Aborting connection for worker=ajp13 [Thu Mar 05 12:08:07.551 2009] [28365:3086382864] [info] ajp_process_callback::jk_ajp_common.c (1603): Writing to client aborted or client network problems [Thu Mar 05 12:08:07.551 2009] [28365:3086382864] [info] ajp_service::jk_ajp_common.c (2186): (ajp13) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1) [Thu Mar 05 12:08:07.551 2009] [28365:3086382864] [info] jk_handler::mod_jk.c (2357): Aborting connection for worker=ajp13 [Thu Mar 05 12:08:17.432 2009] [28428:3086382864] [info] ajp_process_callback::jk_ajp_common.c (1603): Writing to client aborted or client network problems [Thu Mar 05 12:08:17.432 2009] [28428:3086382864] [info] ajp_service::jk_ajp_common.c (2186): (ajp13) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1) [Thu Mar 05 12:08:17.433 2009] [28428:3086382864] [info] jk_handler::mod_jk.c (2357): Aborting connection for worker=ajp13 [Thu Mar 05 12:12:19.656 2009] [28363:3086382864] [info] ajp_process_callback::jk_ajp_common.c (1603): Writing to client aborted or client network problems [Thu Mar 05 12:12:19.656 2009] [28363:3086382864] [info] ajp_service::jk_ajp_common.c (2186): (ajp13) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1) [Thu Mar 05 12:12:19.657 2009] [28363:3086382864] [info] jk_handler::mod_jk.c (2357): Aborting connection for worker=ajp13

Can anyone see anything wrong with the configuration?

Cheers,
Ian Long
Chief Software Architect, Opterus Inc.

Email: ian.l...@opterus.com
Phone: 416-840-8495 x666
Mobile: 416-817-9206
Web: http://www.opterus.com





Reply via email to