Wednesday, 2010-03-10

[2010/03/10 00:20:06] @ Log started by gepetto
[2010/03/10 00:20:06] @ lak joined channel #puppet-dev
[2010/03/10 00:38:00] @ Quit: stevenjenkins: Read error: Operation timed out
[2010/03/10 01:03:50] <jamesturnbull> nigelk: ping
[2010/03/10 01:09:14] @ stevenjenkins joined channel #puppet-dev
[2010/03/10 01:57:26] <nasrat> moin
[2010/03/10 02:29:11] @ JJA joined channel #puppet-dev
[2010/03/10 02:33:52] @ Quit: lak: Quit: lak
[2010/03/10 02:37:24] @ DavidS joined channel #puppet-dev
[2010/03/10 02:47:16] @ Quit: JJA: Ping timeout: 245 seconds
[2010/03/10 03:34:06] @ DavidS1 joined channel #puppet-dev
[2010/03/10 03:37:09] @ Quit: DavidS: Ping timeout: 245 seconds
[2010/03/10 03:42:34] @ DavidS joined channel #puppet-dev
[2010/03/10 03:46:01] @ Quit: DavidS1: Ping timeout: 245 seconds
[2010/03/10 04:23:58] @ JJA joined channel #puppet-dev
[2010/03/10 07:05:38] @ plathrop-away is now known as plathrop
[2010/03/10 07:39:12] @ DavidS1 joined channel #puppet-dev
[2010/03/10 07:41:16] @ jmccune joined channel #puppet-dev
[2010/03/10 07:41:45] @ Quit: DavidS: Ping timeout: 245 seconds
[2010/03/10 08:19:55] @ Quit: JJA: Read error: Operation timed out
[2010/03/10 09:42:49] @ notbrien joined channel #puppet-dev
[2010/03/10 11:06:09] <nigelk> hey jamesturnbull
[2010/03/10 11:06:29] <nigelk> I'm trying to get my thoughts in order re that CA autosign bug
[2010/03/10 11:06:36] <nigelk> i'm not convinced it's not a security issue
[2010/03/10 11:07:27] @ lak joined channel #puppet-dev
[2010/03/10 11:07:28] <masterzen> nigelk: did you continue experimenting benchmarking your masters?
[2010/03/10 11:07:44] <nigelk> I have been, yes
[2010/03/10 11:07:54] <nigelk> at the moment I'm profiling mainly to try to work out where all the CPU time is being spent
[2010/03/10 11:08:11] <nigelk> finally worked out how to wrap puppetmasterd in ruby-prof so I could get a html graph output
[2010/03/10 11:08:21] <masterzen> nigelk: cool. I'm interested in your results :-)
[2010/03/10 11:08:24] <masterzen> or findings
[2010/03/10 11:08:31] <nigelk> (pro tip: filter your profile report to exclude things below 1% usage :)
[2010/03/10 11:08:41] <nigelk> without doing that I was generating 400MB HTML files with no images....
[2010/03/10 11:08:47] <nigelk> with it I'm down to about 4MB
[2010/03/10 11:08:47] <nigelk> :)
[2010/03/10 11:09:29] <nigelk> I'm not seeing any obvious smoking guns. I'm really happy with the memory consumption of 0.25.4 in production
[2010/03/10 11:09:39] <nigelk> but CPU usage still feels way too high for the amount of work actually being done
[2010/03/10 11:10:20] <nigelk> Some artificial benchmarks seemed to point to a newer version of event-loop resolving problems, but in practice it doesn't seem to make much difference
[2010/03/10 11:10:21] <nigelk> http://projects.reductivelabs.com/issues/3359
[2010/03/10 11:10:31] <nigelk> i have a patch for the newer version in case people want to accept it
[2010/03/10 11:12:20] <masterzen> yes, I do also think CPU is a bit high for what the master does...
[2010/03/10 11:12:35] <nigelk> I'll whip up another profile and put it up somewhere now
[2010/03/10 11:13:00] <masterzen> my previous attempts at profiling didn't show anything suspect though. the cpu was all gathered in tons of small methods...
[2010/03/10 11:13:04] <nigelk> yes
[2010/03/10 11:13:09] <masterzen> no real hotspot
[2010/03/10 11:16:32] <nigelk> what are your thoughts on http://projects.reductivelabs.com/issues/3360 masterzen ?
[2010/03/10 11:16:55] <nigelk> it's too early and I'm not thinking clearly enough yet to clarify why I feel this is such horrible behavior :(
[2010/03/10 11:18:44] <masterzen> nigelk: at the time of the previous change, I remember wondering wtf, but was real busy on plenty of other things, so I didn't open my mouth. I should have.
[2010/03/10 11:18:54] <nigelk> I completely missed that discussion :(
[2010/03/10 11:19:02] <nigelk> at least I think I did, or at least didn't understand the implications
[2010/03/10 11:19:16] <nigelk> http://www.explanatorygap.net/crap/ruby-profile.html
[2010/03/10 11:19:34] <nigelk> (webrick instance. easier to profile for a single client run)
[2010/03/10 11:21:54] <nigelk> hrm. perhaps filtering at 10% hides too much
[2010/03/10 11:22:48] <masterzen> there are lot of webrick/ssl noise...
[2010/03/10 11:22:49] <nigelk> http://www.explanatorygap.net/crap/ruby-profile.html#70121801903160
[2010/03/10 11:22:55] <nigelk> ah there we go. that's the important thread
[2010/03/10 11:24:04] <masterzen> yes, I found it
[2010/03/10 11:24:17] <masterzen> what do you use for the profiling?
[2010/03/10 11:24:22] <nigelk> ruby-prof
[2010/03/10 11:24:44] <nigelk> then:
[2010/03/10 11:24:44] <nigelk> http://pastie.org/863390
[2010/03/10 11:25:05] <nigelk> I wanted to profile the whole thing before wrapping more specific stuff in the profiler
[2010/03/10 11:25:08] <masterzen> It would be useful to start profiling only in the Puppet::Network::HTTP::Handler
[2010/03/10 11:26:17] <nigelk> huh. the parser seems to be taking up reasonable chunks?
[2010/03/10 11:26:48] <nigelk> you know about the parser... :) how hard do you think it would be to replace the parser with a C library for performance?
[2010/03/10 11:30:45] <nigelk> so this feels to jive with my intuitions about 0.25.x
[2010/03/10 11:30:52] <nigelk> file transfers no longer consume lots of CPU
[2010/03/10 11:31:03] <nigelk> but it's quite expensive to parse the manifests
[2010/03/10 11:36:46] <masterzen> nigelk: most of the parser is done in the rack C library
[2010/03/10 11:37:02] <masterzen> nigelk: but to answer your question, it will be hard.
[2010/03/10 11:37:22] <nigelk> meh ;)
[2010/03/10 11:37:42] <masterzen> nigelk: I think one of the good move would be to drop racc for PEG like treetop. And I know Markus is fond of treetop :-) so that might happen one day :-)
[2010/03/10 11:37:49] <nigelk> so I see a lot of time spent in Puppet::Parser::AST::ASTArray#evaluate
[2010/03/10 11:37:59] <nigelk> and the corresponding safeevaluate etc, with all the each and collect calls
[2010/03/10 11:38:22] <masterzen> in my own profiling back a year ago, the parser wasn't taking that much compared to the compilation phase. And you parse only once.
[2010/03/10 11:38:44] <nigelk> yeah. this profile seems to indicate otherwise however?
[2010/03/10 11:39:53] <masterzen> #evaluate is from the compiler, not the parser.
[2010/03/10 11:40:08] <nigelk> oh.
[2010/03/10 11:40:13] * nigelk looks back at the code structure
[2010/03/10 11:41:26] <nigelk> i still don't quite get how the parser/compiler hangs together. sigh.
[2010/03/10 11:42:23] <masterzen> nigelk: the parser creates all the AST. The compiler evaluates them.
[2010/03/10 11:42:43] <masterzen> producing resources
[2010/03/10 11:50:11] @ Quit: lak: Quit: lak
[2010/03/10 12:15:53] @ Quit: DavidS1: Quit: Leaving.
[2010/03/10 12:21:26] <nigelk> what happened to the ruby1.9 patch we were meant to have for 1.9?
[2010/03/10 12:21:38] <nigelk> actually, that sounds too much like I'm being a dick :)
[2010/03/10 12:21:58] <nigelk> there was mention of 1.9 compatibility coming for 0.25.0 on the list after googling, but it doesn't appear that happened?
[2010/03/10 12:27:40] @ lak joined channel #puppet-dev
[2010/03/10 13:38:34] @ JJA joined channel #puppet-dev
[2010/03/10 13:46:06] <jamesturnbull> nigelk: see that ticket for some comments
[2010/03/10 13:47:06] <nigelk> yep. been adding some too :)
[2010/03/10 13:48:00] <jamesturnbull> nigelk: okay just woke up so haven't checked - I love 5 in the morning
[2010/03/10 13:52:37] @ Quit: JJA: Ping timeout: 264 seconds
[2010/03/10 13:58:26] @ Quit: lak: Quit: lak
[2010/03/10 13:59:25] @ lak joined channel #puppet-dev
[2010/03/10 14:13:18] @ jes51 joined channel #puppet-dev
[2010/03/10 14:14:21] @ Quit: jes5: Ping timeout: 245 seconds
[2010/03/10 14:17:45] @ Quit: jes51: Ping timeout: 252 seconds
[2010/03/10 14:22:16] @ jes5 joined channel #puppet-dev
[2010/03/10 14:33:11] @ Quit: lak: Quit: lak
[2010/03/10 15:03:35] @ lak joined channel #puppet-dev
[2010/03/10 16:32:12] @ ReinH joined channel #puppet-dev
[2010/03/10 17:44:15] <nigelk> masterzen: kcachegrind looks most productive with the ruby-prof CallTreePrinter
[2010/03/10 17:48:50] @ Quit: jmccune: Ping timeout: 245 seconds
[2010/03/10 17:52:37] @ Quit: lak: Quit: lak
[2010/03/10 17:54:13] @ lak joined channel #puppet-dev
[2010/03/10 17:55:57] @ Quit: lak: Client Quit
[2010/03/10 18:33:57] @ Quit: notbrien: Quit: notbrien
[2010/03/10 19:35:12] @ Quit: nigelk: Ping timeout: 245 seconds
[2010/03/10 21:05:12] @ nigelk joined channel #puppet-dev
[2010/03/10 21:09:49] @ Quit: nigelk: Client Quit
[2010/03/10 21:16:49] @ plathrop is now known as plathrop-away

Generated by irclog2html.py 2.6 by Marius Gedminas - find it at mg.pov.lt!