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
