DragonFly BSD
DragonFly kernel List (threaded) for 2009-11
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Analysis on make parallelism for buildworld


From: Saifi Khan <saifi.khan@xxxxxxxxxxxxxxx>
Date: Thu, 5 Nov 2009 21:23:06 +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



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]