[CalendarServer-changes] [15100] CalendarServer/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Thu Sep 3 14:00:24 PDT 2015
Revision: 15100
http://trac.calendarserver.org//changeset/15100
Author: cdaboo at apple.com
Date: 2015-09-03 14:00:24 -0700 (Thu, 03 Sep 2015)
Log Message:
-----------
Improve the TEST_WORK load testing and monitoring.
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/dashboard_service.py
CalendarServer/trunk/contrib/performance/jobqueue/loadtest.py
CalendarServer/trunk/contrib/performance/jobqueue/workrate.py
CalendarServer/trunk/twistedcaldav/controlapi.py
Modified: CalendarServer/trunk/calendarserver/dashboard_service.py
===================================================================
--- CalendarServer/trunk/calendarserver/dashboard_service.py 2015-09-03 20:58:58 UTC (rev 15099)
+++ CalendarServer/trunk/calendarserver/dashboard_service.py 2015-09-03 21:00:24 UTC (rev 15100)
@@ -136,7 +136,7 @@
"""
if self.factory.store:
- txn = self.factory.store.newTransaction()
+ txn = self.factory.store.newTransaction("DashboardProtocol.data_jobs")
records = (yield JobItem.histogram(txn))
yield txn.commit()
else:
@@ -177,10 +177,12 @@
if self.factory.store:
txn = self.factory.store.newTransaction()
results["queued"] = yield TestWork.count(txn)
+ results["assigned"] = yield JobItem.count(txn, where=(JobItem.assigned != None))
results["completed"] = WorkerConnectionPool.completed.get(TestWork.workType(), 0)
yield txn.commit()
else:
results["queued"] = 0
+ results["assigned"] = 0
results["completed"] = 0
returnValue(results)
Modified: CalendarServer/trunk/contrib/performance/jobqueue/loadtest.py
===================================================================
--- CalendarServer/trunk/contrib/performance/jobqueue/loadtest.py 2015-09-03 20:58:58 UTC (rev 15099)
+++ CalendarServer/trunk/contrib/performance/jobqueue/loadtest.py 2015-09-03 21:00:24 UTC (rev 15100)
@@ -227,7 +227,7 @@
print("Work details:")
print(" Priority: {}").format(config["priority"])
print(" Weight: {}").format(config["weight"])
- print(" Start delay: {} ms").format(config["when"])
+ print(" Start delay: {} s").format(config["when"])
print(" Execution time: {} ms").format(config["delay"])
print(" Average queue depth: {}").format((effective_rate * config["delay"]) / 1000)
print("")
Modified: CalendarServer/trunk/contrib/performance/jobqueue/workrate.py
===================================================================
--- CalendarServer/trunk/contrib/performance/jobqueue/workrate.py 2015-09-03 20:58:58 UTC (rev 15099)
+++ CalendarServer/trunk/contrib/performance/jobqueue/workrate.py 2015-09-03 21:00:24 UTC (rev 15100)
@@ -124,6 +124,7 @@
queued = self.client.currentData["test_work"]["queued"]
completed = self.client.currentData["test_work"]["completed"]
+ assigned = self.client.currentData["test_work"]["assigned"]
if self.last_queued is not None:
diff_queued = (self.last_queued - queued) / (t - self.last_time)
diff_completed = (completed - self.last_completed) / (t - self.last_time)
@@ -133,7 +134,7 @@
self.last_queued = queued
self.last_completed = completed
self.last_time = t
- print("{}\t{:.1f}\t{:.1f}".format(queued, diff_queued, diff_completed,))
+ print("{}\t{}\t{:.1f}\t{:.1f}".format(queued, assigned, diff_queued, diff_completed,))
self.sched.enter(max(self.seconds - (time.time() - t), 0), 0, self.updateResults, ())
Modified: CalendarServer/trunk/twistedcaldav/controlapi.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/controlapi.py 2015-09-03 20:58:58 UTC (rev 15099)
+++ CalendarServer/trunk/twistedcaldav/controlapi.py 2015-09-03 21:00:24 UTC (rev 15100)
@@ -58,6 +58,7 @@
from txweb2.http_headers import MimeType
import json
+import time
log = Logger()
@@ -329,7 +330,7 @@
@inlineCallbacks
def action_refreshgroups(self, j):
- txn = self._store.newTransaction()
+ txn = self._store.newTransaction(label="ControlAPIResource.action_refreshgroups")
yield txn.directoryService().flush()
work = yield GroupCacherPollingWork.reschedule(txn, 0, force=True)
jobID = work.jobID
@@ -383,10 +384,12 @@
except KeyError:
jobs = 1
+ start_time = time.time()
for _ in range(jobs):
+ effective_when = max(when - (time.time() - start_time), 0)
yield TestWork.schedule(
self._store,
- when,
+ effective_when,
priority,
weight,
delay,
@@ -403,7 +406,7 @@
from txdav.common.datastore.work.revision_cleanup import _triggerRevisionCleanup
from txdav.common.datastore.work.revision_cleanup import RevisionCleanupWork
- txn = self._store.newTransaction()
+ txn = self._store.newTransaction(label="ControlAPIResource.action_revisioncleanup")
yield _triggerRevisionCleanup(txn, 60)
yield txn.commit()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20150903/89238f76/attachment-0001.html>
More information about the calendarserver-changes
mailing list