serial message ack is slow
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Cloud Archive |
Fix Released
|
Medium
|
Unassigned | ||
Ocata |
Triaged
|
Medium
|
Unassigned | ||
Pike |
Triaged
|
Medium
|
Unassigned | ||
oslo.messaging |
Fix Released
|
Critical
|
Mehdi Abaakouk | ||
python-oslo.messaging (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Artful |
Triaged
|
Medium
|
Unassigned |
Bug Description
this confirms sileht's guess: http://
in ceilometer we use a single thread per listener. it seems there is significant time spent on ack'ing messages compared to everything else. i've made a hacky patch which adds logging[1]: http://
example of slow ack'ing can be found here:
Nov 27 23:23:19.309865 ubuntu-
Nov 27 23:23:19.321231 ubuntu-
Nov 27 23:23:20.892141 ubuntu-
Nov 27 23:23:20.892809 ubuntu-
Nov 27 23:23:20.893475 ubuntu-
Nov 27 23:23:24.315239 ubuntu-
Nov 27 23:23:29.319132 ubuntu-
Nov 27 23:23:30.296866 ubuntu-
in the above you can see the single process (16681) where "1c152eebf46443
- "WHHHHHHAT" logs when a batch of messages is fetched and queued.
- "OKKKKKKK" logs when batch is picked up to be processed (by the single listener thread).
- "DOOOOOOOONNNNNEE" logs when batch is handled by all endpoints (~1.5s)
- "FIIIIIIIIIINALLY" logs when all messages in batch have been acknowledged (~10s)
there is no reason for it to take 10s to ack 35 messages in this case when it takes ~1.5s to do the real work of processing the messages.
Changed in oslo.messaging: | |
importance: | Undecided → Critical |
Changed in python-oslo.messaging (Ubuntu): | |
status: | Confirmed → Fix Released |
Changed in python-oslo.messaging (Ubuntu Artful): | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in cloud-archive: | |
status: | New → Fix Released |
importance: | Undecided → Medium |
Changed in python-oslo.messaging (Ubuntu): | |
importance: | Undecided → Medium |
Whatever the root cause is, oslo_messaging 5.17.1 doesn't have this issue.