17:17:14 #startmeeting Rally 17:17:15 Meeting started Tue Mar 10 17:17:14 2015 UTC and is due to finish in 60 minutes. The chair is boris-42. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:17:16 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 17:17:19 The meeting name has been set to 'rally' 17:17:33 #topic Rally verify as control plane for all kinds of in tree tests 17:17:50 cdent: so I have somewhere real OpenStack installation 17:18:05 I would like to check that developers and MOS patches didn't change anything in API 17:18:18 and would like to run in-tree tests from Ceilometer against this MOS installation 17:18:24 how can I do this? 17:18:50 Download ceilometer, learn how to run gabbi, how to configure it, parse results, do some stuff 17:18:57 then work on script that will automate this stuf 17:19:20 cdent: ^ so instead of making this, let's just do this automation in Rally like we did for tempest 17:19:23 cdent: makes sense? 17:21:35 I see where you're coming from, and I think having a way to do that in a unified fashion across the various projects will be handy. Are you saying rally will handle even the download step? 17:21:59 cdent: download/install/running/parsing/storing results 17:22:06 cdent: and future work with results 17:22:19 cdent: like comparing/trending/generating html reports and so on 17:22:44 cdent: this functionality is mostly implemented, but it's a bit hardcoded to tempest 17:22:56 the idea is just to refactor a bit stuff, that will allow to use any tool 17:22:59 like gabbit 17:23:02 gabii* 17:23:30 at the moment gabbi is called from within tox targets, so would you just manage a list of tox targets or do some kind of discovery? 17:24:55 cdent: I belive we can analyze tox.ini 17:25:08 cdent: to discover targets 17:25:22 cdent: or even more bruteforce 17:25:31 cdent: have default value that can be passed 17:26:14 Okay, this all makes quite a bit more sense now 17:26:23 cdent: great) 17:26:45 Any questions? 17:27:32 okay let's move to the next topic 17:27:49 boris-42: I wonder how cloudcafe https://github.com/stackforge/cloudroast could integrate with this 17:28:13 meteorfox: so I talk with those guys 17:28:15 boris-42: written by Rackspace, it was intended to be better than tempest 17:28:19 meteorfox: in integrates in the same way 17:28:41 and to replace it, but never caught on, at least in the community, we use it here for everthing 17:28:47 meteorfox: we need to do the same changes in rally like for gabbi and other projects 17:29:12 boris-42: alright, sounds good 17:30:31 meteorfox: great 17:30:36 okay let's move to the next topic 17:30:50 #topic THE NEW constant runner 17:31:08 We fully refactored how constant runner works 17:31:29 Now it starts N workers (where N is amount of CPU) and uses in each worker threads to create load 17:31:30 boris-42: do you have the link to the review? 17:31:35 meteorfox: sure 17:31:50 thanks 17:32:12 meteorfox: https://review.openstack.org/#/c/155225/ 17:32:27 meteorfox: so now you can generate big load =) 17:32:37 meteorfox: I tried 1000 threads and it works perfectly fine 17:33:39 any questions?) 17:34:03 boris-42: it uses multiprocessing.Process? 17:34:04 I think it would be useful to also have a command line option or configuration option to decide how many process to create 17:34:36 meteorfox: yep 17:34:42 arcimboldo: what is the case for that?) 17:34:54 arcimboldo: it's easy to add, just curios 17:35:10 boris-42: so what do you mean that you tried 1000 threads then? 17:35:12 just in case someone is running rally on a machine where other services are running 17:35:31 meteorfox: I just put concurrency: 1000 and it worked well 17:35:35 1000 process? 17:35:43 meteorfox: read the begging=) 17:35:55 meteorfox: we refactored constant load to not use only Processes 17:36:12 meteorfox: it starts AMOUNT_OF_CORES Processes and then make load using Threads 17:36:31 meteorfox: I have 4 cores so it creates 4 processes each of them generated 250 threads 17:36:36 meteorfox: and it worked well 17:36:48 boris-42: ok, cool. those threads will be GIL bound right? 17:36:50 arcimboldo: good case 17:37:05 but not the processes 17:37:17 arcimboldo: I will add it to wishlist this case 17:37:34 arcimboldo: I will add this case to wishlist** 17:37:42 english so hard=) 17:37:44 boris-42: it pretty much creates 4 interpreters, and they communicate over IPC 17:38:00 meteorfox: yep 17:38:30 meteorfox: they communicated only master-worker 17:38:57 boris-42: right, with the join and the queue 17:39:39 meteorfox: so for benchmarking things that are taking > 100ms it's quite good=) 17:39:42 choice=) 17:39:58 meteorfox: in case of OpenStack where things are run for seconds and minutes 17:40:04 it's perfectly fine=) 17:41:00 boris-42: right. I understand 17:42:35 boris-42: it'd be interesting how consistent can Rally be, at high number of threads 17:42:41 to see* 17:42:48 #link https://bugs.launchpad.net/rally/+bug/1430461 17:42:48 Launchpad bug 1430461 in Rally "Add to constant and rps runneres limits for maximun Core usage" [Wishlist,Triaged] 17:43:05 arcimboldo: ^ 17:43:26 thnx boris-42 17:43:34 meteorfox: so actually we will integrate rally profiler 17:43:42 meteorfox: that will answer on questions what is the overhead 17:44:08 meteorfox: in any case Runners are plugins they can be rewritten from scratch 17:44:22 meteorfox: at any moment without affecting rest of the code 17:44:28 meteorfox: like we just did=) 17:44:39 Any other questions? 17:44:51 boris-42: yeah. that's true. About the RPS runner, is that non-blocking? 17:45:02 meteorfox: non-blocking? 17:45:12 meteorfox: you mean will it create more and more threads?) 17:46:05 boris-42: say I want to model an open workload, that is I want a consistent injection rate, that regardless if the cloud is slowing down, it will keep that rate 17:46:42 boris-42: usually I've seen that implemented with async io, where the request is decoupled from the response/result 17:46:54 meteorfox: yep 17:46:59 meteorfox: that is why we did rps runner 17:47:10 meteorfox: it just runs every second more "rps" threads 17:47:22 meteorfox: actually every interval where interval is 1/rps 17:48:08 boris-42: ok, that sounds a little heavy though. 17:48:55 meteorfox: actually aix is working on finish patch from jlk 17:49:06 meteorfox: https://review.openstack.org/#/c/140150/ 17:49:15 meteorfox: that limits maximum amount of concurrent working threads 17:49:30 meteorfox: as well you have --stop-on-sla-failure key for rally task start 17:49:39 meteorfox: http://boris-42.me/rally-tricks-stop-load-before-your-openstack-goes-wrong/ 17:49:56 meteorfox: ^ so if things go mad it will stop load at all 17:50:06 boris-42: ok ok 17:50:21 boris-42: anyway, that's all I had thanks 17:50:32 meteorfox: great let's move to next topic 17:50:41 #topic Rally in tree-specs 17:50:55 Recently we merged patch that adds Rally in-tree specs and test them 17:51:14 #link https://review.openstack.org/#/c/162433/ 17:51:28 ^ we will use them for all big refactoring of Rally 17:51:32 or new features 17:51:55 https://review.openstack.org/#/c/159065/ this is the first spec 17:52:04 Any questions? ) 17:52:22 redixin: meteorfox andreykurilin_ msdubov_ ^ 17:52:23 boris-42: What should be added next to the specs? 17:52:34 msdubov_: hm? 17:52:48 msdubov_: you mean what specs we should add or? 17:52:57 boris-42: so, are these like acceptance criteria tests? 17:53:03 boris-42: yes 17:53:20 boris-42: or acceptance tests 17:54:19 meteorfox: so we have unit test that checks format of new spec 17:54:33 meteorfox: like if there are missing headers or not rst or too longs lines 17:54:38 meteorfox: unit test will fail 17:54:54 msdubov_: your questions is not clear for me=) 17:54:58 question* 17:55:44 boris-42: ok, so rally will just make sure the specs follows some kind of format? 17:55:51 meteorfox: yep 17:56:06 meteorfox: this format https://github.com/stackforge/rally/blob/master/doc/specs/template.rst 17:56:24 boris-42: Should we add any specs after this patch? 17:57:29 boris-42: oh ok. I thought these were like Ruby's Capybara/Cucumber tests 17:57:55 msdubov_: we will see 17:58:06 msdubov_: at least we will do discussion of new Input format 17:58:09 in specs 17:58:31 boris-42: isn't that a little over-kill. why not a simply python script, called by a git hook? 17:58:45 meteorfox: unit tests are simpler 17:58:47 meteorfox: and unifed 17:59:00 we need to finish meeting 17:59:08 see you in rally chat 17:59:11 #endmeeting