exec overhead on Windows
We're at the beginning of a Puppet Enterprise adoption primarily managing Windows servers. Much of what we're configuring/managing is done through exec's. We've hit a wall in terms of impact on the VM during a Puppet run.
Each PowerShell execution seems to have a base overhead of about 1 second. Creating and destroying all of the PowerShell environments creates an extreme CPU load on the machine for the entire Puppet run.
With 1365 unchanged resources here is the timing for an example run
Config Retrieval 39.58 seconds Dism 0.00 seconds Exec 871.44 seconds File 0.80 seconds Filebucket 0.00 seconds Group 0.02 seconds Package 7.38 seconds Pe Anchor 0.00 seconds Reboot 0.00 seconds Registry Key 0.00 seconds Registry Value 0.02 seconds Schedule 0.00 seconds Scheduled Task 0.02 seconds Service 0.02 seconds Total 919.25 seconds
High CPU usage for 15 minutes and a new Puppet run every 30 minutes isn't practical.
Most of the exec are IIS setup. There are 100 sites on the VM. We're thought of abandoning the IIS module from the forge and writing one exec that does a complex check and would setup everything. That alone might halve the run time but the code wouldn't be as readable.
Do we have any other options?