[CalendarServer-changes] [8010] CalendarServer/trunk/contrib/tools/request_monitor.py
source_changes at macosforge.org
source_changes at macosforge.org
Tue Aug 23 11:08:00 PDT 2011
Revision: 8010
http://trac.macosforge.org/projects/calendarserver/changeset/8010
Author: sagen at apple.com
Date: 2011-08-23 11:08:00 -0700 (Tue, 23 Aug 2011)
Log Message:
-----------
Degrade gracefully if any of these system monitoring tools don't exist.
Modified Paths:
--------------
CalendarServer/trunk/contrib/tools/request_monitor.py
Modified: CalendarServer/trunk/contrib/tools/request_monitor.py
===================================================================
--- CalendarServer/trunk/contrib/tools/request_monitor.py 2011-08-23 17:19:03 UTC (rev 8009)
+++ CalendarServer/trunk/contrib/tools/request_monitor.py 2011-08-23 18:08:00 UTC (rev 8010)
@@ -24,6 +24,14 @@
import time
import traceback
+NETSTAT = "/usr/sbin/netstat"
+enableListenQueue = os.path.exists(NETSTAT)
+IOSTAT = "/usr/sbin/iostat"
+enableCpuIdle = os.path.exists(IOSTAT)
+VMSTAT = "/usr/bin/vm_stat"
+enableFreeMem = os.path.exists(VMSTAT)
+
+
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
@@ -33,7 +41,7 @@
def listenq():
child = Popen(
args=[
- "/usr/sbin/netstat", "-L", "-anp", "tcp",
+ NETSTAT, "-L", "-anp", "tcp",
],
stdout=PIPE, stderr=STDOUT,
)
@@ -96,7 +104,7 @@
def cpuidle():
child = Popen(
args=[
- "/usr/sbin/iostat", "-c", "2", "-n", "0",
+ IOSTAT, "-c", "2", "-n", "0",
],
stdout=PIPE, stderr=STDOUT,
)
@@ -107,7 +115,7 @@
try:
child = Popen(
args=[
- "/usr/bin/vm_stat",
+ VMSTAT,
],
stdout=PIPE, stderr=STDOUT,
)
@@ -389,12 +397,15 @@
avg = "%.1f average requests per second" % (avgRequests,)
print "- " * 40
- q, lqssl, lqnon = listenQueueHistory()
print datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
- 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 enableListenQueue:
+ q, lqssl, lqnon = listenQueueHistory()
+ print "Listenq (ssl+non):", q[0], " (Recent", ", ".join(q[1:]), "Oldest)"
+ if enableCpuIdle:
+ q = idleHistory()
+ print "CPU idle %:", q[0], " (Recent", ", ".join(q[1:]), "Oldest)"
+ if enableFreeMem:
+ print "Memory free:", freemem()
print "CPU Per Daemon:", cpuPerDaemon()
if avg:
@@ -406,13 +417,16 @@
print "| %d (%d %%) server-to-server" % (numServerToServer, safePercent(numServerToServer, numRequests),),
print
- lqlatency = (lqssl / avgRequests, lqnon / avgRequests,) if avgRequests else (0.0, 0.0,)
- print "Response time: average %.1f ms, max %.1f ms, listenq latency (ssl+non): %.1f s %.1f s" % (
+ print "Response time: average %.1f ms, max %.1f ms" % (
totalRespTime / numRequests,
maxRespTime,
- lqlatency[0],
- lqlatency[1],
)
+ if enableListenQueue:
+ lqlatency = (lqssl / avgRequests, lqnon / avgRequests,) if avgRequests else (0.0, 0.0,)
+ print " listenq latency (ssl+non): %.1f s %.1f s" % (
+ lqlatency[0],
+ lqlatency[1],
+ )
print "<10ms: %d >10ms: %d >100ms: %d >1s: %d >10s: %d >30s: %d >60s: %d" % (under10ms, over10ms, over100ms, over1s, over10s, over30s, over60s)
print
if errorCount:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110823/4ecfc367/attachment-0001.html>
More information about the calendarserver-changes
mailing list