The Apache web server in my RHEL shows many requests in R (..reading..) state. I want to find the client IPs that are making Apache wait in reading state. Specifically: I want to find out all the client IPs that are spending too long to send the request.
The server-status module is not enough. Server status does not show the client information when the PID is in reading state.
Try using
netstat
program with the-l
flag to get a list of listening process. You probably want to run it withsudo
so that you can use the-p
flag to get process PIDs. You might also want the-t
flag to only show tcp sockets instead of tcp and udp. Sometimes the-n
flag is nice to show only port numbers and IPs without resolving them to services and names.After that it's a matter of greping for just your apache process and then extracting the PID from the output columns:
To find out the details about connections which are spending more than 15 seconds in HTTP request reading phase, I wrote this command: