• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Distributed Builds - Overloading System
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Distributed Builds - Overloading System


  • Subject: Re: Distributed Builds - Overloading System
  • From: James Bucanek <email@hidden>
  • Date: Mon, 27 Feb 2006 08:32:17 -0700

David Michael Bryson wrote on Wednesday, February 22, 2006:

>On Feb 22, 2006, at 6:31 PM, James Bucanek wrote:
>
>> It's not launchd, it's distcc.
>>
>> Help > Show Expert Preferences Notes
>>
>> See XCMaxNumberOfDistributedTasks
>
>I've looked into that, but it doesn't seem to affect the daemon side
>of things.   It will set how many jobs the client computer will farm
>out to other machines.   The problem I'm seeing is that host machines
>will accept more farmed out jobs than what is optimal for the
>machine.  (i.e. 4 tasks on a single cpu G4 machine)

First of all, my apologies for taking so long to get back to this.

Apparently this is designed behavior for distccd and might be related to the latest release of distcc included with Xcode 2.2. Last night I updated all of my other computers to 10.4.5 and Xcode 2.2, enabled distributed builds, and played around with it.

My iMac G5 and Mini were both processing 3 jobs each. I'd never seen this in any previous release of Xcode. Prior to this upgrade, all of my remote computers would process exactly one job at a time. A little digging uncovered this in the distccd man page:

    -j, --jobs JOBS
      Sets  a  limit on the number of jobs that can be accepted at any
      time.  By default this is set to two greater than the number  of
      CPUs  on  the machine, to allow for some processes being blocked
      on network IO.  (Daemon mode only.)

Curious to see how this was affecting my remote computers, I ran top while performing a relatively large build (approximately 300 Obj-C files). To my surprise, having each remote computer chew on 3 jobs at a time was just about right. The CPU load hung around 1, with each job getting approximately 30% of the CPU time. I'm assuming that all three jobs were essentially I/O bound.

The next step, which I haven't had time to get to, would be to try to adjust the number of jobs distccd would accept by specifying the --jobs argument in /System/Library/LaunchDaemons/distccd.plist. Note that this would probably be overwritten the next time you reconfigured distributed builds in the Xcode interface, but would let you experiment with higher or lower jobs limits for a particular system.


James Bucanek
____________________________________________________________________
Author of Beginning Xcode                           ISBN: 047175479X
<http://www.beginningxcode.com/>           Available April 3rd, 2006
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Re: Distributed Builds - Overloading System (From: David Michael Bryson <email@hidden>)

  • Prev by Date: Re: Single project or two separate projects?
  • Next by Date: Re: FileMerge Replacements
  • Previous by thread: Re: Distributed Builds - Overloading System
  • Next by thread: Re: Distributed Builds - Overloading System
  • Index(es):
    • Date
    • Thread