On 2015-29-06 16:48, Romain F. wrote:
Hi everyone,

I try to optimize our Puppet runs by running some benchmarks and
patching the puppet core (if possible). But I have some difficulties
around the catalog serialization/deserialization.

In fact, in 3.7.5 or 3.8.x, the Config Retrieval takes roughly 7secs and
only 4 secs is on the master side. Same fact in 4.2 but with 9 secs of
config retrieval and still 4 secs on the master side.

My first thoughts was "Okay, time to try MsgPack". No improvements.

I've instrumented a bit the code in the master branch around this, and
I've found out that, on my 9secs of config retrieval, 3.61secs is lost
in catalog deserialization, 2 secs is the catalog conversion.. But it's
not the "real" deserialization (PSON to Hash) that takes ages, it's the
creation of the Catalog object itself (Hash to catalog). Benchmarks
shows that the time to deserialize MsgPack (or PSON) is negligible
compared to the catalog deserialization time.

So here is my question : Is that a known issue ? Is there any reason of
the regression in 4.x (Future parser creating more objects, ...) ?

The parser=future setting only makes a difference when compiling the catalog - the catalog itself does not contain more or different data (except possibly using numbers instead of strings for some attributes).

The best way to optimize this is to write a benchmark using the benchmark framework and measure the time it takes to deserialize a given catalog. Then run that benchmark with Ruby profiling turned on.

There are quite a few things going on at the agent side in addition to taking the catalog PSON and turning it into a catalog that it can apply (loading types, resolving providers, etc). Make sure to benchmark these separately if possible.

Regards
- henrik

Cheers,

--
You received this message because you are subscribed to the Google
Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to puppet-dev+unsubscr...@googlegroups.com
<mailto:puppet-dev+unsubscr...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-dev/a5bf7422-6119-43ee-ba11-44001c1ce097%40googlegroups.com
<https://groups.google.com/d/msgid/puppet-dev/a5bf7422-6119-43ee-ba11-44001c1ce097%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.


--

Visit my Blog "Puppet on the Edge"
http://puppet-on-the-edge.blogspot.se/

--
You received this message because you are subscribed to the Google Groups "Puppet 
Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/mmsa75%24edc%241%40ger.gmane.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to