On Mon, Apr 30, 2012 at 10:37 AM, P J <pauljfli...@gmail.com> wrote: > > On Mon, Apr 30, 2012 at 9:13 AM, Alexandr Normuradov > <norma...@gmail.com>wrote: > >> cat /proc/$(pidof -s httpd)/limitsTo troubleshoot that you should have >> at least two additional outputs from >> >> netstat -pant, with connections states >> and >> service httpd fullstatus, listing current state of all the apache >> procs/threads. >> >> What applications your Apache is serving? >> PHP? is it mod_php, mod_python, mod_perl? >> >> What the vhost access log file for the most accessed vhost is showing? >> Any pattern of slow, connections consuming attack? >> If it is, and all tasks are in the Keep Alive wait then disable Keep >> Alive and lower the general timeout to just 7 seconds. >> >> The error "connect to listener on [::]:80" error is quite unusual. >> >> ETIMEDOUT >> Timeout while attempting connection. The server may be too busy to >> accept new connections. Note that for IP sockets the timeout may be >> very long when syncookies are enabled on the server. >> >> cat /proc/sys/fs/file-nr >> >> cat /proc/$(pidof -s httpd)/limits >> >> >> Sincerely, >> Alexandr Normalex >> > > Hi Alexandr, thanks for taking a look at this with me. > > The traffic pattern for this website is at certain times of the day it > receives huge spikes of traffic in very short periods of time, trying to > tune Apache to accommodate it the best we can. > > cat /proc/$(pidof -s httpd)/limits > > Limit Soft Limit Hard Limit Units > > Max cpu time unlimited unlimited > seconds > Max file size unlimited unlimited bytes > > Max data size unlimited unlimited bytes > > Max stack size 10485760 unlimited bytes > > Max core file size 0 unlimited bytes > > Max resident set unlimited unlimited bytes > > Max processes 55296 55296 > processes > Max open files 1024 1024 files > > Max locked memory 32768 32768 bytes > > Max address space unlimited unlimited bytes > > Max file locks unlimited unlimited locks > > Max pending signals 55296 55296 > signals > Max msgqueue size 819200 819200 bytes > > Max nice priority 0 0 > Max realtime priority 0 0 > > cat /proc/sys/fs/file-nr > 1530 0 560543 > > Looking at Max open files I see what is likely the problem :) > Max open files 1024 > > I swear I modified this to 4096! I've changed the limit to 4096 now, I'll > double check it tomorrow. Hopefully this will be the obvious fix! > > I will check service httpd fullstatus and netstat -pant tomorrow morning > when this happens again, it happens the same time every day - it is not an > attack, the customers application receives massive amounts of connections > at certain times of the day. > > I've been working with Apache for 15 years and I've never seen "connect > to listener on [::]:80" error message before, I hope it's related to > reaching Max open files. > > Thanks again for your help. > > -- > PJ > > I was hoping this would be fixed now that Max Open files has been updated, same issue this morning.
cat /proc/$(pidof -s httpd)/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 10485760 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 55296 55296 processes Max open files 1024 1024 files Max locked memory 32768 32768 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 55296 55296 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Once it reaches 1000 total children [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 32 children, there are 17 idle, and 1002 total children After 1000 total children mpm_common.c(663): (70007)The timeout specified has expired: connect to listener on [::]:80 mpm_common.c(663): (70007)The timeout specified has expired: connect to listener on [::]:80 mpm_common.c(663): (70007)The timeout specified has expired: connect to listener on [::]:80 Until apache is restarted. I tried to run service httpd fullstatus during this time but it want able to connect: ELinks: Connection refused. I did capture the output of netstat -pant which shows many connections to the MySQL DB as well. I've double checked MySQL has not reached max connections and that it's still working during this time. netstat output is so big I have to put it up on pastebin: http://pastebin.com/0DjvDnJp I dont understand why this is happening at 1000 children, what limit is it hitting? Apache config: Timeout 30 KeepAlive On MaxKeepAliveRequests 10000 KeepAliveTimeout 3 <IfModule prefork.c> StartServers 80 MinSpareServers 50 MaxSpareServers 120 ServerLimit 3500 MaxClients 3500 MaxRequestsPerChild 4000 </IfModule Any help would be greatly appreciated. -- PJ