Now i gotto blush since it was my problem. Don't know if this relates to my main problem (only one child left and not producing any new ones), but problem was i had multiple processor #5006 #5006 defined (for every vhost that is). 7 for user 5006. that's why i had 7 "missing" processors. crap. this wasn't nice. We have php frontend to manage confs and we messed up over there.
Janno Sannik wrote: > Hmm.... > > Like said after 1st request server shows 7 busy processors (actually > none busy, and one idle) > [Tue Jan 30 17:12:07 2007] [warn] (peruser: pid=11765 uid=5006 > child=120) child_main(): total_processors = 8, max_processors = 100 > [Tue Jan 30 17:12:07 2007] [warn] (peruser: pid=11765 uid=5006 > child=120) child_main(): idle_processors = 1, min_free_processors = 3 > > i sent 20 concurrent reqs on user 5006 and it showed (starting from 1st > request) > [Tue Jan 30 17:12:07 2007] [warn] (peruser: pid=11765 uid=5006 > child=120) child_main(): total_processors = 9, max_processors = 100 > [Tue Jan 30 17:12:07 2007] [warn] (peruser: pid=11765 uid=5006 > child=120) child_main(): idle_processors = 1, min_free_processors = 3 > [Tue Jan 30 17:12:07 2007] [warn] (peruser: pid=11765 uid=5006 > child=120) child_main(): total_processors = 10, max_processors = 100 > [Tue Jan 30 17:12:07 2007] [warn] (peruser: pid=11765 uid=5006 > child=120) child_main(): idle_processors = 1, min_free_processors = 3 > ....... plus one to total_processors with every request. ...... > [Tue Jan 30 17:12:07 2007] [warn] (peruser: pid=11765 uid=5006 > child=120) child_main(): total_processors = 27, max_processors = 100 > [Tue Jan 30 17:12:07 2007] [warn] (peruser: pid=11765 uid=5006 > child=120) child_main(): idle_processors = 1, min_free_processors = 3 > > i let it calm for a sec and > now i sent one request to user 5006: > [Tue Jan 30 17:12:23 2007] [warn] (peruser: pid=11791 uid=5006 > child=227) child_main(): total_processors = 28, max_processors = 100 > [Tue Jan 30 17:12:23 2007] [warn] (peruser: pid=11791 uid=5006 > child=227) child_main(): idle_processors = 21, min_free_processors = 3 > And still missing 7 processors...like before (actually none busy, 21 idle) > > > Janno Sannik wrote: > >> Jup you were right! >> >> user #5006 >> It says: >> [EMAIL PROTECTED] httpd.p2]# tail -f error_log | grep "total_processors = >> \|idle_processors =" | grep uid=5006 >> [Tue Jan 30 16:13:55 2007] [warn] (peruser: pid=32618 uid=5006 >> child=120) child_main(): total_processors = 8, max_processors = 100 >> [Tue Jan 30 16:13:55 2007] [warn] (peruser: pid=32618 uid=5006 >> child=120) child_main(): idle_processors = 1, min_free_processors = 3 >> [Tue Jan 30 16:13:55 2007] [warn] (peruser: pid=32618 uid=5006 >> child=120) child_main(): total_processors = 8, max_processors = 100 >> [Tue Jan 30 16:13:55 2007] [warn] (peruser: pid=32618 uid=5006 >> child=120) child_main(): idle_processors = 1, min_free_processors = 3 >> [Tue Jan 30 16:13:55 2007] [warn] (peruser: pid=32618 uid=5006 >> child=120) child_main(): total_processors = 8, max_processors = 100 >> [Tue Jan 30 16:13:55 2007] [warn] (peruser: pid=32618 uid=5006 >> child=120) child_main(): idle_processors = 1, min_free_processors = 3 >> [Tue Jan 30 16:13:55 2007] [warn] (peruser: pid=32618 uid=5006 >> child=120) child_main(): total_processors = 8, max_processors = 100 >> [Tue Jan 30 16:13:55 2007] [warn] (peruser: pid=32618 uid=5006 >> child=120) child_main(): idle_processors = 1, min_free_processors = 3 >> >> my top (filter only user #5006): >> >> top - 16:15:01 up 72 days, 20:24, 4 users, load average: 4.46, 4.21, >> 3.69 >> Tasks: 522 total, 2 running, 520 sleeping, 0 stopped, 0 zombie >> Cpu(s): 18.0% us, 24.8% sy, 14.6% ni, 23.8% id, 18.0% wa, 0.5% hi, >> 0.5% si >> Mem: 2005680k total, 1949548k used, 56132k free, 46952k buffers >> Swap: 3060348k total, 372816k used, 2687532k free, 861344k cached >> >> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND >> 32618 5006 34 19 36252 15m 4772 S 0.0 0.8 0:02.02 httpd.p2 >> >> How apache keeps track of them and how it get's out of sync? >> >> >> Now....thing are really weird. I've restarted apache and apache comes >> up and total_processors is allready = 10 and idle = 3. If i made >> first requests to apache. >> >> [Tue Jan 30 16:30:53 2007] [warn] (peruser: pid=17487 uid=5006 >> child=186) child_main(): total_processors = 10, max_processors = 100 >> [Tue Jan 30 16:30:53 2007] [warn] (peruser: pid=17487 uid=5006 >> child=186) child_main(): idle_processors = 3, min_free_processors = 3 >> >> top shows only 4 procs up'n running. >> >> [EMAIL PROTECTED] ~]# top >> top - 16:31:17 up 72 days, 20:40, 5 users, load average: 2.16, 2.74, >> 3.32 >> Tasks: 579 total, 2 running, 577 sleeping, 0 stopped, 0 zombie >> Cpu(s): 3.9% us, 2.0% sy, 6.3% ni, 79.0% id, 7.8% wa, 0.5% hi, >> 0.5% si >> Mem: 2005680k total, 1953908k used, 51772k free, 70876k buffers >> Swap: 3060348k total, 372744k used, 2687604k free, 908656k cached >> >> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND >> 17026 5006 34 19 32136 10m 1448 S 0.0 0.5 0:00.00 >> /usr/sbin/httpd.p2 -f /etc/httpd.p2/conf/httpd.conf >> 17034 5006 34 19 32136 9.8m 920 S 0.0 0.5 0:00.00 >> /usr/sbin/httpd.p2 -f /etc/httpd.p2/conf/httpd.conf >> 17487 5006 34 19 32136 10m 1456 S 0.0 0.5 0:00.00 >> /usr/sbin/httpd.p2 -f /etc/httpd.p2/conf/httpd.conf >> 18178 5006 34 19 32136 9.8m 920 S 0.0 0.5 0:00.00 >> /usr/sbin/httpd.p2 -f /etc/httpd.p2/conf/httpd.conf >> >> >> >> Now remember a while ago ( SUBJECT: [peruser] Segmentation fault DATE: >> 06.08.2006) I had connections segfaulting. I got a patch from you >> that should close the broken connection without making apache to >> segfault. After the patch I got "Bad file descriptor: >> apr_socket_opt_set: (TCP_NODELAY)" error on apache log so I modified >> it to return instead of continue. >> >> Is this OKay doing? I've added the patch. >> >> >> >> Stefan Seufert wrote: >> >>> Hi, >>> >>> can you try to find messages of the following format in your logs? >>> >>> CHECKING IF WE SHOULD CLONE A CHILD... >>> total_processors = %d, max_processors = %d >>> idle_processors = %d, min_free_processors = %d >>> >>> Startup of new children is based on these values. Wither these values >>> get incorrect over time (e.g. the server still thinks that he has free >>> idle processors when he in fact doesn't) or this section is never called >>> (in which case these messages won't appear at all). >>> >>> (This problem is another argument for having a handler to display the >>> contents of the child_info_table. I'll try to find some free time in >>> order to code one). >>> >>> Stefan >>> >>> >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Peruser mailing list >>> [email protected] >>> http://www.telana.com/mailman/listinfo/peruser >>> >>> >> ------------------------------------------------------------------------ >> >> --- httpd-2.2.2/server/mpm/experimental/peruser/peruser.c 2006-11-27 >> 10:09:51.000000000 +0200 >> +++ httpd-2.2.2-new/server/mpm/experimental/peruser/peruser.c >> 2006-11-27 10:24:49.000000000 +0200 >> @@ -931,6 +931,13 @@ >> current_conn = ap_run_create_connection(p, ap_server_conf, sock, >> conn_id, >> sbh, bucket_alloc); >> _DBG("Looking up the right vhost"); >> + if (current_conn) ap_update_vhost_given_ip(current_conn); >> + else { >> + _DBG("Crap. We lost a connection. Returning...."); >> + ap_log_error(APLOG_MARK, APLOG_ERR, 0,NULL, "Creating a connection >> failed. Returning..."); >> + return; >> + } >> + >> ap_update_vhost_given_ip(current_conn); >> _DBG("Base server is %s, name based vhosts %s", >> current_conn->base_server->server_hostname, >> current_conn->vhost_lookup_data ? "on" : "off"); >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Peruser mailing list >> [email protected] >> http://www.telana.com/mailman/listinfo/peruser >> >> > > _______________________________________________ > Peruser mailing list > [email protected] > http://www.telana.com/mailman/listinfo/peruser > > _______________________________________________ Peruser mailing list [email protected] http://www.telana.com/mailman/listinfo/peruser
