def fetch_refs_deferred(self, session_id, refs): ciel.log.error('Fetching session %s' % session_id, 'UPLOAD', logging.INFO) try: sync_retrieve_refs(refs, None) self.current_fetches[session_id] = 200 for ref in refs: self.block_store.pin_ref_id(ref.id) except: ciel.log.error('Exception during attempted fetch session %s' % session_id, 'UPLOAD', logging.WARNING, True) self.current_fetches[session_id] = 500 ciel.log.error('Finished session %s, status = %d' % (session_id, self.current_fetches[session_id]), 'UPLOAD', logging.INFO)
def make_graph(task): pdict = task.get_profiling() pref = pdict["profiler_data"] ctx, = sync_retrieve_refs([pref], None) pfilename = ctx.filename cpufile_name = run_command("sar -u -f %s" % pfilename) tmpfile = run_command("sar -n DEV -f %s" % pfilename) netfile_name = run_command("grep eth0 %s" % tmpfile) blockfile_name = run_command("sar -b -f %s" % pfilename) rc('font',**{'family':'sans-serif','sans-serif':['Helvetica'],'serif':['Helvetica'], 'size':10}) #rc('text', usetex=True) rc('figure', figsize=(12,8)) rc('figure.subplot', left=0.1, top=0.9, bottom=0.1) rc('axes', linewidth=1) rc('lines', linewidth=1) xs = [] ys = [] durations = [] with open(cpufile_name) as cpufile: cpuseries = [[process_entry(y.strip()) for y in x.split()] for x in cpufile.readlines()] with open(netfile_name) as netfile: netseries = [[process_entry(y.strip()) for y in x.split()] for x in netfile.readlines()] with open(blockfile_name) as blockfile: blockseries = [[process_entry(y.strip()) for y in x.split()] for x in blockfile.readlines()] xseriesstart = [0,0,0] xseries = [[],[],[]] yseries = [[],[],[],[]] for r in cpuseries: if len (r) < 1 or r[0] is None: continue else: if len(xseries[0]) == 0: xseriesstart[0] = r[0] xseries[0].append(r[0]-xseriesstart[0]) if r[7] is None: yseries[0].append(0) else: yseries[0].append(100.0-r[7]) # CPU idle % for r in netseries: if len (r) < 1 or r[0] is None: continue else: if len(xseries[1]) == 0: xseriesstart[1] = r[0] xseries[1].append(r[0]-xseriesstart[1]) yseries[1].append(r[4]) # recv kB/s yseries[3].append(r[5]) # sent kB/s for r in blockseries: if len (r) < 1 or r[0] is None: continue else: if len(xseries[2]) == 0: xseriesstart[2] = r[0] xseries[2].append(r[0]-xseriesstart[2]) yseries[2].append(r[5]) #fig = plt.figure() #plt.subplots_adjust(wspace=0.2) plt.figure() plt.ylabel('Time') i = 0 for col in ['red', 'red','red']: ax = plt.subplot(3, 1, i+1, frame_on=True) if i == 1: plt.plot(xseries[i], yseries[1], label='recv', color='red') plt.plot(xseries[i], yseries[3], label='sent', color='green') plt.ylabel(r'kB/s', rotation='vertical') plt.legend(loc=0) else: plt.plot(xseries[i], yseries[i], color=col) if i < 2: plt.xticks([]) # plt.yticks([]) # plt.axvline(0, 0, 20, color='k') # plt.axhline(0, 0, color='k') #lbl = plt.ylabel(sys.argv[i][-6:-4]) #lbl.set_rotation(90) if i == 0: plt.ylim(0, 100) plt.ylabel(r'CPU load %', rotation='vertical') # elif i == 1: # plt.ylim(0, 125000000) elif i == 2: plt.ylabel(r'blocks/s', rotation='vertical') #plt.ylim(0, 128000) i += 1 #print ax.axis() #plt.xticks([0, min(durations), max(durations)], ['0', str(int(math.ceil(min(durations)))), str(int(math.ceil(max(durations))))]) plt.xlabel('Time [sec]') with tempfile.NamedTemporaryFile("w", suffix=".svg", delete=False) as t: print t print t.name filename = t.name plt.savefig(filename, format='svg') return filename