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

Reply via email to