Bug #115860 CPU IDLE consumption regression introduced in 8.0.30
Submitted: 19 Aug 2024 11:03 Modified: 19 Aug 2024 13:17
Reporter: Volodymyr Zol Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S5 (Performance)
Version:8.0.37 OS:Linux
Assigned to: CPU Architecture:x86
Tags: idle

[19 Aug 2024 11:03] Volodymyr Zol
Description:
MySQL server has been continuously consuming CPU while idle since version 8.0.30. In this version, the log_files_governor function was introduced, which performs tasks with a 10ms(!) sleep interval.

This seems excessive:

os_event_wait_time_low(log.m_files_governor_event,
                       std::chrono::milliseconds{10}, sig_count);

During some code research, I found several threads using os_event_wait_for with dynamically changing timeouts per cycle. Was this 10ms fixed interval intentional? Could it be made less frequent?

How to repeat:
Install version 8.0.30+ and watch CPU consumption
[19 Aug 2024 12:05] MySQL Verification Team
Hi MR. Zol,

Thank you for your bug report.

However, we can not repeat it.

Please, do notice that this is only a forum for bug reports with fully repeatable test cases. Each of these test cases should consist of a set of SQL statements , which when run, always leads to the condition described.

When we receive such a test case, we try to repeat it with the our latest production binary and if we manage to repeat it, we then examine whether it is a bug or not.

We have not received such a test case from you.

Can't repeat.
[19 Aug 2024 13:17] Volodymyr Zol
You can compare CPU time consumption while idle between 8.0.26 and 8.0.30. We're not talking about 100% CPU consumption, it's still quite small, around 0.7-1% spikes. However, this is roughly twice as much as it was before version 8.0.30
[19 Aug 2024 13:36] MySQL Verification Team
Hi,

This is only a forum for bug reports with fully repeatable test cases. Each of these test cases should consist of a set of SQL statements , which when run, always leads to the condition described.

When we receive such a test case, we try to repeat it with the our latest production binary and if we manage to repeat it, we then examine whether it is a bug or not.

We have not received such a test case from you.
[20 Aug 2024 8:26] Jakub Lopuszanski
a flamegraph of an idle mysqld on tetra02

Attachment: v.idle.svg (image/svg+xml, text), 120.86 KiB.