Bug #78857 every 5s (Accurate) Notifier cpu usage
Submitted: 16 Oct 2015 9:07 Modified: 22 Dec 2015 12:38
Reporter: JP ToKyo Email Updates:
Status: Can't repeat Impact on me:
Category:MySQL for Windows: MySQL Notifier Severity:S3 (Non-critical)
Version:Community 64x 5.6.27-log OS:Windows (windows10 10240 x64 CHT-HK)
Assigned to: CPU Architecture:Any

[16 Oct 2015 9:07] JP ToKyo
if ""MySQL Notifier 1.1.6"" is running
every 5s (Accurate) make System program "services.exe"
lead the "services.exe" CPU usage

eg. like this

1s. 0%
2s. 0%
3s. 0%
4s. 0%
5s. random 1%-13%
and loop 5s again

ProcessExplorer view the "services.exe"
It is "!RtlUserThreadStart" lead

i do not know Whether there a relationship "Notifier"
but if close "Notifier" will Solve the Issue

How to repeat:
open "Notifier" = have
close "Notifier" = not have
[16 Oct 2015 15:46] MySQL Verification Team
Please enter check Notifier->Actions->Options uncheck the 2 Notification Options. Thanks.
[17 Oct 2015 2:07] JP ToKyo
not work~ still have cpu usage @ running "Notifier"
[22 Dec 2015 12:38] Chiranjeevi Battula
Hello  JP ToKyo,

Thank you for your feedback.
I could not see any issue after uncheck the "Notification Options"  and CPU usage working as normal.

[28 Jun 2016 15:15] Godric Kwok
I can repeat it, with a video capture too. It's too clear to ignore this "polling" bug/incompatibility with either Windows 10 or Windows in general.

From my video (~2:45) you can see 3 stages:

1) before the notifier is started, represented by the CPU history from Process Explorer.
2) while the notifier is running, you can clear see the 5s spikes, even it's on top of my video-recording program's baseline CPU usage.
3) Then around 1:40 you see me quitting the notifier, then the 5s-spikes pattern is immediately gone.

An important note on why I guess it's a "polling" incompatibility:
1) 5 seconds interval, clearly.
2) services.exe got "triggered" every 5s.
3) whenever it's triggered, all subordinate exes under services.exe "flash" at the same time, each of these uses a tiny bit of cpu, but together they amount to 10-30% of cpu.

I must push/re-open this issue again with the higher priority it deserves, because Notifier drains my laptop's battery. I want to use it, but I couldn't, due to this trivial bug.

We'll be grateful if a volunteer or an Oracle engineering would look at this & fix it, and now please turn to my video attachment.
[28 Jun 2016 15:18] Godric Kwok
Clearly it spikes cpu every 5s, it polls services.exe & causes a frenzy on subordinate processes.

Attachment: mysql notifier clearly spikes cpu every 5s (small).mp4 (video/mp4, text), 2.46 MiB.

[28 Jun 2016 16:50] Godric Kwok
I'm a lowly programmer myself, so I try to comment from a programmer's standpoint instead of a lay-user.

I am sure (without research) that Windows' Services Architecture has some kind of "status event subscription" API. So if Notifier uses this event subscription API, it can avoid "polling every 5 seconds".

Everyone knows Polling/Pull on an interval wastes cpu/battery and Subscription/Push is the efficient way of achieving the same goal.

So, if this bug is trivial, please kindly help to fix it, because it'll do much good to us, your users. Some of us are enterprise users too you know, I once bought 1 year of MySQL Enterprise subscription for the company I work at, but later didn't renew it, because you know, it was just not that useful few years back then.

Thanks again and it's much appreciated.
[28 Jun 2016 16:54] Godric Kwok
I've also turned off the "notification" checkboxes, but if you want to see it in action again, I can capture video again no prob

Attachment: notification off.png (image/png, text), 54.29 KiB.

[6 Feb 2018 14:10] Martin Eyles
I have exactly the same symptoms as the previous two users.

Could one of the developers look into this?
[13 Mar 2018 1:27] Marc Durdin
I wrote up this issue in a blog post: https://marc.durdin.net/2018/03/the-case-of-the-overly-busy-process/

It's certainly making an impact to my machine and I think is worth investigating further. There's no reason for the MySQL Notifier to by querying the service database every 5 seconds like this.