Guidance on optimal number of build agents per server?

We are setting up a new build environment and are planning to utilize multiple build agents. We'd like to install multiple agents per server to maximize our hardware resources but we also don't want performance to degrade significantly.

Does guidance exist on choosing the optimal number of agents for a given hardware spec?

1 comment
Comment actions Permalink

When we were looking into this question a bit over a year ago I wasn't able to find a whole lot. At the time the only information available at all was this section in the help: I see there is a similar page in the version 8 help at but it is materially the same. Unfortunately neither of them really dicuss what kind of resources you should expect to need for running multiple agents.

First, we're primarily a Windows shop and I'm not sure how much of it will carry over to running Linux agents.

What we have found in practice is that it depends a fair bit on what type of operations you'll be running in your configurations on those agents. We found that for several of our more complex configurations we were constrained by disk I/O, that for other configurations we were constrained by network throughput, and in a very few configurations we were constrained by processor performance.

We now have a mix of resources that maximizes various performance aspects on specific machines to address the different built needs. We have a large physical machine with 24 cores that we're running 6 agents which regularly maxes out the fiber channel attached disk that we prioritize the processor and network intensive configurations. We then have several retired desktops with 1st gen Intel Core quad core processors that were upgraded with inexpensive SSD storage that run 2 agents each to cover the I/O intensive configurations.

In general we have found that an estimate of ~1.5 cores per agent with an extra core for system overhead is about the right estimate for a dedicated build server. It also appears that 3 agents per disk controller is a decent ball park, depending on your needs.

Hope that helps.


Please sign in to leave a comment.