ATLAS Offline Software
|
This package holds the Gaudi components used to achieve Performance Monitoring of Athena jobs. It ships the concrete implementations of interfaces exported from the PerfMonKernel package.
The PerfMonComps package contains the following classes:
ToolHandleArray
). This is performed at each step of the Gaudi finite state machine (initialize/execute/finalize) by means of registering callback functions via the IIncidentSvc::handle
method, dispatching to the relevant monitoring method. This service is also responsible for calling the serialization to disk of the performance monitoring data. It does so by delagating to the PerfMon::TupleSvc
. The PerfMonSvc
is configured through a handwritten python::Configurable::ConfigurableService
python class.ITHistSvc
to do so, thus any class for which a Reflex
dictionary exists should be correctly handled.IChronoStatSvc
to retrieve user/sys/real CPU timing measurements on a per algorithm basis (all of them or the ones registered through a jobOptions property) and on a 'per-slice' basis (ie: the initialize
slice, the execute
slice, ...). It uses the PerfMon::CpuHdr
and PerfMon::CpuData
classes to store this monitoring data.IChronoStatSvc
to retrieve user/sys/real CPU timing measurements on a per converter and container basis (reading and writing). It also monitors the overall AthenaPoolCnvSvc::commitOutput
time (the time to write on disk the whole event). Note that it relies on a well configured AthenaPoolCnvSvc
, that is, a service being configured to audit the T/P converters (this should be automatically taken care of during the configuration of PerfMonSvc
). It uses the PerfMon::IoHdr
and PerfMon::IoData
classes to store this monitoring data.IChronoStatSvc
to retrieve virtual memory and resident set size usage before and after calling a given algorithm method (initialize/execute/finalize). Note that it can be very easily fooled by the StoreGateSvc
memory management. It uses the PerfMon::MemHdr
and PerfMon::MemData
classes to store this monitoring data.ApplicationManager
. It is the C++ cousin of checkFile.py. It uses the PerfMon::PersHdr
class to store this monitoring data.IChronoStatSvc
with memory informations. This auditor open ups the /proc/[pid]/statm file to get vmem and RSS informations.PerfMon::CallGraphBuilderSvc
when (new) nodes of the callgraph structure should be added/updated. Not yet in production.