Chris, Good to know that PuppetDB isn't the cause here. One thing worth doing on your servers is moving forward to Puppet-agent 5.3.2. There was a performance regression in Puppet 5 https://tickets.puppetlabs.com/browse/PUP-8009 around internationalization and modules (something like 30% in some cases). You might also need to set `disable_i18n=true` in the [master] section of your puppet.conf. To see what puppetserver is doing and how long it takes you can set `profile=true` in the [master] section of puppet.conf (I would recommend only doing this on one of your servers, as it will generate a lot of log output per puppet run). The profiling results will be logged at the info level to /var/log/puppetlabs/puppetserver/puppetserver.log, so you could then inspect the timing of different parts of the agent lifecycle.
On Tue, Jan 9, 2018 at 7:11 PM, Chris Smith <dmag...@gmail.com> wrote: > Hi, > > Thanks for your help. > > On 10/01/18 06:36, Matthaus Owens wrote: >> Chris, >> To better help you, it would be great to know a few more things about >> your installation. First question: are you running puppetserver 5.0.0 >> or something later in the 5.x series (and is it the same on all >> servers)? Second, what version of the puppet-agent are on those >> servers? puppetserver 5.1.3 included a fix for >> https://tickets.puppetlabs.com/browse/SERVER-1922 which should improve >> performance some. > > Hm. Interesting, thanks. I'll check out what a 5.0 -> 5.1 upgrade will do. > >> >> Hiera 3 + hiera-eyaml may also be contributing to the slowness. Here >> is one ticket (related to SERVER-1922) that indicated moving to hiera >> 5 improved compile times substantially: >> https://tickets.puppetlabs.com/browse/SERVER-1919 > > Also interesting but as noted on the last comment, a lot of the > structure was changed so that might not all have been hiera3 -> hiera5. > >> To dig into what may be causing the compiles to be slower, I would >> recommend first checking out the client metrics. >> https://puppet.com/docs/puppetserver/5.1/http_client_metrics.html has >> some details, and I would be interested in the client metrics that >> page lists under the /puppet/v3/catalog. They are PuppetDB related >> requests, and as that was also upgraded alongside puppetserver it >> would be good to eliminate PuppetDB as a contributor. PuppetDB >> slowness can show up as slow catalog compiles, which in turn will hold >> jrubies for longer and might explain some of what you are seeing. > > puppetservers are all the same. > > We upgraded to: > # /opt/puppetlabs/server/bin/puppetserver -v > puppetserver version: 5.0.0 > > puppetdb is this, it should have been 5.0 as well but I stuffed it up. > # /opt/puppetlabs/server/bin/puppetdb -v > puppetdb version: 5.1.3 > > > agents are all: > # /opt/puppetlabs/puppet/bin/puppet --version > 5.0.0 > > > The metrics say > > { > "route-id": "puppet-v3-file_metadata-/*/", > "count": 9373, > "mean": 10217, > "aggregate": 95763941 > }, > { > "route-id": "puppet-v3-catalog-/*/", > "count": 828, > "mean": 94773, > "aggregate": 78472044 > }, > { > "route-id": "puppet-v3-node-/*/", > "count": 831, > "mean": 62709, > "aggregate": 52111179 > }, > { > "route-id": "puppet-v3-file_metadatas-/*/", > "count": 4714, > "mean": 9288, > "aggregate": 43783632 > }, > { > "route-id": "puppet-v3-report-/*/", > "count": 780, > "mean": 3433, > "aggregate": 2677740 > }, > > > > "http-client-metrics": [ > { > "count": 821, > "mean": 48, > "aggregate": 39408, > "metric-name": > "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.command.replace_catalog.full-response", > "metric-id": [ > "puppetdb", > "command", > "replace_catalog" > ] > }, > { > "count": 832, > "mean": 25, > "aggregate": 20800, > "metric-name": > "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.command.replace_facts.full-response", > "metric-id": [ > "puppetdb", > "command", > "replace_facts" > ] > }, > { > "count": 780, > "mean": 19, > "aggregate": 14820, > "metric-name": > "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.command.store_report.full-response", > "metric-id": [ > "puppetdb", > "command", > "store_report" > ] > }, > { > "count": 215, > "mean": 43, > "aggregate": 9245, > "metric-name": > "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.facts.find.full-response", > "metric-id": [ > "puppetdb", > "facts", > "find" > ] > } > ] > > > So I think that's showing it's quick to pass it off to puppetdb when > it's storing changes. Yea none of those client metrics are worrying, they are all less than 50ms. > > puppetdb logs are telling me that 'replace catalog' is taking 2-3 > seconds, and 'replace facts' is taking 10-20 seconds (previous puppetdb > wasn't logging the time taken, so I can't compare). > > I tried changing puppetdb logging to debug but it doesn't tell me what > it's doing with those 'replace' commands (I don't think, I might've > missed it). I haven't found a way to manually process one of those > files, do you know if there is a way to do it? I don't know offhand unfortunately. > > I've set up postgres logging to alert for queries over 200ms (both on > the primary & replica) and I get very little (a couple of queries every > now and then), so I don't think it's the database. > > > Cheers, > Chris. > > -- > 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/1b549321-8db4-c352-5b75-ebe8eb0e5a79%40gmail.com. > For more options, visit https://groups.google.com/d/optout. -- 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/CACD%3DwAfXMXa89Jjy-vf_2baqERsvyGvJJ85_Qsu19smEU4hDgA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.