def bench_ix(args, host1, host2): bench_common.deploy(host1, [args.ix + '/dp/ix', args.ix + '/apps/echoserver']) bench_common.deploy(host2, [args.ix + '/dp/ix', args.ix + '/apps/echoclient']) for msg_size in IX_MSG_SIZES: result = 0 try: with bench_common.ProcessManager() as proc_manager: channel, pid = proc_manager.spawn( host1, 'sudo stdbuf -o0 -e0 %(DIR)s/ix -c /etc/ix.conf -- %(DIR)s/echoserver %(msg_size)d 2' % { 'DIR': DIR, 'msg_size': msg_size }, 'sudo kill {pid}') time.sleep(IX_WAIT_TO_BOOT_SECS) bench_common.consume(channel) clients = bench_common.Clients( proc_manager, [host2], 'sudo %(DIR)s/ix -l 0 -c /etc/ix.conf -- %(DIR)s/echoclient %(host)s %(port)d %(msg_size)d' % { 'DIR': DIR, 'host': bench_common.get_host_ip(host1), 'port': IX_PORT, 'msg_size': msg_size }, 'sudo kill {pid}') result = clients.run() finally: print '%d %f' % (msg_size, result)
def main(): parser = argparse.ArgumentParser() parser.add_argument('--target', choices=['linux', 'ix'], required=True) parser.add_argument('--ix') parser.add_argument('--kstats', action='store_true') parser.add_argument('server') parser.add_argument('client', nargs='+') args = parser.parse_args() server = spur.SshShell(args.server, missing_host_key=spur.ssh.MissingHostKey.accept) clients = [] for client_name in args.client: clients.append( spur.SshShell(client_name, missing_host_key=spur.ssh.MissingHostKey.accept)) if args.target == 'linux': server_deploy = ['server'] elif args.target == 'ix': server_deploy = [args.ix + '/dp/ix', args.ix + '/apps/echoserver'] bench_common.deploy(server, server_deploy) for client in clients: bench_common.deploy(client, ['client']) cores = bench_common.get_cores(server) with bench_common.ProcessManager() as proc_manager: if args.target == 'linux': port = LINUX_PORT core_str = ','.join([str(x) for x in cores]) proc_manager.spawn( server, '/tmp/' + getpass.getuser() + '/server %d %s' % (DEF_MSG_SIZE, core_str), 'kill {pid}') elif args.target == 'ix': port = IX_PORT channel, pid = proc_manager.spawn( server, 'sudo stdbuf -o0 -e0 /tmp/' + getpass.getuser() + '/ix -c /etc/ix.conf -- /tmp/' + getpass.getuser() + '/echoserver %d 524288' % DEF_MSG_SIZE, 'sudo kill {pid}', ignore_stdout=True) bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), port) bench_common.consume(channel) i = 1.4 while i <= 5.5: connections_per_client = int(10**i) / len(clients) bench(server, clients, connections_per_client, port, len(cores), channel if args.kstats else None) i += 0.2
def main(): parser = argparse.ArgumentParser() parser.add_argument('--target', choices=['linux', 'ix'], required=True) parser.add_argument('--workload', choices=WORKLOADS.keys(), required=True) parser.add_argument('--mutilate', required=True) parser.add_argument('--memcached', required=True) parser.add_argument('--batch') parser.add_argument('--ix') parser.add_argument('server') parser.add_argument('client', nargs='+') args = parser.parse_args() server = spur.SshShell(args.server, missing_host_key = spur.ssh.MissingHostKey.accept) clients = [] for client_name in args.client: clients.append(spur.SshShell(client_name, missing_host_key = spur.ssh.MissingHostKey.accept)) server_deploy = [args.memcached] if args.target == 'ix': server_deploy.extend([args.ix + '/dp/ix', args.ix + '/cp/ixcp.py']) bench_common.deploy(server, server_deploy) for client in clients: bench_common.deploy(client, [args.mutilate]) server.run(shlex.split('cp /etc/ix.conf '+DIR+'/ix.conf')) if args.batch is not None: server.run(shlex.split("sed -i 's/^batch=.*/batch={0}/' ".format(args.batch)+DIR+"/ix.conf")) with bench_common.ProcessManager() as proc_manager: if args.target == 'linux': port = LINUX_PORT cores = bench_common.get_cores(server) core_count = len(cores) cores = ','.join(cores) numa_node = int(server.run(shlex.split('cat /sys/devices/system/cpu/cpu%s/topology/physical_package_id' % cores[0])).output) proc_manager.spawn(server, 'stdbuf -o0 -e0 numactl -m %(numa_node)d %(DIR)s/memcached -k -Mm 1024 -c 4096 -o hashpower=20 -b 8192 -t %(core_count)d -T %(cores)s' % {'DIR': DIR, 'numa_node': numa_node, 'core_count': core_count, 'cores': cores}, 'kill {pid}') bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), port) elif args.target == 'ix': port = IX_PORT channel, pid = proc_manager.spawn(server, 'sudo stdbuf -o0 -e0 %(DIR)s/ix -c %(DIR)s/ix.conf -- %(DIR)s/memcached -k -Mm 1024 -c 4096 -o hashpower=20' % {'DIR': DIR}, 'sudo kill {pid}') bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), port) bench_common.consume(channel) cmdline = '--server=%s:%d %s --qps-function=%s --report-stats=1 --stop-latency=50:750' % (bench_common.get_host_ip(server), port, WORKLOADS[args.workload], SCAN) mutilate = bench_common.mutilate_benchmark(proc_manager, clients, cmdline, CONNECTIONS, THREADS, RECORDS, DEPTH, LATENCY_CONNECTIONS, LATENCY_QPS, TIME) for line in mutilate: if line is None: break if line[0] not in '01234567890 #': continue print line[:-1]
def bench(args, server, clients, numa_node, power, freq, corelist, htlist, backlist): core_count = len(corelist) ht_count = len(htlist) corelist = sorted(corelist + htlist) mask = reduce(lambda x,y:x|1<<int(y),corelist,0) with bench_common.ProcessManager() as proc_manager: if args.target == 'linux': port = LINUX_PORT corelist_str = ','.join(map(str, corelist)) proc_manager.spawn(server, 'stdbuf -o0 -e0 numactl -m %(numa_node)d %(DIR)s/memcached -k -Mm 1024 -c 4096 -b 8192 -t %(count)d -T %(cores)s' % { 'DIR': DIR, 'numa_node': numa_node, 'count': len(corelist), 'cores': corelist_str }, 'kill {pid}') bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), port) elif args.target == 'ix': port = IX_PORT channel, pid = proc_manager.spawn(server, 'sudo stdbuf -o0 -e0 %(DIR)s/ix -c /etc/ix.conf -- %(DIR)s/memcached -k -Mm 1024 -c 4096 -o hashpower=20' % { 'DIR': DIR }, 'sudo kill {pid}') bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), port) server.run(shlex.split('sudo sh -c "rm -f %(DIR)s/block-*.fifo"' % { 'DIR': DIR })) corelist = ','.join(map(str, corelist)) server.run(shlex.split('sudo %(DIR)s/ixcp.py --cpulist %(cores)s' % { 'DIR': DIR, 'cores': corelist }), cwd = DIR) bench_common.consume(channel) cmdline = ' --server=%s:%d %s --report-stats=1 --qps-function=triangle:10000:15010000:600:0 --stop-latency 99:500' % (bench_common.get_host_ip(server), port, WORKLOADS[args.workload]) mutilate = bench_common.mutilate_benchmark(proc_manager, clients, cmdline, CONNECTIONS, THREADS, RECORDS, DEPTH, LATENCY_CONNECTIONS, LATENCY_QPS, TIME) if args.background: proc, background_pid = proc_manager.spawn(server, 'stdbuf -o0 -e0 taskset -c %(cores)s %(DIR)s/sha1_bench -T %(count)d -s 41943040' % { 'DIR': DIR, 'cores': ','.join(map(str, backlist)), 'count': len(backlist) }, 'kill {pid}') proc.settimeout(1) sha1_bench = proc.makefile('rb') power.start() for line in mutilate: if line is None: break parts = line.split() if len(parts) < 2 or parts[1] != 'read': continue print '%d/%d %08x %d' % (core_count, ht_count, mask, freq), print line[:-1], if args.target == 'linux': print power.read(), elif args.target == 'ix': print server.run(shlex.split('sudo %(DIR)s/ixcp.py --print-power' % { 'DIR': DIR })).output[:-1], if args.background: server.run(shlex.split('kill -USR1 %d' % (background_pid,))) line = bench_common.readline_retry(sha1_bench)[:-1] parts = line.split() print parts[3] else: print ''
def bench_ix(args, host1, host2): bench_common.deploy(host1, [args.ix + '/dp/ix', args.ix + '/apps/echoserver']) bench_common.deploy(host2, [args.ix + '/dp/ix', args.ix + '/apps/echoclient']) for msg_size in IX_MSG_SIZES: result = 0 try: with bench_common.ProcessManager() as proc_manager: channel, pid = proc_manager.spawn(host1, 'sudo stdbuf -o0 -e0 %(DIR)s/ix -c /etc/ix.conf -- %(DIR)s/echoserver %(msg_size)d 2' % {'DIR' : DIR, 'msg_size': msg_size}, 'sudo kill {pid}') time.sleep(IX_WAIT_TO_BOOT_SECS) bench_common.consume(channel) clients = bench_common.Clients(proc_manager, [host2], 'sudo %(DIR)s/ix -l 0 -c /etc/ix.conf -- %(DIR)s/echoclient %(host)s %(port)d %(msg_size)d' % {'DIR' : DIR, 'host': bench_common.get_host_ip(host1), 'port': IX_PORT, 'msg_size': msg_size}, 'sudo kill {pid}') result = clients.run() finally: print '%d %f' % (msg_size, result)
def bench(target, server, clients, cores, core_count, msg_size, msg_per_conn): result = 0 try: with bench_common.ProcessManager() as proc_manager: if target == 'linux': port = LINUX_PORT core_str = ','.join([str(x) for x in cores[:core_count]]) proc_manager.spawn(server, 'stdbuf -o0 -e0 /tmp/'+getpass.getuser()+'/server %d %s' % (msg_size, core_str), 'kill {pid}') elif target == 'ix': port = IX_PORT channel, pid = proc_manager.spawn(server, 'sudo stdbuf -o0 -e0 /tmp/'+getpass.getuser()+'/ix -c /etc/ix.conf -- /tmp/'+getpass.getuser()+'/echoserver %d' % msg_size, 'sudo kill {pid}') bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), port) proc_manager.run(server, 'sudo sh -c "rm -f /tmp/'+getpass.getuser()+'/block-*.fifo"') proc_manager.run(server, 'sudo /tmp/'+getpass.getuser()+'/ixcp.py --cpus %d' % core_count, cwd = '/tmp/'+getpass.getuser()) bench_common.consume(channel) clients_ = bench_common.Clients(proc_manager, clients, '/tmp/'+getpass.getuser()+'/client %s %d %d %d %d' % (bench_common.get_host_ip(server), port, CONNECTIONS_PER_CLIENT, msg_size, msg_per_conn), 'kill {pid}') result = clients_.run() except Exception, e: print >>sys.stderr, 'Exception: %r' % e
def main(): parser = argparse.ArgumentParser() parser.add_argument('--target', choices=['linux', 'ix'], required=True) parser.add_argument('--ix') parser.add_argument('--kstats', action='store_true') parser.add_argument('server') parser.add_argument('client', nargs='+') args = parser.parse_args() server = spur.SshShell(args.server, missing_host_key = spur.ssh.MissingHostKey.accept) clients = [] for client_name in args.client: clients.append(spur.SshShell(client_name, missing_host_key = spur.ssh.MissingHostKey.accept)) if args.target == 'linux': server_deploy = ['server'] elif args.target == 'ix': server_deploy = [args.ix + '/dp/ix', args.ix + '/apps/echoserver'] bench_common.deploy(server, server_deploy) for client in clients: bench_common.deploy(client, ['client']) cores = bench_common.get_cores(server) with bench_common.ProcessManager() as proc_manager: if args.target == 'linux': port = LINUX_PORT core_str = ','.join([str(x) for x in cores]) proc_manager.spawn(server, '/tmp/'+getpass.getuser()+'/server %d %s' % (DEF_MSG_SIZE, core_str), 'kill {pid}') elif args.target == 'ix': port = IX_PORT channel, pid = proc_manager.spawn(server, 'sudo stdbuf -o0 -e0 /tmp/'+getpass.getuser()+'/ix -c /etc/ix.conf -- /tmp/'+getpass.getuser()+'/echoserver %d 524288' % DEF_MSG_SIZE, 'sudo kill {pid}', ignore_stdout = True) bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), port) bench_common.consume(channel) i = 1.4 while i <= 5.5: connections_per_client = int(10**i) / len(clients) bench(server, clients, connections_per_client, port, len(cores), channel if args.kstats else None) i += 0.2
def main(): parser = argparse.ArgumentParser() parser.add_argument('--ix', required=True) parser.add_argument('--workload', choices=WORKLOADS.keys(), required=True) parser.add_argument('--pattern', choices=PATTERNS.keys(), required=True) parser.add_argument('--with-background-job', action='store_true', dest='background') parser.add_argument('--mutilate', required=True) parser.add_argument('--memcached', required=True) parser.add_argument('--outdir', required=True) parser.add_argument('server') parser.add_argument('client', nargs='+') args = parser.parse_args() if not os.path.exists(args.outdir): os.makedirs(args.outdir) server = spur.SshShell(args.server, missing_host_key=spur.ssh.MissingHostKey.accept) clients = [] for client_name in args.client: clients.append( spur.SshShell(client_name, missing_host_key=spur.ssh.MissingHostKey.accept)) server_deploy = [ args.ix + '/dp/ix', args.ix + '/cp/ixcp.py', args.memcached ] if args.background: server_deploy.append('sha1_bench') bench_common.deploy(server, server_deploy) for client in clients: bench_common.deploy(client, [args.mutilate]) with bench_common.ProcessManager() as proc_manager: channel, pid = proc_manager.spawn( server, 'sudo stdbuf -o0 -e0 %(DIR)s/ix -c /etc/ix.conf -- %(DIR)s/memcached -k -Mm 1024 -c 4096 -o hashpower=20' % {'DIR': DIR}, 'sudo kill {pid}') bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), IX_PORT) bench_common.consume(channel) if args.background: server.run( shlex.split('rm -f %(DIR)s/sha1_bench.control' % {'DIR': DIR})) server.run( shlex.split('mkfifo %(DIR)s/sha1_bench.control' % {'DIR': DIR})) proc, background_pid = proc_manager.spawn( server, 'stdbuf -o0 -e0 %(DIR)s/sha1_bench -T 0 -s 41943040 -c %(DIR)s/sha1_bench.control' % {'DIR': DIR}, 'kill {pid}') proc.settimeout(1) sha1_bench = proc.makefile('rb') server.run(shlex.split('sudo chrt -rap 99 %d' % background_pid)) server.run( shlex.split('sudo sh -c "rm -f %(DIR)s/block-*.fifo"' % {'DIR': DIR})) server.run(shlex.split('sudo %(DIR)s/ixcp.py --cpus 1' % {'DIR': DIR}), cwd=DIR) if args.background: cores = bench_common.get_cores(server) cores = cores[:len(cores) / 2] cores.reverse() cores = ','.join(cores) proc, _ = proc_manager.spawn( server, 'sudo stdbuf -o0 -e0 %(DIR)s/ixcp.py --control back --background-cpus %(cores)s --background-fifo %(DIR)s/sha1_bench.control --background-pid %(background_pid)d' % { 'DIR': DIR, 'cores': cores, 'background_pid': background_pid }, 'sudo kill {pid}', cwd=DIR) proc.settimeout(1) ixcp = proc.makefile('rb') server.run(shlex.split('kill -USR1 %d' % (background_pid, ))) else: proc, _ = proc_manager.spawn( server, 'sudo stdbuf -o0 -e0 %(DIR)s/ixcp.py --control eff' % {'DIR': DIR}, 'sudo kill {pid}', cwd=DIR) proc.settimeout(1) ixcp = proc.makefile('rb') cmdline = ' --server=%s:%d %s --report-stats=1 %s --qps-warmup=%d' % ( bench_common.get_host_ip(server), IX_PORT, WORKLOADS[args.workload], PATTERNS[args.pattern], WARMUP) mutilate = bench_common.mutilate_benchmark(proc_manager, clients, cmdline, CONNECTIONS, THREADS, RECORDS, DEPTH, LATENCY_CONNECTIONS, LATENCY_QPS, TIME) ixcp = bench_common.generator_from_file(ixcp) mutilate_file = open(args.outdir + '/mutilate.out', 'w') ixcp_file = open(args.outdir + '/ixcp.out', 'w') for src, line in bench_common.multiplexer(mutilate, ixcp): if src == 0: if line is None: break print >> mutilate_file, line[:-1], print >> mutilate_file, server.run( shlex.split('sudo %(DIR)s/ixcp.py --print-power' % {'DIR': DIR})).output[:-1], if args.background: server.run( shlex.split('kill -USR1 %d' % (background_pid, ))) line = bench_common.readline_retry(sha1_bench)[:-1] parts = line.split() print >> mutilate_file, parts[3] else: print >> mutilate_file, '' elif src == 1: print >> ixcp_file, line[:-1]
def bench(args, server, clients, numa_node, power, freq, corelist, htlist, backlist): core_count = len(corelist) ht_count = len(htlist) corelist = sorted(corelist + htlist) mask = reduce(lambda x, y: x | 1 << int(y), corelist, 0) with bench_common.ProcessManager() as proc_manager: if args.target == 'linux': port = LINUX_PORT corelist_str = ','.join(map(str, corelist)) proc_manager.spawn( server, 'stdbuf -o0 -e0 numactl -m %(numa_node)d %(DIR)s/memcached -k -Mm 1024 -c 4096 -b 8192 -t %(count)d -T %(cores)s' % { 'DIR': DIR, 'numa_node': numa_node, 'count': len(corelist), 'cores': corelist_str }, 'kill {pid}') bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), port) elif args.target == 'ix': port = IX_PORT channel, pid = proc_manager.spawn( server, 'sudo stdbuf -o0 -e0 %(DIR)s/ix -c /etc/ix.conf -- %(DIR)s/memcached -k -Mm 1024 -c 4096 -o hashpower=20' % {'DIR': DIR}, 'sudo kill {pid}') bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), port) server.run( shlex.split('sudo sh -c "rm -f %(DIR)s/block-*.fifo"' % {'DIR': DIR})) corelist = ','.join(map(str, corelist)) server.run(shlex.split('sudo %(DIR)s/ixcp.py --cpulist %(cores)s' % { 'DIR': DIR, 'cores': corelist }), cwd=DIR) bench_common.consume(channel) cmdline = ' --server=%s:%d %s --report-stats=1 --qps-function=triangle:10000:15010000:600:0 --stop-latency 99:500' % ( bench_common.get_host_ip(server), port, WORKLOADS[args.workload]) mutilate = bench_common.mutilate_benchmark(proc_manager, clients, cmdline, CONNECTIONS, THREADS, RECORDS, DEPTH, LATENCY_CONNECTIONS, LATENCY_QPS, TIME) if args.background: proc, background_pid = proc_manager.spawn( server, 'stdbuf -o0 -e0 taskset -c %(cores)s %(DIR)s/sha1_bench -T %(count)d -s 41943040' % { 'DIR': DIR, 'cores': ','.join(map(str, backlist)), 'count': len(backlist) }, 'kill {pid}') proc.settimeout(1) sha1_bench = proc.makefile('rb') power.start() for line in mutilate: if line is None: break parts = line.split() if len(parts) < 2 or parts[1] != 'read': continue print '%d/%d %08x %d' % (core_count, ht_count, mask, freq), print line[:-1], if args.target == 'linux': print power.read(), elif args.target == 'ix': print server.run( shlex.split('sudo %(DIR)s/ixcp.py --print-power' % {'DIR': DIR})).output[:-1], if args.background: server.run(shlex.split('kill -USR1 %d' % (background_pid, ))) line = bench_common.readline_retry(sha1_bench)[:-1] parts = line.split() print parts[3] else: print ''
def main(): parser = argparse.ArgumentParser() parser.add_argument('--ix', required=True) parser.add_argument('--workload', choices=WORKLOADS.keys(), required=True) parser.add_argument('--pattern', choices=PATTERNS.keys(), required=True) parser.add_argument('--with-background-job', action='store_true', dest='background') parser.add_argument('--mutilate', required=True) parser.add_argument('--memcached', required=True) parser.add_argument('--outdir', required=True) parser.add_argument('server') parser.add_argument('client', nargs='+') args = parser.parse_args() if not os.path.exists(args.outdir): os.makedirs(args.outdir) server = spur.SshShell(args.server, missing_host_key = spur.ssh.MissingHostKey.accept) clients = [] for client_name in args.client: clients.append(spur.SshShell(client_name, missing_host_key = spur.ssh.MissingHostKey.accept)) server_deploy = [args.ix + '/dp/ix', args.ix + '/cp/ixcp.py', args.memcached] if args.background: server_deploy.append('sha1_bench') bench_common.deploy(server, server_deploy) for client in clients: bench_common.deploy(client, [args.mutilate]) with bench_common.ProcessManager() as proc_manager: channel, pid = proc_manager.spawn(server, 'sudo stdbuf -o0 -e0 %(DIR)s/ix -c /etc/ix.conf -- %(DIR)s/memcached -k -Mm 1024 -c 4096 -o hashpower=20' % {'DIR' : DIR}, 'sudo kill {pid}') bench_common.wait_for_network(clients[0], bench_common.get_host_ip(server), IX_PORT) bench_common.consume(channel) if args.background: server.run(shlex.split('rm -f %(DIR)s/sha1_bench.control' % {'DIR' : DIR})) server.run(shlex.split('mkfifo %(DIR)s/sha1_bench.control' % {'DIR' : DIR})) proc, background_pid = proc_manager.spawn(server, 'stdbuf -o0 -e0 %(DIR)s/sha1_bench -T 0 -s 41943040 -c %(DIR)s/sha1_bench.control' % {'DIR' : DIR}, 'kill {pid}') proc.settimeout(1) sha1_bench = proc.makefile('rb') server.run(shlex.split('sudo chrt -rap 99 %d' % background_pid)) server.run(shlex.split('sudo sh -c "rm -f %(DIR)s/block-*.fifo"' % {'DIR' : DIR})) server.run(shlex.split('sudo %(DIR)s/ixcp.py --cpus 1' % {'DIR' : DIR}), cwd = DIR) if args.background: cores = bench_common.get_cores(server) cores = cores[:len(cores)/2] cores.reverse() cores = ','.join(cores) proc, _ = proc_manager.spawn(server, 'sudo stdbuf -o0 -e0 %(DIR)s/ixcp.py --control back --background-cpus %(cores)s --background-fifo %(DIR)s/sha1_bench.control --background-pid %(background_pid)d' % {'DIR' : DIR, 'cores': cores, 'background_pid': background_pid}, 'sudo kill {pid}', cwd = DIR) proc.settimeout(1) ixcp = proc.makefile('rb') server.run(shlex.split('kill -USR1 %d' % (background_pid,))) else: proc, _ = proc_manager.spawn(server, 'sudo stdbuf -o0 -e0 %(DIR)s/ixcp.py --control eff' % {'DIR' : DIR}, 'sudo kill {pid}', cwd = DIR) proc.settimeout(1) ixcp = proc.makefile('rb') cmdline = ' --server=%s:%d %s --report-stats=1 %s --qps-warmup=%d' % (bench_common.get_host_ip(server), IX_PORT, WORKLOADS[args.workload], PATTERNS[args.pattern], WARMUP) mutilate = bench_common.mutilate_benchmark(proc_manager, clients, cmdline, CONNECTIONS, THREADS, RECORDS, DEPTH, LATENCY_CONNECTIONS, LATENCY_QPS, TIME) ixcp = bench_common.generator_from_file(ixcp) mutilate_file = open(args.outdir + '/mutilate.out', 'w') ixcp_file = open(args.outdir + '/ixcp.out', 'w') for src, line in bench_common.multiplexer(mutilate, ixcp): if src == 0: if line is None: break print >>mutilate_file, line[:-1], print >>mutilate_file, server.run(shlex.split('sudo %(DIR)s/ixcp.py --print-power' % {'DIR' : DIR})).output[:-1], if args.background: server.run(shlex.split('kill -USR1 %d' % (background_pid,))) line = bench_common.readline_retry(sha1_bench)[:-1] parts = line.split() print >>mutilate_file, parts[3] else: print >>mutilate_file, '' elif src == 1: print >>ixcp_file, line[:-1]