On 10/30/14 10:45 AM, Georgi Todorov wrote:
> Hi group,
> 
> We have a VM with 24 E7-8857 v2 @ 3.00GHz cores and 32G of ram (on big
> ESX hosts and fast backend) that is our foreman/puppetmaster with the
> following tuning params:
> 
> Passanger:
>   PassengerMaxRequests 10000
>   PassengerStatThrottleRate 180 
>   PassengerMaxRequestQueueSize 300
>   PassengerMaxPoolSize 18
>   PassengerMinInstances 1
>   PassengerHighPerformance on
> 
> PGSQL:
> constraint_exclusion = on
> checkpoint_completion_target = 0.9
> checkpoint_segments = 16
> max_connections = 100
> maintenance_work_mem = 1GB
> effective_cache_size = 22GB
> work_mem = 192MB
> wal_buffers = 8MB
> shared_buffers = 7680MB
> 
> Apache
>   StartServers        50
>   MinSpareServers     5
>   MaxSpareServers     20
>   ServerLimit         256
>   MaxClients          256
>   MaxRequestsPerChild 4000
> 
> 
> IPv6 disabled
> vm.swappiness = 0
> SELinux disabled
> iptables flushed.
> 
> We have about 1400 hosts that checkin every 30 minutes and report facts.
> Facter execution time is less than 1 second on the nodes. 
> 
> The bottleneck seems to be 
> Passenger RackApp: /etc/puppet/rack 
> 
> There is one of these for each passenger proc that sits at 100% all the
> time. A typical strace of it looks like this:
> 
> % time     seconds  usecs/call     calls    errors syscall
> ------ ----------- ----------- --------- --------- ----------------
>  96.17   42.235808        1320     31988     15964 futex
>   3.17    1.393038           0   5722020           rt_sigprocmask
>   0.51    0.225576          14     16157         3 select
>   0.12    0.051727           1     93402     83142 stat
>   0.01    0.006303           0     13092     13088 lstat
>   0.01    0.003000        1500         2           fsync
> ...
> 
> Here are the versions of software we've moved through:
> Master OS: Centos 6.5, 6.6
> Foreman: 1.4.9, 1.5.1, 1.6.2
> puppet: 3.5.1, 3.6.2, 3.7.2
> Ruby: 1.8.7 (centos...)
> Passenger: 4.0.18, 4.0.53
> 
> Settings we've tried in various combinations:
>   PassengerMaxPoolSize 12, 18, 24
>   PassengerMaxRequestQueueSize 150, 200, 250, 350
>   PassengerStatThrottleRate 120, 180
>   ServerLimit 256, 512
>   MaxClients 256, 512
> 
> Requests in queue are always maxed out and a lot of nodes just timeout.
> 
> What am I missing? Our node count doesn't seem to be that big, our
> catalogs are fairly small too (basically just a bunch of autofs maps via
> module and 2-3 files). 
> 
> Thanks!
> 

Hi Georgi,

How long does it take to compile a catalog? Is your VM server over
subscribed? Here's the formula for figuring out how many cores you need
dedicated to compiling catalogs. Note this is *dedicated* to compiling,
so minus two for the OS, if you run Dashboard minus the number of
workers, if you are running PuppetDB and Postgres, minus a few more.

Take a look at my post[1] to ask.puppetlabs.com regarding sizing.

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

Another way to look at this is how many nodes should the current
hardware support.

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


[1] -
http://ask.puppetlabs.com/question/3/where-can-i-find-information-about-sizing-for-puppet-servers/?answer=101#post-id-101

Best regards,
-g

-- 
Garrett Honeycutt
@learnpuppet
Puppet Training with LearnPuppet.com
Mobile: +1.206.414.8658

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/54528BD4.5010800%40garretthoneycutt.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to