We have about a dozen CentOS 6 servers being managed by puppet 3.7.4, using 
puppet 
apply with locally stored modules and node definition.

Recently, performance on one of them has collapsed to hopeless levels, and 
I really don't know how to diagnose the problem.

Puppet used to take 5 - 10 minutes to run, but processing essentially the 
same manifest is now taking around *40 minutes*.

Often, though not always, many things are being (inappropriately) skipped 
because "trivial" operations are timing out.  Specifically
exec { $shell_exists: command => "/usr/bin/test -f '${shell}'" }
is being logged as 

Error: Command exceeded timeout
Wrapped exception:
execution expired
Error: /Stage[main]/Users::Ii::Virtual/Users::Developer[robert]/Users::
Account[robert]/Exec[check /bin/bash exists for robert]/returns: change from 
notrun to 0 failed: Command exceeded timeout

even though ${shell} (/bin/bash) exists, and other invocations of exactly 
the same command in the same run of puppet are confirming this.

In struggling to diagnose this, I have tried cutting down the content of 
the node by commenting things out until I arrived at the *empty node 
definition*...

node 'hostname' {
# Lines
# Commented 
# Out
}
On most of our servers, processing the empty node definition takes 4 or 5 
seconds.  On the problem node, it it taking between *3 minutes *(when the 
server is otherwise idle) and* over 15 minutes* when there other things 
going on.  Below, you can see the complete log, as produced by puppet apply 
--evaltrace with an empty node definition.  It is spectacularly un-helpful, 
as is the yaml report. 

The server is currently a standby machine, so apart from Puppet (and me 
running "top", "tail" and the like) the server is either completely idle, 
or possibly receiving an rsync or running an occasional (short) cron job.   
Yet "top" reports CPU utilisation at close to 100%, and puppet is the only 
process it shows doing any significant processing.  Throughout the puppet 
run, it responds like a heavily loaded machine, and there is nothing in 
system logs.

Can anyone suggest how I can go about diagnosing what is going wrong?

Robert.


Info: Loading facts
Info: Loading facts
Notice: Compiled catalog for standby1.interactive.co.uk in environment 
production in 6.71 seconds
Info: Applying configuration version '1426787754'
Info: /Schedule[daily]: Starting to evaluate the resource
Info: /Schedule[daily]: Evaluated in 0.00 seconds
Info: /Schedule[monthly]: Starting to evaluate the resource
Info: /Schedule[monthly]: Evaluated in 0.00 seconds
Info: /Schedule[hourly]: Starting to evaluate the resource
Info: /Schedule[hourly]: Evaluated in 0.00 seconds
Info: Stage[main]: Starting to evaluate the resource
Info: Stage[main]: Evaluated in 0.00 seconds
Info: Class[Main]: Starting to evaluate the resource
Info: Class[Main]: Evaluated in 0.00 seconds
Info: Node[standby1]: Starting to evaluate the resource
Info: Node[standby1]: Evaluated in 0.00 seconds
Info: Class[Settings]: Starting to evaluate the resource
Info: Class[Settings]: Evaluated in 0.00 seconds
Info: Class[Settings]: Starting to evaluate the resource
Info: Class[Settings]: Evaluated in 0.00 seconds
Info: Node[standby1]: Starting to evaluate the resource
Info: Node[standby1]: Evaluated in 0.00 seconds
Info: /Schedule[never]: Starting to evaluate the resource
Info: /Schedule[never]: Evaluated in 0.00 seconds
Info: /Filebucket[puppet]: Starting to evaluate the resource
Info: /Filebucket[puppet]: Evaluated in 0.00 seconds
Info: /Schedule[weekly]: Starting to evaluate the resource
Info: /Schedule[weekly]: Evaluated in 0.00 seconds
Info: /Schedule[puppet]: Starting to evaluate the resource
Info: /Schedule[puppet]: Evaluated in 0.00 seconds
Info: Class[Main]: Starting to evaluate the resource
Info: Class[Main]: Evaluated in 0.00 seconds
Info: Stage[main]: Starting to evaluate the resource
Info: Stage[main]: Evaluated in 0.00 seconds
Notice: Finished catalog run in 1119.24 seconds


-- 
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/e3d10507-c9ee-4d56-bd47-f44528c99d5e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to