Change default CPU share from 32 to 1
[nodemanager.git] / bwmon.py
index ed86d4b..ee5d41b 100644 (file)
--- a/bwmon.py
+++ b/bwmon.py
@@ -14,7 +14,7 @@
 # Faiyaz Ahmed <faiyaza@cs.princeton.edu>
 # Copyright (C) 2004-2008 The Trustees of Princeton University
 #
-# $Id: bwmon.py,v 1.1.2.11 2007/06/26 18:03:55 faiyaza Exp $
+# $Id$
 #
 
 import os
@@ -47,7 +47,7 @@ seconds_per_day = 24 * 60 * 60
 bits_per_byte = 8
 
 # Defaults
-debug = False
+debug = True
 verbose = False
 datafile = "/var/lib/misc/bwmon.dat"
 #nm = None
@@ -465,11 +465,11 @@ def sync(nmdbcopy):
         (version, slices, deaddb) = pickle.load(f)
         f.close()
         # Check version of data file
-        if version != "$Id: bwmon.py,v 1.1.2.11 2007/06/26 18:03:55 faiyaza Exp $":
+        if version != "$Id$":
             logger.log("bwmon:  Not using old version '%s' data file %s" % (version, datafile))
             raise Exception
     except Exception:
-        version = "$Id: bwmon.py,v 1.1.2.11 2007/06/26 18:03:55 faiyaza Exp $"
+        version = "$Id$"
         slices = {}
         deaddb = {}
 
@@ -535,7 +535,7 @@ def sync(nmdbcopy):
                 # and made a dict of computed values.
                 slices[newslice] = Slice(newslice, live[newslice]['name'], live[newslice]['_rspec'])
                 slices[newslice].reset( 0, 0, 0, 0, live[newslice]['_rspec'] )
-                # Double check time for dead slice in deaddb is within 24hr recording period.
+            # Double check time for dead slice in deaddb is within 24hr recording period.
             elif (time.time() <= (deaddb[live[newslice]['name']]['slice'].time + period)):
                 deadslice = deaddb[live[newslice]['name']]
                 logger.log("bwmon: Reinstantiating deleted slice %s" % live[newslice]['name'])
@@ -573,6 +573,12 @@ def sync(nmdbcopy):
             deaddb[slices[xid].name] = {'slice': slices[xid], 'htb': kernelhtbs[xid]}
             del slices[xid]
         if kernelhtbs.has_key(xid): bwlimit.off(xid)
+       
+       # Clean up deaddb
+       for (deadslicexid, deadslice) in deaddb.iteritems():
+               if (time.time() >= (deadslice.time() + period)):
+                       logger.log("bwmon: Removing dead slice %s from dat." % deadslice.name)
+                       del deaddb[deadslicexid]
 
     # Get actual running values from tc since we've added and removed buckets.
     # Update slice totals and bandwidth. {xid: {values}}