Open
Description
Version
v14.18.1, v15.14.0, v16.11.1, v17.0.0-pre (as of 16 Oct `21)
Platform
Linux marcus 5.13.19-200.fc34.x86_64 #1 SMP Sat Sep 18 16:32:24 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Subsystem
worker_threads
What steps will reproduce the bug?
Repository with example: https://github.com/tshemsedinov/wtu
How often does it reproduce? Is there a required condition?
If worker event loop is empty in delta calculation period.
What is the expected behavior?
Delta fields active
and utilization
are expected to be positive, utilization
expected to be [0..1]
.
What do you see instead?
Negative values in ~50% cases. But if you add setInterval
with empty handler for minimum eventloop load, utilization will be always between 0 and 1.
Additional information
I know that it is a stable API but it would be better in far future:
- I'd propose to reduce time between
loopIdleTime()
call andnow()
in lower level, but my experiments in this field is not successful, still getting negative utilization. - To decompose this function to respect separation of concerns into
performance.eventLoopUsage(): EventLoopUsage
andperformance.eventLoopUtilization(usage1, usage2): EventLoopUtilization
. - Now we have 6 places to calculate proportion (for utilization), 3 in
internal/worker.js
and 3 ininternal/perf/event_loop_utilization.js
.
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
tshemsedinov commentedon Oct 19, 2021
Refs: #35664
Refs: #37134
FYI: @trevnorris and @addaleax
trevnorris commentedon Oct 26, 2021
Thanks. I'll give it a look.