Closed FreddieAkeroyd closed 3 months ago
It is clearly the heaviest process as per the snap of the task manager - with very high page fault numbers
Elevated CPU use is currently being seen on ZOOM - investigated non-invasively via VisualVM sampler.
PVMgr worker
threadpool
num_cores - 1
threadscores - 1
threads each using (100/(cores-1))
% CPU - which adds up to looking like 1 thread's worth of usage.ActiveScanDecoupler
from diirt
. The tasks themselves are very small amounts of work, but each ActiveScanDecoupler
schedules a recurring job with a very short delay onto the threadpool.ActiveScanDecoupler
objects are leaked when opening some OPIs, e.g. jaws and motors.
ActiveScanDecoupler
, or maybe one for IBEX GUI PVs and one other for CS-Studio PVs (e.g. OPIs). However there should not be a large/unbounded number of these objects, as each of these object schedules a recurring task on the PVMgr worker
threadpool.ActiveScanDecouplers
on opening OPIs (e.g. jaws.opi
)
ActiveScanDecoupler
does not increase after opening and then closing a representative selection of OPIs.\\isis\shares\ISIS_Experiment_Controls\data for tickets\Ticket8278
leak_minimal.opi
leaks a single object at a timeleak_1000.opi
is 1000 copies of the action button in leak_minimal.opi
, which leaks 1000 objects at a time=1
- not yet sure what this was meant to do...PRs:
Somewhat fiddly. Check that my explanations above make sense. If you want evidence that this actually fixes the problem as currently being seen on ZOOM, follow the following instructions. Note that you will need to leak a lot (~250k?) of objects on a dev machine to see the constant CPU load as per ZOOM, so I recommend following these instructions to see the problem "at source" instead, and check that you think my interpretation of the problem makes sense:
[native]
(which is native code - e.g. a lot of locks, I/O etc which will be reported by VVM as taking a lot of time but not really contributing to CPU use)siftDown
should not appear near the top of CPU usage statsActiveScanDecoupler
ActiveScanHandler
objects should be reported, e.g. <10 (if the view now displays as empty, that means 0 ActiveScanHandlers
are present, this is also fine)leak_1000.opi
from \\isis\shares\ISIS_Experiment_Controls\data for tickets\Ticket8278
over one of your local OPIsleak_1000.opi
ActiveScanHandler
objects are now activesiftDown
is not present in "hot" methods by self time in cpu samplerActiveScanHandler
objects are reported in memory samplersiftDown
is present in "hot" methods by self time in cpu sampler, and is using significant CPU "self" timeActiveScanHandler
objects are reported in memory samplerleak_1000.opi
, do a global find-and-replace from >=1
to >loc://$(DID)_CONST_1(1)
master
branchActiveScanHandler
objects are no longer leaked using memory samplersiftDown
no longer appears as a "hot" method by self time after opening and closing leak_1000.opi
a bunch of times in a fresh client.=N
triggers to loc://
-prefixed PVs initialised to the same values
According to nagios, on NDXIMAT
which means
ibex-client.exe
is using nearly 2 cores worth of cpuIt should be possible to connect via the ssh java debugging port to investigate
acceptance criteria