ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
DataQuality
DataQualityUtils
python
DQProcMonitor.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2
3
#python 2.6 is buggy, it can't import modules in deamon threads one has to import them in to global
4
from
resource
import
getrusage, RUSAGE_SELF, RUSAGE_CHILDREN
5
from
time
import
sleep, time
6
7
PROCMONVERSION=
"$Id: DQProcMonitor.py 359096 2011-04-15 13:25:36Z kama $"
8
9
def
formatRusage
(rusage):
10
fieldnames=[
"utime"
,
"stime"
,
"maxrss"
,
"shrmem"
,
"ushrmem"
,
"ushrstk"
,
"minflt"
,
11
"majflt"
,
"nswap"
,
"inblock"
,
"oublock"
,
"msgsnd"
,
"msgrcv"
,
12
"nsignals"
,
"nvcontsw"
,
"nivcontsw"
]
13
return
", "
.join([
"="
.join([n,
"%s"
%v]
if
isinstance(v, int)
else
[n,
"%f"
%v])
for
n,v
in
zip(fieldnames,rusage)])
14
15
def
DQProcMon
(*args,**kwargs):
16
# from resource import getrusage, RUSAGE_SELF, RUSAGE_CHILDREN
17
# from pprint import pformat,pprint
18
# from time import sleep, time
19
pollPeriod = kwargs.pop(
"poll_period"
, 1.0)
20
if
pollPeriod < 0.25:
21
pollPeriod=0.25
#min poll time
22
filename = kwargs.pop(
"file_name"
,
"DQResourceUtilization.txt"
)
23
print
(
"Monitoring thread poll period="
,pollPeriod,
"seconds, output file name=\"%s\""
%filename)
24
with
open(filename,
'w'
)
as
resoutfile:
25
while
True
:
26
try
:
27
ru=getrusage(RUSAGE_SELF)
28
cru=getrusage(RUSAGE_CHILDREN)
29
except
Exception:
30
pass
31
#self_info="[utime=%f, stime=%f, maxrss=%s, minflt=%s, majflt=%s, nvcsw=%s, nivcsw=%s]" % (ru.ru_utime,
32
#ru.ru_stime, ru.ru_maxrss, ru.ru_minflt, ru.ru_majflt, ru.ru_)
33
resoutfile.write(str(time())+
" <self> "
+
formatRusage
(ru)+
" <children> "
+
formatRusage
(cru)+
"\n"
)
34
#pprint(rusage,resoutfile)
35
resoutfile.flush()
36
sleep(pollPeriod)
37
38
def
startProcMonThread
(pollPeriod=1,file_name="DQResourceUtilization.txt"):
39
from
threading
import
Thread
40
ResMon=Thread(target=DQProcMon,args=[],kwargs={
'poll_period'
:pollPeriod,
41
'file_name'
:file_name})
42
#ResMon.setDaemon(True)
43
ResMon.start()
44
print
(
"========Starting DQProcMonThread=============="
)
45
print
void print(char *figname, TCanvas *c1)
Definition
TRTCalib_StrawStatusPlots.cxx:26
python.DQProcMonitor.DQProcMon
DQProcMon(*args, **kwargs)
Definition
DQProcMonitor.py:15
python.DQProcMonitor.startProcMonThread
startProcMonThread(pollPeriod=1, file_name="DQResourceUtilization.txt")
Definition
DQProcMonitor.py:38
python.DQProcMonitor.formatRusage
formatRusage(rusage)
Definition
DQProcMonitor.py:9
Generated on
for ATLAS Offline Software by
1.17.0