2 x quad-core system is slower that 2 x dual core on FreeBSD

Ivan Voras ivoras at freebsd.org
Mon Nov 19 06:43:32 PST 2007


Alexey Popov wrote:

> last pid:  5266;  load averages: 24.67, 22.65, 17.44       up 0+03:56:38
>  17:09:37
> 121 processes: 41 running, 62 sleeping, 18 waiting
> CPU states:  9.5% user,  0.0% nice, 82.0% system,  0.5% interrupt,  8.0%
> idle
> Mem: 439M Active, 27M Inact, 80M Wired, 108K Cache, 58M Buf, 3341M Free
> Swap: 2048M Total, 2048M Free
> 
>   PID USERNAME  PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
>  5090 www        -4    0 96572K 49464K RUN    5   2:59 23.39% httpd
>  3748 www        -4    0 96172K 50060K RUN    4  14:21 23.19% httpd
>  5092 www        -4    0 96412K 48060K RUN    4   2:57 23.19% httpd
>  5095 www        -4    0 98148K 50688K RUN    5   2:57 22.75% httpd
>  5088 www        -4    0 96664K 49120K RUN    4   3:02 22.56% httpd

This is really unusual - the number of processes is not that high, but
if I'm reading the line from systat correctly, you have unusually many
context switches:

  r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt        cow   16839 total
 27       1  39      137k 3390  33k 2490  313 2519   2519 zfod
sio0 irq4

nginx or similar asynchronous web servers should reduce inter-process
contention context switches dramatically, but you say that it didn't
work as such so the problem might be somewhere else.

Try sending a 10-second or so output from vmstat to confirm this problem.

If you can, attach a ktrace(1) to one of the httpd processes that
consumes CPU, and send the processed kdump output.

Also, did you try configuring and running pecl-APC for PHP?



More information about the freebsd-stable mailing list