[CalendarServer-changes] [6121] CalendarServer/trunk/contrib/performance
source_changes at macosforge.org
source_changes at macosforge.org
Wed Aug 18 16:35:21 PDT 2010
Revision: 6121
http://trac.macosforge.org/projects/calendarserver/changeset/6121
Author: exarkun at twistedmatrix.com
Date: 2010-08-18 16:35:20 -0700 (Wed, 18 Aug 2010)
Log Message:
-----------
Split the SQL observer into a separate file for independent use
Modified Paths:
--------------
CalendarServer/trunk/contrib/performance/benchmark.py
CalendarServer/trunk/contrib/performance/io_measure.d
Added Paths:
-----------
CalendarServer/trunk/contrib/performance/sql_measure.d
Modified: CalendarServer/trunk/contrib/performance/benchmark.py
===================================================================
--- CalendarServer/trunk/contrib/performance/benchmark.py 2010-08-18 22:45:07 UTC (rev 6120)
+++ CalendarServer/trunk/contrib/performance/benchmark.py 2010-08-18 23:35:20 UTC (rev 6121)
@@ -1,4 +1,5 @@
import sys
+from os.path import dirname
from signal import SIGINT
from pickle import dump
@@ -149,11 +150,20 @@
self.dtraces[pid] = reactor.spawnProcess(
IOMeasureConsumer(started, stopped),
"/usr/sbin/dtrace",
- ["/usr/sbin/dtrace", "-q", "-p", str(pid), "-s",
- "io_measure.d"])
+ ["/usr/sbin/dtrace",
+ # process preprocessor macros
+ "-C",
+ # search for include targets in the source directory containing this file
+ "-I", dirname(__file__),
+ # suppress most implicitly generated output (which would mess up our parser)
+ "-q",
+ # make this pid the target
+ "-p", str(pid),
+ # load this script
+ "-s", "io_measure.d"])
def eintr(reason):
reason.trap(DTraceBug)
- print 'Dtrace startup failed (', reason.getErrorMessage(), '), retrying.'
+ print 'Dtrace startup failed (', reason.getErrorMessage().strip(), '), retrying.'
return self._startDTrace(pid)
started.addErrback(eintr)
stopped.addCallback(self._cleanup, pid)
Modified: CalendarServer/trunk/contrib/performance/io_measure.d
===================================================================
--- CalendarServer/trunk/contrib/performance/io_measure.d 2010-08-18 22:45:07 UTC (rev 6120)
+++ CalendarServer/trunk/contrib/performance/io_measure.d 2010-08-18 23:35:20 UTC (rev 6121)
@@ -1,11 +1,12 @@
/*
- * Report current timestamp (nanoseconds) of io and SQLite3 events.
+ * Trace information about I/O and SQL events.
*/
#pragma D option switchrate=10hz
-#pragma D option strsize=1024
+#include "sql_measure.d"
+
dtrace:::BEGIN
{
/* Let the watcher know things are alright.
@@ -28,63 +29,3 @@
{
printf("B_WRITE %d\n\1", args[0]->b_bcount);
}
-
-/*
- * SQLite3 stuff
- */
-
-pid$target:_sqlite3.so:_pysqlite_query_execute:entry
-{
- self->executing = 1;
- self->sql = "";
- printf("EXECUTE ENTRY %d\n\1", timestamp);
-}
-
-pid$target:_sqlite3.so:_pysqlite_query_execute:return
-{
- self->executing = 0;
- printf("EXECUTE SQL %s\n\1", self->sql);
- printf("EXECUTE RETURN %d\n\1", timestamp);
-}
-
-pid$target::PyString_AsString:return
-/self->executing/
-{
- self->sql = copyinstr(arg1);
- self->executing = 0;
-}
-
-pid$target:_sqlite3.so:pysqlite_cursor_iternext:entry
-{
- printf("ITERNEXT ENTRY %d\n\1", timestamp);
-}
-
-pid$target:_sqlite3.so:pysqlite_cursor_iternext:return
-{
- printf("ITERNEXT RETURN %d\n\1", timestamp);
-}
-
-/*
- * PyGreSQL stuff
- */
-
-pid$target::PQexec:entry
-{
- printf("EXECUTE ENTRY %d\n\1", timestamp);
- printf("EXECUTE SQL %s\n\1", copyinstr(arg1));
-}
-
-pid$target::PQexec:return
-{
- printf("EXECUTE RETURN %d\n\1", timestamp);
-}
-
-pid$target::pgsource_fetch:entry
-{
- printf("ITERNEXT ENTRY %d\n\1", timestamp);
-}
-
-pid$target::pgsource_fetch:return
-{
- printf("ITERNEXT RETURN %d\n\1", timestamp);
-}
Copied: CalendarServer/trunk/contrib/performance/sql_measure.d (from rev 6095, CalendarServer/trunk/contrib/performance/io_measure.d)
===================================================================
--- CalendarServer/trunk/contrib/performance/sql_measure.d (rev 0)
+++ CalendarServer/trunk/contrib/performance/sql_measure.d 2010-08-18 23:35:20 UTC (rev 6121)
@@ -0,0 +1,65 @@
+
+/*
+ * Make almost all query strings fit.
+ */
+#pragma D option strsize=1024
+
+/*
+ * SQLite3 stuff
+ */
+
+pid$target:_sqlite3.so:_pysqlite_query_execute:entry
+{
+ self->executing = 1;
+ self->sql = "";
+ printf("EXECUTE ENTRY %d\n\1", timestamp);
+}
+
+pid$target:_sqlite3.so:_pysqlite_query_execute:return
+{
+ self->executing = 0;
+ printf("EXECUTE SQL %s\n\1", self->sql);
+ printf("EXECUTE RETURN %d\n\1", timestamp);
+}
+
+pid$target::PyString_AsString:return
+/self->executing/
+{
+ self->sql = copyinstr(arg1);
+ self->executing = 0;
+}
+
+pid$target:_sqlite3.so:pysqlite_cursor_iternext:entry
+{
+ printf("ITERNEXT ENTRY %d\n\1", timestamp);
+}
+
+pid$target:_sqlite3.so:pysqlite_cursor_iternext:return
+{
+ printf("ITERNEXT RETURN %d\n\1", timestamp);
+}
+
+/*
+ * PyGreSQL stuff
+ */
+
+pid$target::PQexec:entry
+{
+ printf("EXECUTE ENTRY %d\n\1", timestamp);
+ printf("EXECUTE SQL %s\n\1", copyinstr(arg1));
+}
+
+pid$target::PQexec:return
+{
+ printf("EXECUTE RETURN %d\n\1", timestamp);
+}
+
+pid$target::pgsource_fetch:entry
+{
+ printf("ITERNEXT ENTRY %d\n\1", timestamp);
+}
+
+pid$target::pgsource_fetch:return
+{
+ printf("ITERNEXT RETURN %d\n\1", timestamp);
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100818/319d692f/attachment.html>
More information about the calendarserver-changes
mailing list