Puppet Enterprise 2018.1

Use these guidelines to configure your installation to maximize its use of available system (CPU and RAM) resources.

PE is composed of multiple services on one or more infrastructure hosts. Each service has multiple settings that can be configured to maximize use of system resources and optimize performance. The default settings for each service are conservative, because the set of services sharing resources on each host varies depending on your infrastructure.

Optimized settings vary depending on the complexity and scale of your infrastructure. For example, you might need to allocate more memory per JRuby depending on the number of environments, or the number of agents and their run intervals.

Configure settings after an install or upgrade, or after making changes to infrastructure hosts, including changing the system resources of existing hosts, or adding new hosts, including compile masters.

Master tuning

These are the default and recommended tuning settings for your master, master of masters (if you use compile masters), or high availability replica.

Tuning for 4 cores, 8 GB of RAM

Install type Puppet Server PuppetDB ActiveMQ ConsoleOrchestrator PostgreSQL CPU totalsMemory totals
JRuby max active instancesJava heap (MB)Reserved code cache (MB)Command processing threadsJava heap (MB)Java heap (MB)Java heap (MB)Java heap (MB)Shared buffers (MB)Work memory (MB)UsedFreeUsed (MB)Free (MB)
Default320485122256512256192204845-158242368
Recommended210245121512512512512204843156322560
With compile masters2102451221024512512512204844061442048

Tuning for 8 cores, 16 GB of RAM

Install type Puppet Server PuppetDB ActiveMQ ConsoleOrchestrator PostgreSQL CPU totalsMemory totals
JRuby max active instancesJava heap (MB)Reserved code cache (MB)Command processing threadsJava heap (MB)Java heap (MB)Java heap (MB)Java heap (MB)Shared buffers (MB)Work memory (MB)UsedFreeUsed (MB)Free (MB)
Default4204810244256512256192409648083848000
Recommended5384010242102410247687684096471125443840
With compile masters2153610244307210247687684096462122884096

Tuning 16 cores, 32 GB of RAM

Install type Puppet Server PuppetDB ActiveMQ ConsoleOrchestrator PostgreSQL CPU totalsMemory totals
JRuby max active instancesJava heap (MB)Reserved code cache (MB)Command processing threadsJava heap (MB)Java heap (MB)Java heap (MB)Java heap (MB)Shared buffers (MB)Work memory (MB)UsedFreeUsed (MB)Free (MB)
Default420482048825651225619240964124940823360
Recommended111126420484204820481024102481924151276485120
With compile masters4409620488512020481024102481924124235529216

Compile master tuning

These are the default and recommended tuning settings for compile masters.

Tuning 4 cores, 8 GB of RAM

Install type Puppet Server CPU totalsMemory totals
JRuby max active instancesJava heap (MB)Reserved code cache (MB)UsedFreeUsed (MB)Free (MB)
Default320485123125605632
Recommended315365123120486144

Tuning 8 cores, 16 GB of RAM

Install type Puppet Server CPU totalsMemory totals
JRuby max active instancesJava heap (MB)Reserved code cache (MB)UsedFreeUsed (MB)Free (MB)
Default42048102444307213312
Recommended7537610247164009984

Tuning 16 cores, 32 GB of RAM

Install type Puppet Server CPU totalsMemory totals
JRuby max active instancesJava heap (MB)Reserved code cache (MB)UsedFreeUsed (MB)Free (MB)
Default420482048412409628672
Recommended151536020481511740815360

Using the puppet infrastructure tune command

The puppet infrastructure tune command outputs optimized settings for PE services based on recommended guidelines.

When you run puppet infrastructure tune on your master, it queries PuppetDB to identify infrastructure hosts and their processor and memory facts, and outputs settings in YAML format for use in Hiera.

The puppet infrastructure tune command optimizes based on available system resources, not agent load or environment complexity. You can add the option --memory_per_jruby <MB> to optimize the Puppet Server service for environment complexity.

With the --current option, you can review currently specified settings for PE services. Settings might be specified in either the console or in Hiera, with console settings taking precedence over Hiera settings. You should specify settings in the console or Hiera, but not both. The --current option identifies duplicate settings found in both places.

The puppet infrastructure tune command is compatible with monolithic and split infrastructures, with or without compile masters, external PostgreSQL hosts, and replica hosts. You can run the command on your master, but not on compile masters or high availability replicas.

For more information about the tune command, run puppet infrastructure tune --help.

Back to top