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