<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: measuring puppet</title>
	<atom:link href="http://thomas.apestaart.org/log/?p=1529&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://thomas.apestaart.org/log/?p=1529</link>
	<description>Present Perfect</description>
	<lastBuildDate>Wed, 19 Jun 2013 11:40:10 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
	<item>
		<title>By: Thomas</title>
		<link>http://thomas.apestaart.org/log/?p=1529&#038;cpage=1#comment-169263</link>
		<dc:creator>Thomas</dc:creator>
		<pubDate>Fri, 25 Jan 2013 17:38:11 +0000</pubDate>
		<guid isPermaLink="false">http://thomas.apestaart.org/log/?p=1529#comment-169263</guid>
		<description>Yeah, pretty much have the same thing, including the comment about the &#039;right&#039;  way to do it :)</description>
		<content:encoded><![CDATA[<p>Yeah, pretty much have the same thing, including the comment about the &#8216;right&#8217;  way to do it :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas</title>
		<link>http://thomas.apestaart.org/log/?p=1529&#038;cpage=1#comment-169262</link>
		<dc:creator>Thomas</dc:creator>
		<pubDate>Fri, 25 Jan 2013 17:33:25 +0000</pubDate>
		<guid isPermaLink="false">http://thomas.apestaart.org/log/?p=1529#comment-169262</guid>
		<description>Thanks for all the tips ! Trying --evaltrace as we speak.

OK, I see what it is doing.  The git command score high there.  My biggest surprise is a bunch of File resources taking around 0.4 seconds to evaluate; e.g.

&lt;blockquote&gt;info: /File[/root/.bashrc.d/git]: Starting to evaluate the resource
info: /File[/root/.bashrc.d/git]: Evaluated in 0.45 seconds
&lt;/blockquote&gt;

Any idea why that would be ? That seems really slow for a simple resource!
</description>
		<content:encoded><![CDATA[<p>Thanks for all the tips ! Trying &#8211;evaltrace as we speak.</p>
<p>OK, I see what it is doing.  The git command score high there.  My biggest surprise is a bunch of File resources taking around 0.4 seconds to evaluate; e.g.</p>
<blockquote><p>info: /File[/root/.bashrc.d/git]: Starting to evaluate the resource<br />
info: /File[/root/.bashrc.d/git]: Evaluated in 0.45 seconds
</p></blockquote>
<p>Any idea why that would be ? That seems really slow for a simple resource!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas</title>
		<link>http://thomas.apestaart.org/log/?p=1529&#038;cpage=1#comment-169261</link>
		<dc:creator>Thomas</dc:creator>
		<pubDate>Fri, 25 Jan 2013 17:32:27 +0000</pubDate>
		<guid isPermaLink="false">http://thomas.apestaart.org/log/?p=1529#comment-169261</guid>
		<description>Hi,

1) in normal mode, yes.  Or rather - I try my best to have a normal run not output *anything* so that I can easily see if something broke during refactoring.  However, as you can see from the command, I run it in debug mode for the timing, and in debug mode it&#039;s telling you before it performs an Exec.

2) I know I need to go back to tags and understand better, because it may be a solution for breaking up puppet configs.  For now, I&#039;m moving towards making it possible to apply just one module at a time for testing purposes from the command line with puppet apply.

3) When I&#039;m deploying instead of actually changing my puppet config, I&#039;m fine with it taking 30 seconds.  It&#039;s when I&#039;m developing new puppet code or refactoring that 30 seconds is simply too long.  Another reason why I&#039;ve gone towards setting up virtual machines to test modules in and forcing myself to test modules in isolation before putting them together.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>1) in normal mode, yes.  Or rather &#8211; I try my best to have a normal run not output *anything* so that I can easily see if something broke during refactoring.  However, as you can see from the command, I run it in debug mode for the timing, and in debug mode it&#8217;s telling you before it performs an Exec.</p>
<p>2) I know I need to go back to tags and understand better, because it may be a solution for breaking up puppet configs.  For now, I&#8217;m moving towards making it possible to apply just one module at a time for testing purposes from the command line with puppet apply.</p>
<p>3) When I&#8217;m deploying instead of actually changing my puppet config, I&#8217;m fine with it taking 30 seconds.  It&#8217;s when I&#8217;m developing new puppet code or refactoring that 30 seconds is simply too long.  Another reason why I&#8217;ve gone towards setting up virtual machines to test modules in and forcing myself to test modules in isolation before putting them together.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://thomas.apestaart.org/log/?p=1529&#038;cpage=1#comment-169129</link>
		<dc:creator>James</dc:creator>
		<pubDate>Fri, 25 Jan 2013 03:25:21 +0000</pubDate>
		<guid isPermaLink="false">http://thomas.apestaart.org/log/?p=1529#comment-169129</guid>
		<description>Hi there,

I read your post quickly, but... I have a few comments, and hopefully they will be helpful to you (they&#039;re free anyways):

1) AFAICT, when puppet is running something, it actually prints the output of what it *just* ran, *after* it ran it. I always found this a little stupid, because in some of my puppet scripts I have some very potentially long running &#039;exec&#039;s, and I only know which one is taking forever *after* it finishes. So I have to use ps and other tools to debug when needed. This might be useful in case you think one statement is taking timelist[x] seconds when it&#039;s actually taking timelist[x-1]... Right?

