| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-10-19 | |||
| 18:16:45 | jaypipes | dansmith: because there simply isn't a way to get a None value there. | |
| 18:16:56 | sahid | in any case i update the spec to fix the issue with ci I hope everytinhg is ok now :) | |
| 18:17:08 | dansmith | jaypipes: either do that so we break, or check the result of the get() and raise something specific | |
| 18:17:09 | dansmith | jaypipes: but don't just ignore it and pass None to placement | |
| 18:17:22 | jaypipes | dansmith: will do the former. | |
| 18:17:42 | sahid | oh... I just noticed your comments, let see | |
| 18:17:58 | dansmith | jaypipes: thanks | |
| 18:18:17 | penick_ | melwitt: we "fixed" the delete timing this morning by setting reclaim_instance_interval to a non-zero number. Deletes still take a minute or two on the backend, but at least it'll seem fast for users. | |
| 18:18:38 | mriedem | melwitt: the new internal perf thing i got yesterday was they were saying claims were taking too long in the compute because of the lock | |
| 18:18:49 | mriedem | they are testing creating 70 instances on the same host at the same time | |
| 18:19:47 | melwitt | penick_: you are now leveraging soft-delete | |
| 18:19:56 | penick_ | yep | |
| 18:20:33 | melwitt | mriedem: claims in mitaka, right? the old style claim | |
| 18:20:43 | mriedem | yes | |
| 18:20:58 | mriedem | but, we still have all that code if you're using the ram/core/disk filters | |
| 18:21:03 | mriedem | and/or caching scheduler | |
| 18:21:26 | melwitt | so the COMPUTE_RESOURCE_SEMAPHORE | |
| 18:21:28 | mriedem | anyway, there was no low level profiling done | |
| 18:21:29 | mriedem | yeah | |
| 18:21:35 | dansmith | and that's all been there for a long time | |
| 18:21:41 | openstackgerrit | sahid proposed openstack/nova-specs master: virt: allow instances to be booted with trusted VFs https://review.openstack.org/485522 | |
| 18:21:41 | mriedem | i was going to see if there are things we hit in the db while we have the lock held that could be moved out | |
| 18:21:49 | mriedem | like getting instance pci requests | |
| 18:21:57 | melwitt | I think that's what caused some stuff in ironic to be slow too right ... the slow initial query for ironic nodes | |
| 18:22:05 | dansmith | maybe penick_ wasn't running real conductor before but now is? | |
| 18:22:36 | mriedem | i did notice this yesterday https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L1473 | |
| 18:22:42 | mriedem | that will call update_usage in the RT which has the lock | |
| 18:22:49 | mriedem | and we do that for no apparent reason | |
| 18:22:58 | mriedem | the RT doesn't care about an instance setting up networking | |
| 18:23:06 | melwitt | hm | |
| 18:23:19 | mriedem | i told them to comment that line out and see what happens | |
| 18:23:27 | mriedem | and adjust their update_available_resource interval | |
| 18:24:15 | penick_ | dansmith: that's correct.. Our Ocata clusters use conductor, and our SE team is deploying the conductor service to our juno clusters today. | |
| 18:24:30 | penick_ | use the conductor service, i mean. | |
| 18:25:21 | openstackgerrit | Merged openstack/nova stable/pike: Fix sending legacy instance.update notification https://review.openstack.org/510957 | |
| 18:25:26 | openstackgerrit | Merged openstack/nova stable/pike: Keep updating allocations for Ironic https://review.openstack.org/513198 | |
| 18:25:31 | dansmith | penick_: so I'd look to see if maybe you're pegging those whereas before you were doing a bunch of direct access with lower latency? | |
| 18:26:06 | dansmith | mriedem's thing was also a single compute, so lots of contention for things in the claim process | |
| 18:26:17 | dansmith | whereas I assume penick_ has a plethora of computes | |
| 18:26:33 | dansmith | a veritable cornucopia of bountiful resources | |
| 18:26:42 | mriedem | oh yeah, i guess on _complete_deletion we are updating the rt, | |
| 18:26:45 | mriedem | which grabs the lock | |
| 18:26:48 | penick_ | The ocata clusters are all dev and qe with only a 1-5 computes each, they're sitting pretty much idle. But i'll doublecheck to make sure we don't have something else cropping up gobbling up the resources on them | |
| 18:26:52 | mriedem | and makes all of the deletes on a single node serialized | |
| 18:28:26 | ildikov | jgriffith: added some answers | |
| 18:29:04 | mriedem | so looking way back https://github.com/openstack/nova/blob/0ca98979da842f9accf0f8d8c4eb7d4f1f9eac7a/nova/compute/manager.py#L612 | |
| 18:29:07 | mriedem | before versioned objects | |
| 18:29:22 | mriedem | we always updated an instance state using that method, which also updated the RT | |
| 18:29:24 | mriedem | which grabs the lock | |
| 18:29:38 | mriedem | so we have some vestigial use of that now, updating RT unnecessarily | |
| 18:29:52 | mriedem | RT should only care if you're creating, moving or deleting an instance | |
| 18:30:00 | mriedem | not that you're setting up networking | |
| 18:31:41 | penick_ | The ocata api hosts running the conductor service are all idle | |
| 18:31:54 | dansmith | penick_: during a delete storm? | |
| 18:32:26 | penick_ | That I don't know yet, i'm going to set one up. I'll let you know what I come up with. | |
| 18:32:38 | dansmith | at idle I'd expect them to be idle ;) | |
| 18:33:15 | penick_ | But first our -juno- conductors are all exploding as they're being deployed. Gotta help the team tune those first | |
| 18:34:14 | penick_ | I set myself up for that :| | |
| 18:35:06 | melwitt | exploding meaning they won't run? or they are overloaded and you need to adjust workers? | |
| 18:38:16 | penick_ | Overloaded, we're only running 26 workers per node, on 3 nodes. Going to try adding more | |
| 18:40:48 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Don't update RT in _allocate_network https://review.openstack.org/513473 | |
| 18:51:26 | openstackgerrit | sean mooney proposed openstack/nova-specs master: Use neutron's new port binding API for live migration https://review.openstack.org/375580 | |
| 18:53:13 | melwitt | penick_: that seems like a lot to me but would have to consult dansmith. I don't remember what the sane starting point for number of workers per node is | |
| 18:54:25 | dansmith | workers per node is not a useful metric, it's workers per compute | |
| 18:54:57 | dansmith | 26*3 is a fair number of conductor workers, but if you have a thousand computes, then ... probably not insane | |
| 18:55:04 | dansmith | it also depends on what is happening | |
| 18:55:17 | dansmith | if everything is idle, that's probably more than enough | |
| 18:55:20 | melwitt | okay, sorry I think I was thinking of earlier when penick_ said 1-5 computes but if he's talking about juno then that would be 100s of computes | |
| 18:55:33 | melwitt | the 1-5 computes is the ocata testing | |
| 18:55:53 | openstackgerrit | Jay Pipes proposed openstack/nova master: placement: integrate ProviderTree to report client https://review.openstack.org/415921 | |
| 18:55:54 | openstackgerrit | Jay Pipes proposed openstack/nova master: placement: allow filter providers in tree https://review.openstack.org/377215 | |
| 18:55:54 | openstackgerrit | Jay Pipes proposed openstack/nova master: placement: add nested resource providers https://review.openstack.org/377138 | |
| 18:55:55 | openstackgerrit | Jay Pipes proposed openstack/nova master: placement: update client to set parent provider https://review.openstack.org/385693 | |
| 18:55:55 | openstackgerrit | Jay Pipes proposed openstack/nova master: placement: adds REST API for nested providers https://review.openstack.org/384807 | |
| 18:55:59 | jaypipes | dansmith: ^ | |
| 18:57:36 | dansmith | melwitt: right | |
| 19:13:52 | sahid | jaypipes: ci is green https://review.openstack.org/#/c/485522/ | |
| 19:14:31 | sahid | btw mriedem, did you take descison for this: https://review.openstack.org/#/c/511188/ ? | |
| 19:21:42 | mriedem | sahid: no | |
| 19:21:47 | mriedem | it's not on my list | |
| 19:24:02 | sahid | mriedem: thanks | |
| 19:31:15 | penick_ | melwitt: this particular cluster is about 1500 nodes. But I think I found the issue. They had the hypervisors set to use the conductor service, but the API was still configured to use local conductor. Which i'm pretty sure will never work. I had them fix it and so far it appears things are working. They'll do some more tests and get back to me | |
| 19:32:11 | melwitt | aha, cool | |
| 19:32:40 | dansmith | penick_: APIs should use always go straight to the db for object access | |
| 19:32:59 | dansmith | and in juno I'm not sure there was anything in conductor that apis needed to access, but local conductor for them should be fine | |
| 19:33:16 | dansmith | penick_: what was "fixed" .. the load on the conductors? | |
| 19:34:48 | efried | jaypipes This is old news, but I definitely saw a way to get None there. The placement call fails, but report client uses raise_exc=False so the response just comes back, and the caller is doing soft gets everywhere, so populates the inventory with {} and no generation. That percolates down to the code in question. | |
| 19:34:50 | melwitt | oh, oops. local conductor on API | |
| 19:39:08 | dansmith | yeah: https://github.com/openstack/nova/blob/juno-eol/nova/cmd/compute.py#L65 | |
| 19:39:15 | dansmith | no such line there for api, which means it ignores the local conductor flag | |
| 19:39:44 | dansmith | also, github groaned at me when I selected the juno-eol tag | |
| 19:39:50 | dansmith | so penick_ owes me a beverage | |
| 19:39:58 | penick_ | melwitt: this particular cluster is about 1500 nodes. But I think I found the issue. They had the hypervisors set to use the conductor service, but the API was still configured to use local conductor. Which i'm pretty sure will never work. I had them fix it and so far it appears things are working. They'll do some more tests and get back to me | |
| 19:40:02 | penick_ | dansmith sorry about that | |
| 19:40:34 | dansmith | heh | |
| 19:41:05 | melwitt | penick_: yeah, as dansmith said, that shouldn't matter. the nova/cmd/api.py doesn't consider the local conductor conf setting | |
| 19:41:08 | dansmith | actually I'm pretty sure penick_ has bought me beverages before | |
| 19:41:17 | dansmith | so I'm probably in beverage debt | |
| 19:41:23 | melwitt | penick_: and that API is supposed to access the database directly anyhow | |
| 19:41:33 | melwitt | (it does so automatically) | |