X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=microbench%2Fparse-results.py;h=cfc826da14dd4688775f60167170b61ea3027d63;hb=HEAD;hp=64a17d3eee93784422a4553747b298d04fcc74e1;hpb=f6edd13c644ec73c0f57aa580514413372ce3f0e;p=bluesky.git diff --git a/microbench/parse-results.py b/microbench/parse-results.py index 64a17d3..cfc826d 100755 --- a/microbench/parse-results.py +++ b/microbench/parse-results.py @@ -1,6 +1,6 @@ #!/usr/bin/python2 -import os, re +import os, re, sys def load_results(prefix): settings_file = open(prefix + ".settings") @@ -31,6 +31,11 @@ def load_results(prefix): return (settings, results) def extract(data, params={}, ty='read', index=0): + if ty == 'mixed': + ty = ('read', 'write') + else: + ty = (ty,) + results = {} for (s, r) in data: match = True @@ -40,26 +45,51 @@ def extract(data, params={}, ty='read', index=0): ops = int(s['BENCH_OPS']) - vals = [x[ty][index] for x in r] - vals = vals[5:] + vs = 0.0 + for t in ty: + vals = [x[t][index] for x in r] + vals = vals[5:] + vs += sum(vals) / (len(vals) or 1) + results[ops] = vs - results[ops] = sum(vals) / len(vals) return results data = [] if __name__ == '__main__': - for f in os.listdir('results'): + dirname = '20110310' + for f in os.listdir(dirname): if f.endswith('.settings'): - data.append(load_results('results/' + f[:-len('.settings')])) + data.append(load_results(dirname + '/' + f[:-len('.settings')])) + +ratios = {'read': '0.0', 'write': '1.0', 'mixed': '0.5'} + +blocksizes = set(int(s[0]['BENCH_BLOCKSIZE']) + or int(s[0]['BENCH_FILESIZE']) + for s in data) +print blocksizes +sizes = set(int(s[0]['BENCH_FILESIZE']) * int(s[0]['BENCH_FILECOUNT']) / 1024**2 + for s in data) +print sizes -for size in [128, 512, 1024, 2048]: - params = {'BLUESKY_TARGET': 'native', 'BENCH_WRITERATIO': '1.0', - 'BENCH_FILECOUNT': str(size / 4)} +for size in sorted(sizes): + for blocksize in sorted(blocksizes): + for ratio in ratios: + params = {'BLUESKY_TARGET': 's3:mvrable-bluesky-west', + 'BENCH_WRITERATIO': ratios[ratio], + 'BENCH_FILECOUNT': str(size), + 'BENCH_BLOCKSIZE': str(blocksize)} + basesize = 1 << 20 + if blocksize < basesize: + params['BENCH_BLOCKSIZE'] = str(blocksize) + params['BENCH_FILESIZE'] = str(basesize) + elif blocksize >= basesize: + params['BENCH_BLOCKSIZE'] = str(0) + params['BENCH_FILESIZE'] = str(blocksize) - d0 = extract(data, params, ty='write', index=0) - d1 = extract(data, params, ty='write', index=1) + d0 = extract(data, params, ty=ratio, index=0) + d1 = extract(data, params, ty=ratio, index=1) - fp = open('%s-%d-write.data' % (params['BLUESKY_TARGET'], size), 'w') - for k in sorted(d0.keys()): - fp.write("%d\t%f\t%f\n" % (k, d0[k], d1[k])) - fp.close() + fp = open('%s-%d-%s-%dk.data' % (params['BLUESKY_TARGET'], size, ratio, blocksize / 1024), 'w') + for k in sorted(d0.keys()): + fp.write("%d\t%f\t%f\n" % (k, d0[k], d1[k])) + fp.close()