These are chat archives for ManageIQ/manageiq/performance

7th
Dec 2017
Keenan Brock
@kbrock
Dec 07 2017 15:25 UTC
Are these running the same version of ruby? Are they pointing to the same EMS? :point_up: December 6, 2017 11:41 AM
^ @jrafanie @NickLaMuro
Nick LaMuro
@NickLaMuro
Dec 07 2017 15:37 UTC
@kbrock read below with my comment
one is running idle, one is running c&u workload
Keenan Brock
@kbrock
Dec 07 2017 15:38 UTC
ok - so same versions, just C&U
wonder if there is different load we can use. maybe reporting?
Keenan Brock
@kbrock
Dec 07 2017 20:01 UTC

The DescendantLoader is frustrating for me

DescendantLoader.instance.class_inheritance_relationships # first time
DescendantLoader.instance.load_cache # every restart when loading classes like `Vm`
DescendantLoader.instance.save_cache

Looked at timings. Also tried out json (vs yaml) and sped up startup a bunch
but it is low hanging fruit - we are measuring in ms

ms bytes objects comments
12,034.7 44,290,193* 36,110,406 cir
---: ---: ---: ---
135.2 7,529,819 86,801 save_cache-yaml
38.8 505,447 8,573 save_cache-json
71% 93% 90% diff
---: ---: ---: ---
77.7 3,177,052 37,444 load_cache-yaml
37.2 1,059,671 11,999 load_cache-json
52% 67% 68% diff

* Memory usage does not reflect 17,405,821 freed objects.

This also calls >1k file stats on every bootup (to check mtime)
Keenan Brock
@kbrock
Dec 07 2017 20:10 UTC
@NickLaMuro pie in the sky theory
what if we only required the gems (vmware) that we enabled?
we would get rid of the custom class loader - because all of the sti would be loaded right?
Right after I startup, Vm.first = 25.5 seconds for me ( and 11m ram)
second call Vm.first = 35.6seconds, ( 103k ram)
Alex Krzos
@akrzos
Dec 07 2017 20:29 UTC
Hey guys/gals, random question, do we still ship miq with postgres as the default tsdb for metrics?
Joe Rafaniello
@jrafanie
Dec 07 2017 20:36 UTC
Yes @akrzos. :wave:
Nick LaMuro
@NickLaMuro
Dec 07 2017 20:37 UTC
:wave:
Joe Rafaniello
@jrafanie
Dec 07 2017 20:37 UTC
@kbrock what problem are we solving by looking at the performance of the DescendantLoader?
Dennis Metzger
@dmetzger57
Dec 07 2017 20:38 UTC
Hey @akrzos is back 😏
Joe Rafaniello
@jrafanie
Dec 07 2017 20:38 UTC
I know it gets in the way of some benchmarking. I'm not sure what though
Alex Krzos
@akrzos
Dec 07 2017 20:38 UTC
@jrafanie Thanks :wave:
@dmetzger57 :wave:
Joe Rafaniello
@jrafanie
Dec 07 2017 20:39 UTC
@akrzos @chrisarcand was looking at some alternatives for the metrics this summer ;-)
jrafanie @jrafanie throws @chrisarcand under the :bus:
Alex Krzos
@akrzos
Dec 07 2017 20:39 UTC
I saw activemetrics in the code but wasn't sure if it has ever been used/tested on a real appliance
Joe Rafaniello
@jrafanie
Dec 07 2017 20:40 UTC
I'm not sure
Nick LaMuro
@NickLaMuro
Dec 07 2017 20:40 UTC

I saw activemetrics in the code but wasn't sure if it has ever been used/tested on a real appliance

I think it currently is in use, since @chrisarcand put it in place over the summer and it is used during cap&U (as far as I can tell)

Alex Krzos
@akrzos
Dec 07 2017 20:43 UTC
@NickLaMuro gotcha, I saw ES, influx, and hawkular adapters just wanted to find out if a default changed
Brandon Dunne
@bdunne
Dec 07 2017 20:44 UTC
@kbrock what if you rake evm:compile_sti_loader before benchmarking?
Jason Frey
@Fryguy
Dec 07 2017 20:44 UTC
@akrzos !! :wave:
Nick LaMuro
@NickLaMuro
Dec 07 2017 20:44 UTC
postgres should still be the only one that is actually supported, but over the summer for the rearch spike, those other adapters were some alternatives that were being considered
FYI: relocating, back in a few
Oleg Barenboim
@chessbyte
Dec 07 2017 20:45 UTC
@akrzos miss you from ManageIQ project
Alex Krzos
@akrzos
Dec 07 2017 20:49 UTC
@chessbyte hey :wave: miss all you guys too
Keenan Brock
@kbrock
Dec 07 2017 21:11 UTC
@bdunne @jrafanie I am always benchmarking - switching between branches and modifying code.
The blip shows up in random places.
It is yet another thing I have to preload. So I was wondering if we could just remove it
Keenan Brock
@kbrock
Dec 07 2017 21:29 UTC
If the gems that we need were 'required', then we possibly wouldn't need the preloader at all.
Joe Rafaniello
@jrafanie
Dec 07 2017 21:31 UTC
@kbrock if you can trim down all the gems so we can require them and not bloat the process, I'd be on board with doing that. That's much harder though
I dislike how we lose visibility to dependencies because we must autoload because rails reasons
Brandon Dunne
@bdunne
Dec 07 2017 21:35 UTC
Also, don't forget about the child classes that need to be loaded if they exist
(stuff that we can't add a require for)