From: Brian Warner Date: Mon, 9 Jul 2007 02:07:54 +0000 (-0700) Subject: control.py: make get_memory_usage() callable from elsewhere X-Git-Url: https://git.rkrishnan.org/architecture.txt?a=commitdiff_plain;h=6ff94541a85dac49a4ce0bbd311b153dff160459;p=tahoe-lafs%2Ftahoe-lafs.git control.py: make get_memory_usage() callable from elsewhere --- diff --git a/src/allmydata/control.py b/src/allmydata/control.py index f98c5a6b..4158ae66 100644 --- a/src/allmydata/control.py +++ b/src/allmydata/control.py @@ -4,6 +4,28 @@ from twisted.application import service from foolscap import Referenceable from allmydata.interfaces import RIControlClient from allmydata.util import testutil +from twisted.python import log + +def get_memory_usage(): + # this is obviously linux-specific + stat_names = ("VmPeak", + "VmSize", + #"VmHWM", + "VmData") + stats = {} + for line in open("/proc/self/status", "r").readlines(): + name, right = line.split(":",2) + if name in stat_names: + assert right.endswith(" kB\n") + right = right[:-4] + stats[name] = int(right) * 1024 + return stats + +def log_memory_usage(where=""): + stats = get_memory_usage() + log.msg("VmSize: %9d VmPeak: %9d %s" % (stats["VmSize"], + stats["VmPeak"], + where)) class ControlServer(Referenceable, service.Service, testutil.PollMixin): @@ -29,16 +51,4 @@ class ControlServer(Referenceable, service.Service, testutil.PollMixin): return d def remote_get_memory_usage(self): - # this is obviously linux-specific - stat_names = ("VmPeak", - "VmSize", - #"VmHWM", - "VmData") - stats = {} - for line in open("/proc/self/status", "r").readlines(): - name, right = line.split(":",2) - if name in stat_names: - assert right.endswith(" kB\n") - right = right[:-4] - stats[name] = int(right) * 1024 - return stats + return get_memory_usage()