| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-09-10 | |||
| 19:38:50 | dansmith | before this, we'd limit you to at least your vcpu quopta | |
| 19:38:53 | dansmith | after this, no limits AFAICT | |
| 19:39:18 | sean-k-mooney | we should still be limiting on flavor.vcpu | |
| 19:39:18 | dansmith | honestly, I'm not sure how you're going to fix it so it works the same with placement quotas and nova quotas | |
| 19:39:29 | dansmith | not with placement | |
| 19:39:32 | dansmith | did you read the comments? | |
| 19:39:47 | sean-k-mooney | im trying to find which patch you put it on | |
| 19:39:57 | mriedem | (2:36:21 PM) mriedem: this quota issue https://review.opendev.org/#/c/674895/32/nova/virt/libvirt/driver.py@7457 | |
| 19:40:00 | sean-k-mooney | oh but i think i know what your saying | |
| 19:40:17 | sean-k-mooney | we have the option to track cpu quota in placmenet already | |
| 19:40:33 | mriedem | by default we don't use placement for quota usage counting | |
| 19:40:34 | sean-k-mooney | we enabled it by default stien right | |
| 19:40:40 | mriedem | f naw | |
| 19:40:46 | mriedem | where is melwitt | |
| 19:40:46 | sean-k-mooney | oh we dont | |
| 19:40:53 | dansmith | we should be in train I think right? | |
| 19:40:56 | dansmith | meaning, | |
| 19:41:00 | dansmith | we should be turning that on but have't | |
| 19:41:02 | melwitt | mriedem: hiding | |
| 19:41:21 | sean-k-mooney | dansmith: so if we turn that on then yes we have a proablem | |
| 19:41:26 | sean-k-mooney | if we dont we should not | |
| 19:41:30 | dansmith | no | |
| 19:41:36 | dansmith | we have a problem because people could have that on | |
| 19:41:43 | dansmith | you know config knobs can be set to not the default right? :) | |
| 19:41:43 | sean-k-mooney | ture | |
| 19:41:45 | mriedem | cern uses it | |
| 19:43:24 | sean-k-mooney | ok i see the problem. i was aware that was a thing but ya i had not consiered the impact to this | |
| 19:43:37 | mriedem | quota is generally the last thing anyone thinks about | |
| 19:44:30 | dansmith | if CPUs weren't the most expensive and constrained resource in the cloud, then maybe less of an issue, but.... :D | |
| 19:45:01 | mriedem | [quota]/injected_file_content_bytes is a major concern of mine | |
| 19:45:38 | sean-k-mooney | im not sure if sarcasim or if i shoudl feel realy bad for you | |
| 19:45:46 | mriedem | heh, sarcasm | |
| 19:46:41 | sean-k-mooney | dansmith: i always ran out of ram first but ya. i think the only thing we coudl do woudl be to could both inventories. at least short term | |
| 19:47:03 | sean-k-mooney | wehere does that code live | |
| 19:47:12 | sean-k-mooney | e.g. where we check the quota | |
| 19:47:14 | melwitt | enforcing quota on other resource classes (DISK_GB and more) is part of the proposal in the unified limits spec, as I think sean-k-mooney mentioned earlier | |
| 19:48:17 | dansmith | melwitt: right, but this set is taking dedicated cpus out of the equation for the cpus quota, | |
| 19:48:29 | melwitt | sean-k-mooney: nova/quota.py is the main file | |
| 19:48:29 | dansmith | effectively making them unconstrained (and unconstrainable) | |
| 19:48:35 | dansmith | but they're the most expensive things | |
| 19:48:37 | mriedem | sean-k-mooney: start here https://github.com/openstack/nova/blob/f4ca3e70852c0a7ed7904a9f2d7177c9118d3d1c/nova/quota.py#L1281 | |
| 19:48:38 | sean-k-mooney | melwitt: thanks | |
| 19:49:09 | dansmith | and combining them together as a hack is pretty dumb, because the whole point of this effort is to make dedicated cpus be first class citizens instead of a hack | |
| 19:49:35 | dansmith | the other problem is, | |
| 19:50:01 | dansmith | we wouldn't want the quota behavior to be different depending on whether or not you're using placement for quota | |
| 19:50:02 | melwitt | dansmith: yeah, sorry, was trying to say that if enforcing quota for PCPU resource class is what's needed then that's a big amount of work | |
| 19:50:07 | dansmith | somewhat unrelated, | |
| 19:50:16 | dansmith | melwitt: were't we going to enable quota in placement by default soon? | |
| 19:50:30 | sean-k-mooney | dansmith: well if combined them together ti woudl be maintained previous behavior | |
| 19:50:31 | dansmith | melwitt: yep, and I'm saying that's the right solution | |
| 19:50:49 | dansmith | sean-k-mooney: the point of this work is to make pcpus not work like vcpus right? :) | |
| 19:51:07 | melwitt | dansmith: I don't remember a specific timeline, just that we wanted to let it bake with cern for awhile before making it default | |
| 19:51:09 | mriedem | idk that counting PCPU for cores quota from placement is that hard, you'd just sum VCPU and PCPU here wouldn't you? https://github.com/openstack/nova/blob/f4ca3e70852c0a7ed7904a9f2d7177c9118d3d1c/nova/scheduler/client/report.py#L2344 | |
| 19:51:13 | sean-k-mooney | and the two main goals of this work was co existing of pinned and floating vms on the same host and removeing the race on claiming pinned cpus | |
| 19:51:15 | mriedem | and here https://github.com/openstack/nova/blob/f4ca3e70852c0a7ed7904a9f2d7177c9118d3d1c/nova/scheduler/client/report.py#L2356 | |
| 19:51:19 | dansmith | melwitt: ack | |
| 19:51:28 | sean-k-mooney | dansmith: not direclty that is a sideffect | |
| 19:51:31 | dansmith | mriedem: if you combine them yes | |
| 19:52:08 | dansmith | mriedem: that's a hack to make it work, not the right solution | |
| 19:52:12 | mriedem | i know we dont want to combine them externally, but the non-placement counting method is going to be based on instances.vcpus which comes from the embedded instance.flavor.vcpus | |
| 19:52:17 | sean-k-mooney | dansmith: the follow up spec that wants to have a vm with some pinned cores and some floating cores need them to be different thigns | |
| 19:52:35 | dansmith | mriedem: right but we should be moving to placement quotas anyway | |
| 19:53:11 | dansmith | sean-k-mooney: AFAIK, this work is aimed at making pcpus not just a per-host special case of pretending that they're like vcpus | |
| 19:53:23 | dansmith | sean-k-mooney: so, yeah, obviously separate quotas is not the goal of this, | |
| 19:53:32 | dansmith | but all of this is important to get right | |
| 19:53:38 | sean-k-mooney | yes | |
| 19:53:45 | sean-k-mooney | im not disputing that at all | |
| 19:53:50 | dansmith | otherwise people really need to segregate these hosts still, which means the rest of it doesn't get us anything | |
| 19:54:16 | sean-k-mooney | im not sure i agree on the last point but im not going to rathole on it either | |
| 19:54:35 | sean-k-mooney | i think this will change in U again with unified limits | |
| 19:54:53 | sean-k-mooney | so i would prefer to groub them in Train to keep the pretrain behavior | |
| 19:54:59 | sean-k-mooney | and then only change the behavior once | |
| 19:55:10 | sean-k-mooney | in U when everything goes to unifed limits | |
| 19:55:15 | dansmith | lol | |
| 19:55:16 | dansmith | riiiight | |
| 19:55:36 | mriedem | i want to say making count_usage_from_placement=True by default was dependent on consumer types to smooth out some of the inconsistencies with the legacy counting method today in edge cases | |
| 19:55:40 | mriedem | like during a resize | |
| 19:55:40 | sean-k-mooney | the lol being ever getting to unifed limits | |
| 19:56:06 | melwitt | unified limits is going to go through the same bake time that counting usage from placement is. it will begin defaulted to False | |
| 19:56:09 | dansmith | mriedem: I didn't think that's why we didn't make it default, because we'd still do the other thing for the non-placement-able resources | |
| 19:56:28 | dansmith | sean-k-mooney: I'm saying don't count your eggs before they hatch | |
| 19:56:34 | sean-k-mooney | ok | |
| 19:56:37 | dansmith | unified limits has been a long time coming, so.. | |
| 19:57:25 | sean-k-mooney | ya i know. so are you opposed to internally in nova combining them for Train | |
| 19:57:31 | mriedem | dansmith: without digging up old review comments and ML thread conversations, i want to say my recollection was (1) counting usage from placement has at least 3 differences in behavior from legacy counting - which are documenting in the config option help text and (2) the main benefit is for multi-cell deployments, of which there are few, | |
| 19:57:39 | mriedem | and (3) it landed late in stein, | |
| 19:57:44 | sean-k-mooney | when counting using placment | |
| 19:57:56 | mriedem | so to reduce the risk on non-multi-cell deployments with the behavior change, default to legacy counting | |
| 19:58:07 | mriedem | melwitt: ^ is that what you remember? | |
| 19:58:22 | melwitt | it landed early in train, the data migration landed late in stein | |
| 19:58:32 | dansmith | oh, I thought it was stein | |
| 19:58:37 | mriedem | i thought it was stein too... | |
| 19:58:38 | dansmith | in that case, can't default it in train | |
| 19:59:02 | mriedem | https://review.opendev.org/#/c/638073/ it was train | |
| 19:59:04 | mriedem | time flies | |
| 19:59:19 | sean-k-mooney | well if we cant default it in train then we still need to supprot it in train with pcpu in plamcent right | |
| 19:59:39 | melwitt | mriedem: but yeah I think the combo of all those reasons were why we default to false | |
| 20:00:40 | melwitt | big delta from legacy counting and only multi-cell ppl likely to "need" it (for the down cell resilience). so we chose not to impose the big delta in behavior on the majority who don't need down cell resilience | |
| 20:01:08 | sean-k-mooney | so do we just want to add another line here https://github.com/openstack/nova/blob/f4ca3e70852c0a7ed7904a9f2d7177c9118d3d1c/nova/scheduler/client/report.py#L2356 to make it work by combining them? | |
| 20:01:22 | sean-k-mooney | *them being PCPUs | |