1

I have a problem with an apache who's stalling with too much requests. When I take a look at the server-status page I can see that most of the connections are in state "Reading Request", but do not finish. When I do a graceful restart, all of the "Reading Request"-connections disappear. Because the restart does not take long, I belief the connections are not used any more.

The apache is filling up with these request over some time (> 30 minutes). But when the connections are not used any more, I would expect some timeout to kill these connections, but this does not happen or the timeout is too big.

Does anyone know which timeout should kill these connections or am I searching at the wrong point?

Some details to the setup:
apache 2.0.55 on HP-UX with mod_jk 1.2.10
Most of the connections in state "Reading Request" are connections to an tomcat backend over mod_jk (client --> HP-UX apache --> Tomcats), but not all of them.
I know that mod_jk is a very old version, it is planned to be updated soon.

But I do not suspect mod_jk, because the same effect appears when redirecting the connections to another apache with newer mod_jk and then redirecting the connections to the tomcats (client --> HP-UX apache --> Linux apache --> Tomcats). It is always the HP-UX apache filling up with "RR"-connections.

Christian
  • 4,703
  • 2
  • 24
  • 27
  • *But I do not suspect mod_jk, because the same effect appears when redirecting the connections to another apache with newer mod_jk and then redirecting the connections to the tomcats*. But in the end, you're still connecting to the same Tomcat application on the backend, right? This seems to implicate the Tomcat application even more. – Stefan Lasiewski Oct 12 '10 at 03:38

2 Answers2

1

What is your workers.properties file content? Do you try to use socket_timeout?

  socket_timeout    0   Socket timeout in seconds used for the communication
                        channel between JK and remote host. If the remote host
                        does not respond inside the timeout specified, JK will
                        generate an error, and retry again. If set to zero
                        (default) JK will wait for an infinite amount of time on
                        all socket operations.

By default the socket_timeout is infinite.

Maxfer
  • 193
  • 10
  • Agreed. Apache is probably not the cause here, it's more likely Tomcat. But, since the web clients go through Apache, you see the stalled symptoms in Apache. – Stefan Lasiewski Oct 12 '10 at 03:34
1

What are the timeout values for Apache in httpd.conf? And is keepalive on or off? Having a too long TimeOut would easily do the thing you are currently seeing.

Janne Pikkarainen
  • 31,852
  • 4
  • 58
  • 81
  • 1
    it's not the apache timeout value, but the mod_jk timeout value. it's either the socket_timeout option mentioned by Maxfer or the connection_pool_timeout setting. – Christian Aug 12 '10 at 12:28