From: | Saifi Khan <saifi.khan@xxxxxxxxxxxxxxx> |
Date: | Thu, 5 Nov 2009 21:21:35 +0530 (IST) |
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@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
Description: AMD64X2 make -j runtimes