X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=bwmon.py;h=69325c9faabd89e2c945e91ef3760ef6f63e2ecc;hb=375200a0bba41fa12edfd9296a0f2e42873710da;hp=38a70cc8717ba7ae0e4feed3f6b926ffdbfcde66;hpb=28843cfb70c54f24a08aa32495eac70964c8b1f0;p=nodemanager.git diff --git a/bwmon.py b/bwmon.py index 38a70cc..69325c9 100644 --- a/bwmon.py +++ b/bwmon.py @@ -57,9 +57,24 @@ default_MaxRate = int(bwlimit.get_bwcap() / 1000) default_Maxi2Rate = int(bwlimit.bwmax / 1000) # 5.4 Gbyte per day. 5.4 * 1024 k * 1024M * 1024G # 5.4 Gbyte per day max allowed transfered per recording period -default_MaxKByte = 5662310 +# 5.4 Gbytes per day is aprox 512k/s for 24hrs (approx because original math was wrong +# but its better to keep a higher byte total and keep people happy than correct +# the problem and piss people off. +# default_MaxKByte = 5662310 + +# -- 6/1/09 +# llp wants to double these, so we use the following +# 1mbit * 24hrs * 60mins * 60secs = bits/day +# 1000000 * 24 * 60 * 60 / (1024 * 8) +default_MaxKByte = 10546875 + # 16.4 Gbyte per day max allowed transfered per recording period to I2 -default_Maxi2KByte = 17196646 +# default_Maxi2KByte = 17196646 + +# -- 6/1/09 +# 3Mb/s for 24hrs a day (30.17 gigs) +default_Maxi2KByte = 31640625 + # Default share quanta default_Share = 1 @@ -646,7 +661,8 @@ def sync(nmdbcopy): pickle.dump((version, slices, deaddb), f) f.close() - +# doesnt use generic default interface because this runs as its own thread. +# changing the config variable will not have an effect since GetSlivers: pass def getDefaults(nmdbcopy): ''' Get defaults from default slice's slice attributes. @@ -662,7 +678,10 @@ def getDefaults(nmdbcopy): def allOff(): - # Get/set special slice IDs + """ + Turn off all slice HTBs + """ + # Get/set special slice IDs root_xid = bwlimit.get_xid("root") default_xid = bwlimit.get_xid("default") kernelhtbs = gethtbs(root_xid, default_xid) @@ -674,9 +693,9 @@ def allOff(): lock = threading.Event() def run(): """ - When run as a thread, wait for event, lock db, deep copy it, release it, - run bwmon.GetSlivers(), then go back to waiting. - """ + When run as a thread, wait for event, lock db, deep copy it, release it, + run bwmon.GetSlivers(), then go back to waiting. + """ logger.log("bwmon: Thread started", 2) while True: lock.wait() @@ -685,8 +704,10 @@ def run(): nmdbcopy = copy.deepcopy(database.db) database.db_lock.release() try: - if getDefaults(nmdbcopy): sync(nmdbcopy) - else: logger.log("bwmon: DISABLED.") + if getDefaults(nmdbcopy) and len(bwlimit.tc("class show dev eth0")) > 0: + # class show to check if net:InitNodeLimit:bwlimit.init has run. + sync(nmdbcopy) + else: logger.log("bwmon: BW limits DISABLED.") except: logger.log_exc() lock.clear()