Ask Your Question
6

Where can I find information about sizing for Puppet servers?

asked 2012-10-26 10:50:56 -0500

Dawn gravatar image

When pricing servers for a production Puppet master, where can I find some basic information for sizing?

Is there any documentation or guidance that describes recommended memory, cpu, storage, network bandwidth, etc. for various different numbers of anticipated controlled nodes?

edit retag flag offensive close merge delete

4 answers

Sort by ยป oldest newest most voted
9

answered 2012-10-31 17:01:18 -0500

eric0 gravatar image

Puppet master sizing is highly dependent on the workload at a site. There are some great resources once you know you need to scale, all linked off the main puppet documentation index under Tuning and Scaling but the question of how you know you need to scale requires a little research and data-gathering. Some general thoughts:

  • Keep a baseline! The first bottleneck on puppet masters is usually CPU. If you start out from day 1 with CPU usage graphs you'll know when you're running out of overhead. You'll also be able to see if a change to ...
(more)
edit flag offensive delete link more
5

answered 2012-12-19 16:03:13 -0500

gh gravatar image

As eric0 mentioned, a Puppet Master is CPU bound. To determine how many CPU's you need, you can use this formula. This assumes that you do not have a thundering herd and that your agents are not all checking in at the same time. There should have a relatively flat distribution curve of when agents check in. This can be achieved with fqdn_rand or splay

cores = (nodes) * (check-ins per hour) * (seconds per catalog) / (seconds per hour)

So if you had 500 nodes that are using the default check in of every 30 minutes and your average compile time was ... (more)

edit flag offensive delete link more
2

answered 2012-12-18 09:57:13 -0500

asq gravatar image

updated 2012-12-18 10:07:55 -0500

"3-5 second catalog compilation times" figure is very optimistic :)

you should rather count 10 resources per second average, so - typical - node with 2000 resources will compile in about 3 minutes (ymmv, this is based on my setup with ruby 1.9.3, hiera, stored configs and E5335 processors).

then you should divide your total host number by time interval you intend to run puppet (default is 30 minutes) and by runtime (ie. 3 minutes) and multiply it by number of cores that your puppetmaster have (ie. 4 - as above the more is the better). so, given flock of 200 servers ... (more)

edit flag offensive delete link more
1

answered 2012-12-18 10:04:14 -0500

dalen gravatar image

Our catalogs contain almost 2000 resources but compile in 24 seconds on a Dell PowerEdge R610 with 16 CPU cores. I've found that I've gotten better throughput by having two passenger workers per CPU core than having just one as Eric suggested.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

4 followers

Stats

Asked: 2012-10-26 10:50:56 -0500

Seen: 1,799 times

Last updated: Dec 19 '12