[Checkins] SVN: Sandbox/J1m/resumelb/src/zc/resumelb/simul.py Show new resumes.
Jim Fulton
jim at zope.com
Sun Jan 15 18:41:48 UTC 2012
Log message for revision 124053:
Show new resumes.
Make site-selection probs non-uniform.
Call random.seed to make reduce random differences between runs.
Changed:
U Sandbox/J1m/resumelb/src/zc/resumelb/simul.py
-=-
Modified: Sandbox/J1m/resumelb/src/zc/resumelb/simul.py
===================================================================
--- Sandbox/J1m/resumelb/src/zc/resumelb/simul.py 2012-01-15 18:41:45 UTC (rev 124052)
+++ Sandbox/J1m/resumelb/src/zc/resumelb/simul.py 2012-01-15 18:41:47 UTC (rev 124053)
@@ -38,6 +38,7 @@
- sim_workers number of workers
"""
+from pprint import pprint
import json
import logging
import os
@@ -99,8 +100,6 @@
self.cache.size(self.cache_size)
def __call__(self, environ, start_response):
- """Simplest possible application object"""
-
n = nhit = nmiss = nevict = 0
for oid in environ['PATH_INFO'].rsplit('/', 1)[1].split('_'):
n += 1
@@ -144,6 +143,8 @@
class Worker(zc.resumelb.worker.Worker):
def new_resume(self, resume):
+ print '\nNEW RESUME:', len(resume), os.getpid(), time.ctime()
+ pprint(resume)
stats = dict(hitrate=str(app.hitrates))
stats.update(resume)
zk.set(worker_path, json.dumps(stats))
@@ -166,6 +167,17 @@
properties = zk.properties(path)
settings = zc.mappingobject.mappingobject(properties)
+ siteids = []
+
+ @properties
+ def _(*a):
+ n = settings.sim_sites
+ siteids[:] = [0]
+ for i in range(4):
+ if n:
+ siteids.extend(range(n))
+ n /= 2
+
logging.basicConfig()
wpath = path + '/wsgi'
@@ -189,7 +201,7 @@
import gevent.socket
def do_request():
- siteid = random.randint(0, settings.sim_sites)
+ siteid = random.choice(siteids)
oids = set(
int(random.gauss(0, settings.sim_objects_per_site/4))
for i in range(settings.sim_objects_per_request)
@@ -292,9 +304,11 @@
pool = self.lb.pool
self.then = time.time()
print
+ print time.ctime()
print 'requests', self.requests.n-self.nr, self.requests
self.nr = self.requests.n
- print pool.unskilled
+
+ # print pool
print 'backlogs', str(Sample(data=[
worker.backlog for worker in pool.workers]))
print 'resumes', str(Sample(data=[
@@ -308,32 +322,14 @@
):
print 'bad skilled', sorted(skilled, key=lambda i: i[1])
-
-
-
-
-
-
- # print 'backlogs', str(Sample(data=self.lb.pool.backlogs.values()))
- # print 'resumes', str(Sample(
- # data=map(len, self.lb.pool.resumes.values())))
- # print 'skilled', str(Sample(
- # data=map(len, self.lb.pool.skilled.values())))
- # self.zk.set(self.path, json.dumps(dict(
- # requests = str(self.requests),
- # backlogs = str(Sample(data=self.lb.pool.backlogs.values())),
- # resumes = str(Sample(
- # data=map(len, self.lb.pool.resumes.values()))),
- # skilled = str(Sample(
- # data=map(len, self.lb.pool.skilled.values()))),
- # )))
-
def main(args=None):
if args is None:
args = sys.argv[1:]
[path] = args
logging.basicConfig()
+ random.seed(0)
+
@zc.thread.Process(args=(path,))
def lb(path):
import logging
More information about the checkins
mailing list