2) &#039;puppet apply&#039; has a --tags argument which you can use to specify partial amounts of puppet code to run. I think. I don&#039;t actually use this, although it might be useful, and if you like, feel free to test it out and let me know how it went. Sadly puppet doesn&#039;t have properly working manpages (at least for me) and I think they&#039;ve started keeping it all on their website ever since the license change away from the GPL. (http://docs.puppetlabs.com/man/apply.html) Hopefully I&#039;m wrong about their intentions, because I use and love puppet a lot.

3) Personally when I started using puppet, I was annoyed because my programs would normally compile or just run (eg python) right away! Now I have to sit there for 30 seconds. My solution, I don&#039;t mean this in a rude way, but I got more patient! Now these sorts of things are more appropriate again: http://xkcd.com/303/

Hope this helped!
James

PS: In case it interests you, I&#039;m actually working on puppet code and infrastructure to deploy GNOME and related components. It&#039;s all going to be Free Software when I finish a v0.1 I&#039;ll be writing about it on my blog.</description>
		<content:encoded><![CDATA[<p>Hi there,</p>
<p>I read your post quickly, but&#8230; I have a few comments, and hopefully they will be helpful to you (they&#8217;re free anyways):</p>
<p>1) AFAICT, when puppet is running something, it actually prints the output of what it *just* ran, *after* it ran it. I always found this a little stupid, because in some of my puppet scripts I have some very potentially long running &#8216;exec&#8217;s, and I only know which one is taking forever *after* it finishes. So I have to use ps and other tools to debug when needed. This might be useful in case you think one statement is taking timelist[x] seconds when it&#8217;s actually taking timelist[x-1]&#8230; Right?</p>
<p>2) &#8216;puppet apply&#8217; has a &#8211;tags argument which you can use to specify partial amounts of puppet code to run. I think. I don&#8217;t actually use this, although it might be useful, and if you like, feel free to test it out and let me know how it went. Sadly puppet doesn&#8217;t have properly working manpages (at least for me) and I think they&#8217;ve started keeping it all on their website ever since the license change away from the GPL. (<a href="http://docs.puppetlabs.com/man/apply.html" rel="nofollow">http://docs.puppetlabs.com/man/apply.html</a>) Hopefully I&#8217;m wrong about their intentions, because I use and love puppet a lot.</p>
<p>3) Personally when I started using puppet, I was annoyed because my programs would normally compile or just run (eg python) right away! Now I have to sit there for 30 seconds. My solution, I don&#8217;t mean this in a rude way, but I got more patient! Now these sorts of things are more appropriate again: <a href="http://xkcd.com/303/" rel="nofollow">http://xkcd.com/303/</a></p>
<p>Hope this helped!<br />
James</p>
<p>PS: In case it interests you, I&#8217;m actually working on puppet code and infrastructure to deploy GNOME and related components. It&#8217;s all going to be Free Software when I finish a v0.1 I&#8217;ll be writing about it on my blog.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trevor Vaughan</title>
		<link>http://thomas.apestaart.org/log/?p=1529&#038;cpage=1#comment-169093</link>
		<dc:creator>Trevor Vaughan</dc:creator>
		<pubDate>Thu, 24 Jan 2013 23:40:58 +0000</pubDate>
		<guid isPermaLink="false">http://thomas.apestaart.org/log/?p=1529#comment-169093</guid>
		<description>Thomas,

Take a look at the output of using --evaltrace on your puppet runs.

This *should* provide you with all of the information that you need.

Also, if you have a lot of Service objects, they will take quite a bit of time and there&#039;s not much you can do about it. Additionally, I&#039;ve found that Exec and Service *seem* to use the same execution queue and therefore moving your Exec statements to native types can really help your execution time. See the puppetlabs-stdlib code for examples.

Finally, get rid of any recursive File statements working on large directories as they have been shown to be massively inefficient.

Good Luck!</description>
		<content:encoded><![CDATA[<p>Thomas,</p>
<p>Take a look at the output of using &#8211;evaltrace on your puppet runs.</p>
<p>This *should* provide you with all of the information that you need.</p>
<p>Also, if you have a lot of Service objects, they will take quite a bit of time and there&#8217;s not much you can do about it. Additionally, I&#8217;ve found that Exec and Service *seem* to use the same execution queue and therefore moving your Exec statements to native types can really help your execution time. See the puppetlabs-stdlib code for examples.</p>
<p>Finally, get rid of any recursive File statements working on large directories as they have been shown to be massively inefficient.</p>
<p>Good Luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stijn Hoop</title>
		<link>http://thomas.apestaart.org/log/?p=1529&#038;cpage=1#comment-169088</link>
		<dc:creator>Stijn Hoop</dc:creator>
		<pubDate>Thu, 24 Jan 2013 22:37:45 +0000</pubDate>
		<guid isPermaLink="false">http://thomas.apestaart.org/log/?p=1529#comment-169088</guid>
		<description>Nice, going to have to try this out as well.

For semanage fcontext, I&#039;ve put up my puppet class here: https://gist.github.com/4628864
Yes, it abuses grep but as you&#039;ve covered, I&#039;ll gladly accept the maintenance burden in exchange for not doing multiple 5-second-per-context-checks.</description>
		<content:encoded><![CDATA[<p>Nice, going to have to try this out as well.</p>
<p>For semanage fcontext, I&#8217;ve put up my puppet class here: <a href="https://gist.github.com/4628864" rel="nofollow">https://gist.github.com/4628864</a><br />
Yes, it abuses grep but as you&#8217;ve covered, I&#8217;ll gladly accept the maintenance burden in exchange for not doing multiple 5-second-per-context-checks.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
