Architecture of PM is Ubuntu 12.04 in a VM with 8GB of RAM (4.7GB used) with Apache 2.2 as the front end.
No network bottlenecks that I have been able to identify and the nodes this is happening on seem to be random. Different buildings on campus, different vlans, etc. I have nodes on the same network segment getting identical configs that are performing flawlessly.
recurse => true is not being called in any module and no directories in my file manifests.
My typical module with files has about 5 files and they are all smaller then 5KB.
I'll keep digging and see if I can find any similarities on the client machines that might be causing this. It really seems client side at this point since looking in dashboard it does seem to be very consistent on the nodes that are having issues and the nodes that are good even though they are getting identical configs.
On 01/03/13 22:24, r.yeo wrote:
> Passenger settings are currently -
>
> PassengerHighPerformance on
> PassengerUseGlobalQueue on
>
> PassengerMaxPoolSize 3
This parameter means you're allowing only 3 puppet clients to talk to
your master at any time.
I can understand why you've set it up this low, because essentially a
puppet master is a CPU bound process, so your master host might not be
able to compile more than 3 catalog at one time.
| /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/validations.rb:1101:in `save_without_dirty!' |
| /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/dirty.rb:87:in `save_without_transactions!' |
| /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:200:in `save!' |
| /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction' |
| /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:182:in `transaction' |
| /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:200:in `save!' |
| /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:208:in `rollback_active_record_state!' |
| /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:200:in `save!' |
| /usr/share/puppet-dashboard/app/models/report.rb:117:in `create_from_yaml' |
| /usr/share/puppet-dashboard/app/models/report.rb:90:in `create_from_yaml_file' |
I am not seeing any queueing, but perhaps I am not looking in the right place. At most I am seeing 1 pending task, but typically all systems go is the only thing the registers in Dashboard. Also in dashboard I occasionally see this -
/usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/validations.rb:1101:in `save_without_dirty!' /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/dirty.rb:87:in `save_without_transactions!' /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:200:in `save!' /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction' /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:182:in `transaction' /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:200:in `save!' /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:208:in `rollback_active_record_state!' /usr/share/puppet-dashboard/vendor/rails/activerecord/lib/active_record/transactions.rb:200:in `save!' /usr/share/puppet-dashboard/app/models/report.rb:117:in `create_from_yaml' /usr/share/puppet-dashboard/app/models/report.rb:90:in `create_from_yaml_file'
But I haven't mentioned it because I assumed it was unrelated and another thing I needed to look at it later (still might be).
Should I be looking in other places on the master to show long queues?
Yeah, I have played with both max workers to 30 and PassengerMaxPoolSize to 30.
No change from my problem clients. So odd.
class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
# Lookup a host's facts up in Facter.
def find(request)
Facter.reset
self.class.setup_external_search_paths(request) if Puppet.features.external_facts?
self.class.setup_search_paths(request)
Puppet.notice "before Puppet::Node::Facts.new( #{Facter.to_hash})---------"
result = Puppet::Node::Facts.new(request.key, Facter.to_hash)