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