else: OUTFILE = sys.stdout if options.bucket: bucket = conn.create_bucket(options.bucket) else: bucket = common.get_new_bucket() keys = [] print >> OUTFILE, 'bucket: %s' % bucket.name print >> sys.stderr, 'setup complete, generating files' for profile in common.config.file_generation.groups: seed = random.random() files = get_random_files(profile[0], profile[1], profile[2], seed) keys += upload_objects(bucket, files, seed) print >> sys.stderr, 'finished sending files. generating urls' for key in keys: print >> OUTFILE, key.generate_url(30758400) #valid for 1 year print >> sys.stderr, 'done' if __name__ == '__main__': common.setup() try: main() except Exception as e: traceback.print_exc() common.teardown()
def main(): # parse options (options, args) = parse_options() try: # setup common.setup() bucket = common.get_new_bucket() print "Created bucket: {name}".format(name=bucket.name) r = None if (options.rewrite): r = random.randint(0, 65535) q = gevent.queue.Queue() # main work print "Using file size: {size} +- {stddev}".format( size=options.file_size, stddev=options.stddev) print "Spawning {r} readers and {w} writers...".format( r=options.num_readers, w=options.num_writers) greenlets = [] greenlets += [ gevent.spawn(writer, options.duration, bucket, name=x, queue=q, file_size=options.file_size, file_stddev=options.stddev, quantity=options.quantity, file_name_seed=r) for x in xrange(options.num_writers) ] greenlets += [ gevent.spawn(reader, options.duration, bucket, name=x, queue=q) for x in xrange(options.num_readers) ] gevent.spawn_later(options.duration, lambda: q.put(StopIteration)) total_read = 0 total_write = 0 read_success = 0 read_failure = 0 write_success = 0 write_failure = 0 for item in q: print item if item.type == Result.TYPE_READER: if item.success: read_success += 1 total_read += item.size else: read_failure += 1 elif item.type == Result.TYPE_WRITER: if item.success: write_success += 1 total_write += item.size else: write_failure += 1 # overall stats print "--- Stats ---" print "Total Read: {read} MB ({mbps} MB/s)".format( read=(total_read / 1024.0), mbps=(total_read / 1024.0 / options.duration)) print "Total Write: {write} MB ({mbps} MB/s)".format( write=(total_write / 1024.0), mbps=(total_write / 1024.0 / options.duration)) print "Read filures: {num} ({percent}%)".format( num=read_failure, percent=(100.0 * read_failure / max(read_failure + read_success, 1))) print "Write failures: {num} ({percent}%)".format( num=write_failure, percent=(100.0 * write_failure / max(write_failure + write_success, 1))) gevent.joinall(greenlets, timeout=1) except Exception as e: print e finally: # cleanup if options.cleanup: common.teardown()
def main(): # parse options (options, args) = parse_options() try: # setup common.setup() bucket = common.get_new_bucket() print "Created bucket: {name}".format(name=bucket.name) r = None if (options.rewrite): r = random.randint(0, 65535) q = gevent.queue.Queue() # main work print "Using file size: {size} +- {stddev}".format(size=options.file_size, stddev=options.stddev) print "Spawning {r} readers and {w} writers...".format(r=options.num_readers, w=options.num_writers) greenlets = [] greenlets += [gevent.spawn(writer, options.duration, bucket, name=x, queue=q, file_size=options.file_size, file_stddev=options.stddev, quantity=options.quantity, file_name_seed=r ) for x in xrange(options.num_writers)] greenlets += [gevent.spawn(reader, options.duration, bucket, name=x, queue=q ) for x in xrange(options.num_readers)] gevent.spawn_later(options.duration, lambda: q.put(StopIteration)) total_read = 0 total_write = 0 read_success = 0 read_failure = 0 write_success = 0 write_failure = 0 for item in q: print item if item.type == Result.TYPE_READER: if item.success: read_success += 1 total_read += item.size else: read_failure += 1 elif item.type == Result.TYPE_WRITER: if item.success: write_success += 1 total_write += item.size else: write_failure += 1 # overall stats print "--- Stats ---" print "Total Read: {read} MB ({mbps} MB/s)".format( read=(total_read/1024.0), mbps=(total_read/1024.0/options.duration) ) print "Total Write: {write} MB ({mbps} MB/s)".format( write=(total_write/1024.0), mbps=(total_write/1024.0/options.duration) ) print "Read filures: {num} ({percent}%)".format( num=read_failure, percent=(100.0*read_failure/max(read_failure+read_success, 1)) ) print "Write failures: {num} ({percent}%)".format( num=write_failure, percent=(100.0*write_failure/max(write_failure+write_success, 1)) ) gevent.joinall(greenlets, timeout=1) except Exception as e: print e finally: # cleanup if options.cleanup: common.teardown()