| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-08-16 | |||
| 09:46:02 | sean-k-mooney | thats unfortunet. there is still alot of work going into makeing schdulign faster in general. hopefully the performacne is adaquit for now. | |
| 09:46:24 | mriedem | i imagine the big chunk of the per-request scheduling time is taken in the DB queries which iterate all selected compute nodes and then pull all instance UUIDs on each node | |
| 09:46:29 | mriedem | across all cells | |
| 09:46:42 | mriedem | that could be optimized into a single big join per cell probably | |
| 09:47:25 | mriedem | because CERN isn't using the track_instance_changes config option right? | |
| 09:47:34 | mriedem | where the computes report instance per host changes to the scheduler | |
| 09:47:35 | mriedem | ? | |
| 09:48:34 | mriedem | this method https://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L710 | |
| 09:48:46 | mriedem | specifically https://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L735 | |
| 09:49:00 | mriedem | that queries the cell db per compute host to find the list of instance uuids on that host | |
| 09:50:29 | sean-k-mooney | mriedem: for the cern case you really only need to fine out what cell the project is mapped too right? so if we had placement aggreates per cell we would just need to add a member of to the placement query for the cells assocated with the tenant and let placement do all the work | |
| 09:51:13 | mriedem | sean-k-mooney: CERN already has that | |
| 09:51:19 | tssurya | mriedem: yea the time consumption is in the pulling of all instances info | |
| 09:51:22 | mriedem | they have tenants mapped to host aggregates which are mapped to resource provider aggregates | |
| 09:51:26 | mriedem | and that does the pre-filtering | |
| 09:51:46 | sean-k-mooney | mriedem: oh ok cool | |
| 09:52:07 | mriedem | they use this stuff https://docs.openstack.org/nova/latest/admin/configuration/schedulers.html#aggregates-in-placement | |
| 09:52:09 | sean-k-mooney | mriedem: so why do we ever pull the per host info back? | |
| 09:52:34 | openstackgerrit | jichenjc proposed openstack/nova master: Add zvm admin intro and hypervisor information https://review.openstack.org/533125 | |
| 09:52:35 | openstackgerrit | jichenjc proposed openstack/nova master: Add zvm CI information https://review.openstack.org/533512 | |
| 09:52:51 | mriedem | sean-k-mooney: for the affinity filters | |
| 09:53:18 | sean-k-mooney | mriedem: ah but that is after the placmenet query right? | |
| 09:53:25 | mriedem | yes | |
| 09:53:46 | mriedem | pre-filter -> GET /allocation_candidates -> get_host_states -> per-host-instance query -> filters/weighers | |
| 09:54:11 | sean-k-mooney | ok i miss understood. i taught you were implying we were doing the db query in the prefilter | |
| 09:54:33 | mriedem | no the only thing we query there is which host aggregates are restricted for the tenant | |
| 09:54:52 | sean-k-mooney | ya that makes sense. | |
| 09:55:03 | mriedem | https://github.com/openstack/nova/blob/master/nova/scheduler/request_filter.py#L26 | |
| 09:56:58 | openstackgerrit | Matthew Booth proposed openstack/nova master: Py3 fix in fake image service https://review.openstack.org/592056 | |
| 09:57:00 | openstackgerrit | Matthew Booth proposed openstack/nova master: Add regression test for bug 1550919 https://review.openstack.org/591733 | |
| 09:57:01 | openstack | bug 1550919 in OpenStack Compute (nova) "[Libvirt]Evacuate fail may cause disk image be deleted" [Medium,In progress] https://launchpad.net/bugs/1550919 - Assigned to Matthew Booth (mbooth-9) | |
| 09:57:01 | openstackgerrit | Matthew Booth proposed openstack/nova master: Don't delete disks on shared storage during evacuate https://review.openstack.org/578846 | |
| 09:58:15 | sean-k-mooney | mriedem: right we just get the aggreate uuids and stuff them in the destination object | |
| 09:59:41 | mdbooth | mriedem: ^^^ is my proposed for failed evacuate on shared storage. The functional tests exercise all 4 combinations of shared/nonshared instance directory and share/nonshared block. | |
| 10:00:03 | mdbooth | mriedem: Good call ;) | |
| 10:01:39 | sean-k-mooney | there is no stien spec template ye correct? im going to make one reusing the rocky template. | |
| 10:02:05 | sean-k-mooney | is it stien or stein? | |
| 10:02:29 | mdbooth | sean-k-mooney: The latter | |
| 10:03:11 | sean-k-mooney | damb german words not doing the i before e thing | |
| 10:03:35 | sean-k-mooney | that said more english word dont follow that then do also | |
| 10:03:42 | mdbooth | Our crazy european neighbours | |
| 10:04:26 | mdbooth | Don't understand the weightiness of consistent spelling | |
| 10:07:09 | sean-k-mooney | you have seen my speeling correct ( yes i know i misspelled spelling, however that was kind of a typo). sometimes constency is a good thing but that does not mean i like us spelling more then uk. | |
| 10:14:39 | openstackgerrit | Vlad Gusev proposed openstack/nova stable/pike: Fix service list for disabled compute using MC driver https://review.openstack.org/592337 | |
| 10:26:00 | openstackgerrit | Claudiu Belu proposed openstack/nova master: tests: autospecs all the mock.patch usages https://review.openstack.org/470775 | |
| 10:26:01 | openstackgerrit | Claudiu Belu proposed openstack/nova master: hyper-v: autospec classes before they are instantiated https://review.openstack.org/342211 | |
| 10:30:46 | openstackgerrit | Claudiu Belu proposed openstack/nova master: WIP: replace spec with autospec https://review.openstack.org/557299 | |
| 10:38:14 | openstackgerrit | Chen proposed openstack/nova master: Fix soft deleting vm fails after "nova resize" vm https://review.openstack.org/546920 | |
| 10:41:35 | openstackgerrit | Claudiu Belu proposed openstack/nova master: hyperv: Cleans up live migration Planned VM https://review.openstack.org/478943 | |
| 11:59:12 | openstackgerrit | Matthew Booth proposed openstack/nova master: Move static _get_power_off_values to compute_utils https://review.openstack.org/578822 | |
| 11:59:27 | openstackgerrit | Matthew Booth proposed openstack/nova master: Move static _get_power_off_values to compute_utils https://review.openstack.org/578822 | |
| 12:07:38 | mdbooth | Any py3-loving cores fancy knocking this on the head: https://review.openstack.org/#/c/592056/ Trivial: change to explicit string type required by py3. | |
| 12:15:45 | openstackgerrit | Yikun Jiang (Kero) proposed openstack/nova master: Make monkey patch work in uWSGI mode https://review.openstack.org/592285 | |
| 12:15:58 | efried | mdbooth: I glanced at that yesterday, but I'm not a py2-to-3 expert and the commit message is... sparse. Can you help me understand what's wrong and why it needs to be fixed? | |
| 12:16:15 | mdbooth | efried: Because the argument has to be binary | |
| 12:16:31 | efried | according to...? | |
| 12:16:31 | mdbooth | If it's not, it gives an error that the argument has to be binary | |
| 12:16:58 | efried | what gives an error? data.write or _imagedata.get? | |
| 12:17:07 | efried | presumably the former | |
| 12:17:10 | mdbooth | Yeah | |
| 12:17:40 | efried | and where does the error show up? It must not be in the py35 tox job...? | |
| 12:18:02 | mdbooth | Yeah, it was happening in the functional job | |
| 12:18:18 | efried | oooohhhh | |
| 12:18:29 | efried | I was blinded by the fact that the fake driver lives in the /unit/ path. | |
| 12:18:29 | mdbooth | Although it was non-deterministic until I twigged why | |
| 12:18:34 | openstackgerrit | Yikun Jiang (Kero) proposed openstack/nova master: Make monkey patch work in uWSGI mode https://review.openstack.org/592285 | |
| 12:18:38 | efried | but it's used for the func tests too. | |
| 12:18:45 | mdbooth | They're pretty incestuous :) | |
| 12:18:54 | efried | okay, now that I have a way to try to repro locally I can take a better look at it. | |
| 12:19:17 | efried | If you wouldn't mind enhancing the commit message, future me will be grateful. | |
| 12:19:36 | mdbooth | Maybe if you open the file binary it has to have binary data written to it? | |
| 12:19:59 | efried | Well, it makes sense that you would *want* to write binary if you're opening with 'b'. | |
| 12:20:24 | mdbooth | TypeError: a bytes-like object is required, not 'str' | |
| 12:20:24 | mdbooth | File "<stdin>", line 1, in <module> | |
| 12:20:24 | mdbooth | Traceback (most recent call last): | |
| 12:20:24 | mdbooth | >>> f.write('foo') | |
| 12:20:24 | mdbooth | >>> f = open('/tmp/foo', 'wb+') | |
| 12:20:32 | mdbooth | That's the error you get, anyway | |
| 12:20:53 | mdbooth | 3 | |
| 12:20:53 | mdbooth | >>> f.write(b'foo') | |
| 12:21:04 | efried | yeah, so they must have tightened that down in py3, eh? | |
| 12:21:24 | mdbooth | py2: | |
| 12:21:30 | mdbooth | >>> f.write(b'foo') | |
| 12:21:30 | mdbooth | >>> f.write('foo') | |
| 12:21:30 | mdbooth | >>> f = open('/tmp/foo', 'wb+') | |
| 12:21:32 | mdbooth | Both work | |
| 12:21:55 | efried | which func test would fail? | |
| 12:22:19 | efried | I try not to run full suites locally unless I need to reheat my coffee. | |
| 12:22:50 | mdbooth | So... the following functional test would fail non-deterministically depending on whether or not fake image service gave it an image with a kernel and ramdisk or not | |
| 12:23:38 | efried | We have a test that sometimes uses one kind of image and sometimes another, nondeterministically?? | |
| 12:23:52 | mdbooth | efried: Yep. A few :) | |
| 12:24:16 | efried | that's... I can't... but WHY? | |
| 12:24:25 | mdbooth | I felt really good about myself for find that this morning :) | |
| 12:24:50 | mdbooth | efried: non-deterministic dict ordering | |
| 12:25:40 | efried | ...because the reward for good work is... | |
| 12:26:59 | mdbooth | efried: It's not relevant to my bug, or I would have. I was just tripping over it. | |
| 12:27:19 | efried | I was about to say: assume the topic bug isn't really related, so this should be tagged with the py3-first tag (whatever that tag is) | |
| 12:28:50 | efried | btw, I recently discovered with cdent's guidance that you can avoid gerrit re-topic'ing your whole series by using git-review -T (available only in recent versions of git-review) | |
| 12:29:07 | mdbooth | I mean the non-deterministic images, that is. My patch just needs a functioning image service in order to boot. kernel vs non-kernel is irrelevant, except that it caused a bug. | |
| 12:29:39 | mdbooth | I don't really use topics, tbh | |