improve parse_disk_log.py

This commit is contained in:
Arvid Norberg
2009-06-03 09:27:47 +00:00
parent c662f1c153
commit d52e040bfa

View File

@@ -28,7 +28,8 @@ else:
out = open('disk_io.dat', 'wb') out = open('disk_io.dat', 'wb')
out2 = open('disk_throughput.dat', 'wb') out2 = open('disk_throughput.dat', 'wb')
state = 'idle' state = 'idle'
time = 0 time = -1
start_time = -1
i = 0 i = 0
state_timer = {} state_timer = {}
throughput = {} throughput = {}
@@ -41,13 +42,20 @@ for l in lines:
continue continue
# try: # try:
new_time = long(l[0]) new_time = long(l[0])
if time == -1:
time = new_time
i = new_time
start_time = new_time
while new_time > i + quantization: while new_time > i + quantization:
i += quantization i += quantization
state_timer[state] += i - time state_timer[state] += i - time
time = i time = i
for k in keys: print >>out, (state_timer[k] / float(quantization) * 100.), for k in keys: print >>out, (state_timer[k] / float(quantization) * 100.),
print >>out print >>out
for k in throughput_keys: print >>out2, throughput[k] / float(quantization), print >>out2, time - start_time,
for k in throughput_keys:
print >>out2, throughput[k] / float(quantization),
print '-- %s %d' % (k, throughput[k])
print >>out2 print >>out2
for k in keys: state_timer[k] = 0 for k in keys: state_timer[k] = 0
for k in throughput_keys: throughput[k] = 0 for k in throughput_keys: throughput[k] = 0
@@ -58,6 +66,19 @@ for l in lines:
throughput[state] += long(l[2]) throughput[state] += long(l[2])
# except: # except:
# print l # print l
i += quantization
state_timer[state] += i - time
time = i
for k in keys: print >>out, (state_timer[k] / float(quantization) * 100.),
print >>out
print >>out2, time - start_time,
for k in throughput_keys:
print >>out2, throughput[k] / float(quantization),
print '-- %s %d' % (k, throughput[k])
print >>out2
for k in keys: state_timer[k] = 0
for k in throughput_keys: throughput[k] = 0
out.close() out.close()
out2.close() out2.close()
@@ -70,7 +91,7 @@ print >>out, 'set ylabel "throughput (kB/s)"'
print >>out, 'plot', print >>out, 'plot',
i = 0 i = 0
for k in throughput_keys: for k in throughput_keys:
print >>out, ' "disk_throughput.dat" using %d title "%s" with lines,' % (i + 1, throughput_keys[i]), print >>out, ' "disk_throughput.dat" using 1:%d title "%s" with lines,' % (i + 1, throughput_keys[i]),
i = i + 1 i = i + 1
print >>out, 'x=0' print >>out, 'x=0'