Analysis on make parallelism for buildworld
Saifi Khan
saifi.khan at datasynergy.org
Thu Nov 5 08:00:01 PST 2009
On Tue, 20 Oct 2009, Simon 'corecode' Schubert wrote:
> Hey,
>
> the question on which make parallelism to use comes up repeatedly. However
> the answer usually is driven by anecdotal evidence and not by empirical data.
> To this end, I ran a small benchmark test to add one data point. I have no
> idea about confidence intervals, so somebody will have to chime in here.
>
>
> I advise to run builds at -j ncpu+1 for 4-cpu systems. Until we have numbers
> for 2-cpu and UP systems, we can not provide conclusive advice, however I
> would try using -j3 for those two cases.
>
Hi Simon:
Please find attached the preliminary results from the first run
set on a AMD64 X2 system.
The data (so far) has been plotted and the generated
make-j-runtimes.png is hereby attached.
Here are the environment details
# uname -a
DragonFly amd64x2.datasynergy.org 2.5.1-DEVELOPMENT DragonFly v2.5.1.181.gd15a4-DEVELOPMENT #2: Thu Nov 5 20:35:21 IST 2009 root at amd64x2.datasynergy.org:/usr/obj/usr/src/sys/AMD64-P-MQ amd64
# swapinfo
Device 1K-blocks Used Avail Capacity Type
/dev/ad4s1b 4194176 9996 4184180 0% Interleaved
# top snapshot
load averages: 3.92, 3.47, 3.15
up 0+11:45:23 08:33:37
38 processes: 38 running
CPU0 states: 37.0% user, 0.0% nice, 3.9% system, 0.0% interrupt, 59.1% idle
CPU1 states: 49.2% user, 0.0% nice, 18.2% system, 0.0% interrupt, 32.6% idle
Mem: 142M Active, 552M Inact, 478M Wired, 60M Cache, 167M Buf, 608M Free
Swap: 4096M Total, 9996K Used, 4086M Free
# vmstat -w 5
procs memory page disks faults cpu
r b w avm fre flt re pi po fr sr ad4 md0 in sy cs us sy id
5 1 0 203824 754532 14568 1 0 0 14684 278 0 0 921 10126 5508 26 8 66
5 2 0 161512 788848 28303 0 0 0 30109 0 0 0 647 8186 8301 85 12 2
4 0 0 287640 677560 26282 0 0 0 20797 0 0 0 639 7012 6691 86 11 2
4 0 0 182192 767152 27185 0 0 0 31759 0 0 0 646 7565 7178 85 13 2
4 0 0 325100 645208 25646 0 0 0 19628 0 0 0 640 6893 6090 88 11 1
# vmstat -s
234673986 cpu context switches
39075925 device interrupts
3455565 software interrupts
0 traps
430276210 system calls
1 kernel threads created
1010795 fork() calls
1268091 vfork() calls
0 rfork() calls
2444061 exec() calls
386 swap pager pageins
803 swap pager pages paged in
1528 swap pager pageouts
3580 swap pager pages paged out
7220 vnode pager pageins
16381 vnode pager pages paged in
0 vnode pager pageouts
0 vnode pager pages paged out
251 page daemon wakeups
11719895 pages examined by the page daemon
29072 pages reactivated
44311304 copy-on-write faults
0 copy-on-write optimized faults
530080912 zero fill pages zeroed
14409435 zero fill pages prezeroed
1088 intransit blocking page faults
619469650 total VM faults taken
0 pages affected by kernel thread creation
64643286 pages affected by fork()
50198608 pages affected by vfork()
0 pages affected by rfork()
624395522 pages freed
3153399 pages freed by daemon
192851424 pages freed by exiting processes
55712 pages active
178325 pages inactive
14227 pages in VM cache
130817 pages wired down
92092 pages free
4096 bytes per page
712512521 total name lookups
cache hits (91% pos + 8% neg) system 0% per-directory
deletions 0%, falsehits 0%, toolong 0%
# Application load profile
The system is running the following applications
. ssh daemon
. csh shell
. make
Please review and let me know if there is any tweak/correction
that you deem necessary.
thanks
Saifi.Attachment:
make-j-runtimes.png
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bin00000.bin
Type: application/octet-stream
Size: 4735 bytes
Desc: "Description: AMD64X2 make -j runtimes"
URL: <http://lists.dragonflybsd.org/pipermail/kernel/attachments/20091105/0714f40b/attachment-0019.bin>
More information about the Kernel
mailing list