git://git.onelab.eu
/
mom.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* bwlimit.set() expects bits/s. Was giving it bytes/s.
[mom.git]
/
bwmon.py
diff --git
a/bwmon.py
b/bwmon.py
index
ce64322
..
0af380d
100755
(executable)
--- a/
bwmon.py
+++ b/
bwmon.py
@@
-15,7
+15,7
@@
# Faiyaz Ahmed <faiyaza@cs.princeton.edu>
# Copyright (C) 2004-2006 The Trustees of Princeton University
#
# Faiyaz Ahmed <faiyaza@cs.princeton.edu>
# Copyright (C) 2004-2006 The Trustees of Princeton University
#
-# $Id: bwmon.py,v 1.1
5 2006/12/13 21:39:2
3 faiyaza Exp $
+# $Id: bwmon.py,v 1.1
9 2007/01/08 21:58:1
3 faiyaza Exp $
#
import syslog
#
import syslog
@@
-74,11
+74,11
@@
The slice %(slice)s has transmitted more than %(bytes)s from
%(hostname)s to %(class)s destinations
since %(since)s.
%(hostname)s to %(class)s destinations
since %(since)s.
-Its maximum %(class)s burst rate will be capped at %(new_maxrate)s
+Its maximum %(class)s burst rate will be capped at %(new_maxrate)s
/s
until %(until)s.
Please reduce the average %(class)s transmission rate
until %(until)s.
Please reduce the average %(class)s transmission rate
-of the slice %(limit)s per %(period)s.
+of the slice
to
%(limit)s per %(period)s.
""".lstrip()
""".lstrip()
@@
-160,11
+160,11
@@
class Slice:
# If/when PLC switches to byte limits, the avgrates wont be used as
# slice attributes and will return as 0
if (avgrate != 0):
# If/when PLC switches to byte limits, the avgrates wont be used as
# slice attributes and will return as 0
if (avgrate != 0):
- self.ByteMax =
avgrate * period
+ self.ByteMax =
int(avgrate * period / 8)
self.ByteThresh = int(self.ByteMax * .8)
if (avgexemptrate != 0):
self.ByteThresh = int(self.ByteMax * .8)
if (avgexemptrate != 0):
- self.ExemptByteMax =
avgexemptrate * period
+ self.ExemptByteMax =
int(avgexemptrate * period / 8)
self.ExemptByteThresh = int(self.ExemptByteMax * .8)
except Exception, err:
self.ExemptByteThresh = int(self.ExemptByteMax * .8)
except Exception, err:
@@
-205,13
+205,6
@@
class Slice:
# Query Node Manager for max rate overrides
self.updateSliceAttributes()
# Query Node Manager for max rate overrides
self.updateSliceAttributes()
- if verbose:
- print("\n%s slice attributes "\
- "maxrate %s, maxexemptrate %s" % \
- (self.name,
- bwlimit.format_tc_rate(maxrate),
- bwlimit.format_tc_rate(maxexemptrate)))
-
# Prepare message parameters from the template
message = ""
params = {'slice': self.name, 'hostname': socket.gethostname(),
# Prepare message parameters from the template
message = ""
params = {'slice': self.name, 'hostname': socket.gethostname(),
@@
-222,7
+215,7
@@
class Slice:
if bytes >= (self.bytes + self.ByteThresh):
new_maxrate = \
if bytes >= (self.bytes + self.ByteThresh):
new_maxrate = \
- int((
self.ByteMax - self.bytes + bytes)/(period - time.time() - self.time
))
+ int((
(self.ByteMax - (bytes - self.bytes)) * 8)/(period - int(time.time() - self.time)
))
if new_maxrate < default_MinRate:
new_maxrate = default_MinRate
else:
if new_maxrate < default_MinRate:
new_maxrate = default_MinRate
else:
@@
-237,17
+230,17
@@
class Slice:
if verbose:
print "%(slice)s %(class)s " \
if verbose:
print "%(slice)s %(class)s " \
- "%(bytes)s of %(limit)s (%(new_maxrate)s maxrate)" % \
+ "%(bytes)s of %(limit)s (%(new_maxrate)s
/s
maxrate)" % \
params
# Cap low bandwidth burst rate
if new_maxrate != maxrate:
message += template % params
params
# Cap low bandwidth burst rate
if new_maxrate != maxrate:
message += template % params
- print "%(slice)s %(class)s capped at %(new_maxrate)s " % params
+ print "%(slice)s %(class)s capped at %(new_maxrate)s
/s
" % params
if exemptbytes >= (self.exemptbytes + self.ExemptByteThresh):
new_maxexemptrate = \
if exemptbytes >= (self.exemptbytes + self.ExemptByteThresh):
new_maxexemptrate = \
- int((
self.ExemptByteMax - (self.bytes + bytes))/(period -
(time.time() - self.time)))
+ int((
(self.ExemptByteMax - (self.bytes - bytes)) * 8)/(period - int
(time.time() - self.time)))
if new_maxexemptrate < default_MinRate:
new_maxexemptrate = default_MinRate
else:
if new_maxexemptrate < default_MinRate:
new_maxexemptrate = default_MinRate
else:
@@
-262,12
+255,12
@@
class Slice:
if verbose:
print "%(slice)s %(class)s " \
if verbose:
print "%(slice)s %(class)s " \
- "%(bytes)s of %(limit)s (%(new_maxrate)s maxrate)" % params
+ "%(bytes)s of %(limit)s (%(new_maxrate)s
/s
maxrate)" % params
# Cap high bandwidth burst rate
if new_maxexemptrate != maxexemptrate:
message += template % params
# Cap high bandwidth burst rate
if new_maxexemptrate != maxexemptrate:
message += template % params
- print "%(slice)s %(class)s capped at %(new_maxexemptrate)s" % params
+ print "%(slice)s %(class)s capped at %(new_maxexemptrate)s
/s
" % params
# Apply parameters
if new_maxrate != maxrate or new_maxexemptrate != maxexemptrate:
# Apply parameters
if new_maxrate != maxrate or new_maxexemptrate != maxexemptrate:
@@
-343,11
+336,11
@@
def main():
(version, slices) = pickle.load(f)
f.close()
# Check version of data file
(version, slices) = pickle.load(f)
f.close()
# Check version of data file
- if version != "$Id: bwmon.py,v 1.1
5 2006/12/13 21:39:2
3 faiyaza Exp $":
+ if version != "$Id: bwmon.py,v 1.1
9 2007/01/08 21:58:1
3 faiyaza Exp $":
print "Not using old version '%s' data file %s" % (version, datafile)
raise Exception
except Exception:
print "Not using old version '%s' data file %s" % (version, datafile)
raise Exception
except Exception:
- version = "$Id: bwmon.py,v 1.1
5 2006/12/13 21:39:2
3 faiyaza Exp $"
+ version = "$Id: bwmon.py,v 1.1
9 2007/01/08 21:58:1
3 faiyaza Exp $"
slices = {}
# Get special slice IDs
slices = {}
# Get special slice IDs