Monday, 2021-12-13

*** jpena|off is now known as jpena11:27
infernixralonsoh ping?11:36
infernixthis is your proposal, correct? https://review.opendev.org/c/openstack/neutron/+/79006011:38
ralonsohinfernix, it is, yes11:38
infernixthe delete is causing lock waits11:39
infernixis there another approach here? could one do a SELECT and only execute the DELETE if > 0 rows?11:40
ralonsohinfernix, when you have reservations from other executions11:40
ralonsohthe reservations table should be almost empty11:40
ralonsohand the reservation context is fast enough to no collide with other request11:40
infernixwel, in our case it is not11:41
ralonsohhow many reservations do you have ?11:41
ralonsohhow many registers in this table?11:41
infernixi'm watching mysql processlist and it's been full of deletions for the last half hour orso11:41
ralonsohthat's ok11:41
infernixwe get 500 concurrent instance creation requests and everything locks up because of these because they all get stuck in LOCK WAIT11:42
ralonsohevery time you request a new resource11:42
infernixlet me bpaste you something11:42
ralonsohyou create a reservation11:42
ralonsohthen you create the resource11:42
ralonsohand then you delete the reservation11:42
infernixhttps://pastebin.com/11:43
infernixugh11:44
infernixtoo big. hold on11:44
infernixhttps://spirit.infernix.net/dbnolock_reservations_delete_locking.txt11:45
infernixso what I think happens here is that there are too many concurrent DELETEs because of the large concurrent instance creation load, that they all pile up, get stuck in LOCK WAIT, and timeout after 50s, after which they are retried11:46
infernixand this takes many minutes to a few hours to churn through11:46
ralonsohinfernix, how many reservation registers do you have>11:46
ralonsoh?11:46
infernixi'm not exactly sure what you mean11:47
ralonsohIn the table neutron.reservations11:47
ralonsohhow many registers do you have?11:47
infernix5211:47
ralonsohstable number?11:48
infernixyep11:48
ralonsohyou should have none11:48
ralonsohdelete all of them11:48
infernixsome of them are old, and some of them are from today11:48
infernixis it really safe to just truncate this table?11:49
infernixactually number goes down slowly11:50
ralonsohthe worst thing that will happen is that you will exceed some project quota11:50
ralonsohin some resource11:50
ralonsohanother question11:50
ralonsohis quota mandatory now for you?11:50
infernixbut that doesn't change the lock contention issue. we had the same problem on the old driver11:50
infernixwe are considering not using quotas, but that would be for all of neutron. and we'd like to keep quotas for FIP etc11:51
infernixports i can care less about11:51
ralonsohso disable the quotas for now11:51
ralonsohsetting -1 in those resources11:51
infernixwouldn't it be better to set track_quota_usage = false?11:53
infernix1248 rows now. so it goes up and down. lots of ipamallocation inserts at the moment11:55
infernixbut to me, if i look at that innodb output, there are a way too many concurrent DELETEs11:56
infernixand they're all waiting on eachother. so it doesn't look like the new nolock driver achieves higher performance11:57
ralonsohinfernix, that won't stop calling the quota engine11:57
infernixok. let me see what happens with as many quotas set to -1 as we can manage11:58
opendevreviewMerged openstack/governance master: Updating the Yoga testing runtime  https://review.opendev.org/c/openstack/governance/+/82019515:37
*** mchlumsky2 is now known as mchlumsky16:41
*** jpena is now known as jpena|off17:50
*** sshnaidm is now known as sshnaidm|afk19:06

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!