[CalendarServer-changes] [6289] CalendarServer/trunk/contrib/tools/request_monitor.py
source_changes at macosforge.org
source_changes at macosforge.org
Tue Sep 14 11:40:20 PDT 2010
Revision: 6289
http://trac.macosforge.org/projects/calendarserver/changeset/6289
Author: cdaboo at apple.com
Date: 2010-09-14 11:40:17 -0700 (Tue, 14 Sep 2010)
Log Message:
-----------
Add free memory monitoring.
Modified Paths:
--------------
CalendarServer/trunk/contrib/tools/request_monitor.py
Modified: CalendarServer/trunk/contrib/tools/request_monitor.py
===================================================================
--- CalendarServer/trunk/contrib/tools/request_monitor.py 2010-09-14 17:53:54 UTC (rev 6288)
+++ CalendarServer/trunk/contrib/tools/request_monitor.py 2010-09-14 18:40:17 UTC (rev 6289)
@@ -28,6 +28,7 @@
filename = "/var/log/caldavd/access.log"
+debug = False
def listenq():
child = Popen(
@@ -87,6 +88,28 @@
output, _ignore_ = child.communicate()
return output.split("\n")[-2].split()[2]
+def freemem():
+ try:
+ child = Popen(
+ args=[
+ "/usr/bin/vm_stat",
+ ],
+ stdout=PIPE, stderr=STDOUT,
+ )
+ output, _ignore_ = child.communicate()
+ lines = output.split("\n")
+
+ line = lines[0]
+ pageSize = int(line[line.find("page size of")+12:].split()[0])
+ line = lines[1]
+ freeSize = int(line[line.find("Pages free:")+11:].split()[0][:-1])
+ freed = freeSize * pageSize
+ return "%d bytes (%.1f GB)" % (freed, freed / (1024.0 * 1024 * 1024),)
+ except Exception, e:
+ if debug:
+ print "freemem failure", e
+ print traceback.print_exc()
+ return "error"
def parseLine(line):
@@ -159,11 +182,10 @@
print "--lines N specifies how many lines to tail from access.log (default: 10000)"
print "--procs N specifies how many python processes are expected in the log file (default: 80)"
print
- print "Version: 2"
+ print "Version: 3"
numLines = 10000
numProcs = 80
-debug = False
options, args = getopt.getopt(sys.argv[1:], "h", ["debug", "lines=", "procs=",])
for option, value in options:
if option == "-h":
@@ -343,6 +365,7 @@
print "Listenq (ssl+non):", q[0], " (Recent", ", ".join(q[1:]), "Oldest)"
q = idleHistory()
print "CPU idle %:", q[0], " (Recent", ", ".join(q[1:]), "Oldest)"
+ print "Memory free:", freemem()
if avg:
print avg, "|",
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100914/3bed1bc5/attachment.html>
More information about the calendarserver-changes
mailing list