Add Memory Monitoring feature for serial steps to PerfMonMT as part of GSoC work
This MR adds memory monitoring feature to the new, thread-safe performance monitoring service(PerfMonMTSvc) which was only capable of CPU & Wall time monitoring. In the context of memory monitoring, we measure Virtual Memory Size
, Resident Set Size(Rss)
, Proportional Set Size(Pss)
and Swap Size
for serial steps of the job.
These statistics are gathered from /proc/[pid]/smaps
directory for each component.
For a better understanding, here is a snippet of the output regarding the memory monitoring:
PerfMonMTSvc INFO =======================================================================================
PerfMonMTSvc INFO Memory Monitoring
PerfMonMTSvc INFO (Serial Steps)
PerfMonMTSvc INFO Units: kB
PerfMonMTSvc INFO =======================================================================================
PerfMonMTSvc INFO Step Vmem Rss Pss Swap Component
PerfMonMTSvc INFO Initialize 42756 43520 43419 0 GeoModelSvc
PerfMonMTSvc INFO Initialize 38100 30404 30385 0 AthMasterSeq
PerfMonMTSvc INFO Initialize 38100 30392 30373 0 AthAlgEvtSeq
PerfMonMTSvc INFO Initialize 38100 30304 30285 0 AthAllAlgSeq
PerfMonMTSvc INFO Initialize 28940 22012 21993 0 AthAlgSeq
PerfMonMTSvc INFO Initialize 21812 16820 16801 0 InDetSiSpTrackFinder
PerfMonMTSvc INFO Initialize 18904 14728 14718 0 InDetSiSpTrackFinder.InDetSiTrackMaker
PerfMonMTSvc INFO ...
PerfMonMTSvc INFO =======================================================================================
PerfMonMTSvc INFO Start 0 92 92 0 AlgResourcePool
PerfMonMTSvc INFO Start 0 64 63 0 TagInfoMgr
PerfMonMTSvc INFO Start 0 44 44 0 CondInputLoader
PerfMonMTSvc INFO Start 0 44 43 0 PoolSvc
PerfMonMTSvc INFO Start 0 40 40 0 ToolSvc
PerfMonMTSvc INFO Start 0 36 36 0 EventSelector
PerfMonMTSvc INFO ...
PerfMonMTSvc INFO =======================================================================================
PerfMonMTSvc INFO Stop 0 12 12 0 AlgResourcePool
PerfMonMTSvc INFO Stop 0 4 4 0 ToolSvc
PerfMonMTSvc INFO Stop 0 0 1 0 InDetGeometryDBSvc
PerfMonMTSvc INFO Stop 0 0 1 0 ClassIDSvc
PerfMonMTSvc INFO Stop 0 0 1 0 ToolSvc.InDetPatternPropagator
PerfMonMTSvc INFO ...
PerfMonMTSvc INFO =======================================================================================
PerfMonMTSvc INFO Finalize 0 248 249 0 ConditionStore
PerfMonMTSvc INFO Finalize 0 228 228 0 DetectorStore
PerfMonMTSvc INFO Finalize 0 132 132 0 AthMasterSeq
PerfMonMTSvc INFO Finalize 0 128 128 0 AthAlgEvtSeq
PerfMonMTSvc INFO Finalize 0 128 128 0 AthAllAlgSeq
PerfMonMTSvc INFO Finalize 0 112 112 0 DetDescrCnvSvc
PerfMonMTSvc INFO Finalize 0 88 88 0 AthenaPoolCnvSvc
PerfMonMTSvc INFO ...
PerfMonMTSvc INFO =======================================================================================
PerfMonMTSvc INFO preLoadProxy 0 8 8 0 UpdateAddr::MATERIALS
PerfMonMTSvc INFO preLoadProxy 0 8 8 0 UpdateAddr::Pixel
PerfMonMTSvc INFO preLoadProxy 0 8 8 0 UpdateAddr::SCT
PerfMonMTSvc INFO preLoadProxy 0 0 0 0 UpdateAddr::/GLOBAL/BField/Maps
PerfMonMTSvc INFO preLoadProxy 0 0 0 0 UpdateAddr::/Indet/Align
PerfMonMTSvc INFO ...