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/self/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 ...