def stress_test(username, provider, passphrase, basedir): threads = [] all_set = threading.Event() for i in xrange(NUMBER_OF_REPLICAS): logging.info('[main] starting thread %d.' % i) s = get_soledad_instance(username, provider, passphrase, tempfile.mkdtemp(dir=basedir)) t = WorkerThread(i, s, all_set) t.start() threads.append(t) map(lambda t: t._done_creating.wait(), threads) all_set.set() map(lambda t: t.join(), threads) logger.info('Removing dir %s' % basedir) shutil.rmtree(basedir)
def stress_test(username, provider, passphrase, basedir): threads = [] all_set = threading.Event() for i in xrange(NUMBER_OF_REPLICAS): logging.info('[main] starting thread %d.' % i) s = get_soledad_instance( username, provider, passphrase, tempfile.mkdtemp(dir=basedir)) t = WorkerThread(i, s, all_set) t.start() threads.append(t) map(lambda t: t._done_creating.wait(), threads) all_set.set() map(lambda t: t.join(), threads) logger.info('Removing dir %s' % basedir) shutil.rmtree(basedir)
if __name__ == '__main__': tempdir = tempfile.mkdtemp() def rm_tempdir(): shutil.rmtree(tempdir) if len(sys.argv) < 6: bail(USAGE, 2) if not obtain_lock(): bail("another instance is already running", 1) uuid, token, server, cert_file, passphrase = sys.argv[1:] s = get_soledad_instance(uuid, passphrase, tempdir, server, cert_file, token) def syncWithTimeout(_): d = s.sync() reactor.callLater(SYNC_TIMEOUT, d.cancel) return d def onSyncDone(sync_result): print "SYNC_RESULT:", sync_result s.close() rm_tempdir() reactor.stop() def trap_cancel(f): f.trap(defer.CancelledError) log.err("sync timed out after %s seconds" % SYNC_TIMEOUT)
parser.add_argument( '-l', dest='logfile', required=False, default='/tmp/profile.log', help='the file to which write the log') args = parser.parse_args() # get the password passphrase = args.passphrase if passphrase is None: passphrase = getpass.getpass( 'Password for %s@%s: ' % (args.username, args.provider)) # get the basedir basedir = args.basedir if basedir is None: basedir = tempfile.mkdtemp() logger.info('Using %s as base directory.' % basedir) # get the soledad instance s = get_soledad_instance( args.username, args.provider, passphrase, basedir) for i in xrange(10): s.create_doc({}) sl = StatsLogger( "soledad-sync", args.logfile, procs=["python"], interval=0.001) sl.start() s.sync() sl.stop() #plot(args.logfile)
default='/tmp/profile.log', help='the file to which write the log') args = parser.parse_args() # get the password passphrase = args.passphrase if passphrase is None: passphrase = getpass.getpass('Password for %s@%s: ' % (args.username, args.provider)) # get the basedir basedir = args.basedir if basedir is None: basedir = tempfile.mkdtemp() logger.info('Using %s as base directory.' % basedir) # get the soledad instance s = get_soledad_instance(args.username, args.provider, passphrase, basedir) for i in xrange(10): s.create_doc({}) sl = StatsLogger("soledad-sync", args.logfile, procs=["python"], interval=0.001) sl.start() s.sync() sl.stop() #plot(args.logfile)
if __name__ == '__main__': tempdir = tempfile.mkdtemp() def rm_tempdir(): shutil.rmtree(tempdir) if len(sys.argv) < 6: bail(USAGE, 2) if not obtain_lock(): bail("another instance is already running", 1) uuid, token, server, cert_file, passphrase = sys.argv[1:] s = get_soledad_instance( uuid, passphrase, tempdir, server, cert_file, token) def syncWithTimeout(_): d = s.sync() reactor.callLater(SYNC_TIMEOUT, d.cancel) return d def onSyncDone(sync_result): print "SYNC_RESULT:", sync_result s.close() rm_tempdir() reactor.stop() def trap_cancel(f): f.trap(defer.CancelledError) log.err("sync timed out after %s seconds" % SYNC_TIMEOUT)
create_docs, sol, content) s = StringIO.StringIO() ps = pstats.Stats(pr, stream=s).sort_stats('cumulative') ps.print_stats() ps.dump_stats("%s_creation.stats" % fname_prefix) print s.getvalue() # profile get all docs pr = cProfile.Profile() pr.runcall( get_all_docs, sol) s = StringIO.StringIO() ps = pstats.Stats(pr, stream=s).sort_stats('cumulative') ps.dump_stats("%s_retrieval.stats" % fname_prefix) ps.print_stats() print s.getvalue() if __name__ == '__main__': username, provider, passphrase, basedir, logdir = parse_args() sol = get_soledad_instance( username, provider, passphrase, basedir) do_profile(logdir, sol) shutil.rmtree(basedir)
fname_prefix = os.path.join( logdir, "profile_%s" \ % datetime.datetime.now().strftime('%Y-%m-%d_%H-%m-%S')) # profile create docs content = {'data': os.urandom(DOC_SIZE / 2).encode('hex')} pr = cProfile.Profile() pr.runcall(create_docs, sol, content) s = StringIO.StringIO() ps = pstats.Stats(pr, stream=s).sort_stats('cumulative') ps.print_stats() ps.dump_stats("%s_creation.stats" % fname_prefix) print s.getvalue() # profile get all docs pr = cProfile.Profile() pr.runcall(get_all_docs, sol) s = StringIO.StringIO() ps = pstats.Stats(pr, stream=s).sort_stats('cumulative') ps.dump_stats("%s_retrieval.stats" % fname_prefix) ps.print_stats() print s.getvalue() if __name__ == '__main__': username, provider, passphrase, basedir, logdir = parse_args() sol = get_soledad_instance(username, provider, passphrase, basedir) do_profile(logdir, sol) shutil.rmtree(basedir)