On 3/14/2014 6:18 AM, Chris Ritson wrote:
> Am I being too optimistic? Running a centos 6.5 virtual machine as puppet master, on version 3.4.3, I am frequently running out of memory. The virtual machine only has 0.75Gig of allocated memory. It holds 225 certificates, but only about 130 of these agent machines are regularly active. Mostly they run the puppet agent from cron once an hour at a random time or with a random splay from within puppet if the start time is not already randomised.
>
> How much memory would be normal for a setup of this size, and how is it likely to scale as we add more client agents?
>
> Chris Ritson (Computing Officer and School Safety Officer)
From a prod Puppet master running 3.4.3, Ruby 1.8.7, and Passenger 4.
puppet01 ~ $ sudo passenger-memory-stats
<snip>
----- Passenger processes ------
PID VMSize Private Name
--------------------------------
9874 236.1 MB 148.1 MB Passenger RackApp: /home/deploy/puppet/rack
13019 224.2 MB 136.7 MB Passenger RackApp: /home/deploy/puppet/rack
200MB per application instance is roughly what I've heard from other
users in the community.
In your case I'd consider increasing RAM to 1G and setting limits on the
number of Puppet master processes. Something like the following might work.
## passenger.conf
PassengerMaxPoolSize 2 # only two instances
PassengerMinInstances 2 # assumes no other Passenger run applications
PassengerMaxRequests 10000
PassengerStatThrottleRate 30
In regards to scaling Puppet it's a matter of controlling concurrent
requests. If you never have more than two concurrent requests then you
may never need a larger server. General rule of thumb is 1.5 or 2.0
instances per core, 250MB per instance, and enough instances to handle
requests.
Ramin