def makeDroppedJobsSeq(dir, dir2, dictRun, type=["doppedJobsSLA"], type2="internalJobs", where="dispatcher", preset=3, much=1): #Sostanzialmente fa quello che fa makeFilesNoLB ma in più deve normalizzare i valori di droppedJob values1 = sp.getValue(dictRun, dir, type, where, much) values2 = sp.getValue(dictRun, dir, type2, where) #nInternalJobs values3 = dict() for key in values1: if key not in values3: values3[key] = list() for i in range(len(values1[key])): if values2[key][i] == 0: values3[key].append(0) else: values3[key].append(values1[key][i] / values2[key][i]) means = sp.getMeans(values3) sp.makeFile(means, path.join(dir2), where + type[0] + "frattoTotalJobs", preset=preset) files = sp.getFiles(dir2, "frattoTotalJobs.sp") #drawSingle(dir2, files) #drawDouble(dir2, together(files,"_001"),"_001;droppedJobs") #drawDouble(dir2, together(files,"_1"),"_1;droppedJobs") return files
def makeFiles1VSFiles2SF(files1, files2, dir2, valuesFile1, valuesFile2, xlabel=""): files1.sort() files2.sort() #unisce i file di cui vogliamo fare i grafici uniti #creando un file a 3 colonne (rho(x) - values1(y1) - values2(y2)) sp.joinFiles(dir2, files1, files2) #Recupero i files appena creati filesJoin = sp.getFiles(dir2, valuesFile2 + "_1_joined.sp") #Plot dei grafici uniti #thr = [i+1 for i in range(20)] if xlabel == "thr": rho = ["0.2", "0.5", "0.8", "0.9"] for i in rho: p.drawOverlayed(dir2, together(filesJoin, "mul_10-rho_" + str(i) + ";", "joined.sp"), "_" + str(i), valuesFile1, valuesFile2, namex=xlabel) p.drawOverlayed(dir2, together(filesJoin, "mul_001-rho_" + str(i) + ";", "joined.sp"), "_" + str(i), valuesFile1, valuesFile2, namex=xlabel) #drawOverlayed(dir2, together(filesJoin,"mul_001","joined.sp"), "_001", valuesFile1, valuesFile2) elif xlabel == "rho": thr = [i + 1 for i in range(20)] for i in thr: p.drawOverlayed(dir2, together(filesJoin, "mul_10-thr_" + str(i) + ";", "joined.sp"), "_" + str(i), valuesFile1, valuesFile2, namex=xlabel) p.drawOverlayed(dir2, together(filesJoin, "mul_001-thr_" + str(i) + ";", "joined.sp"), "_" + str(i), valuesFile1, valuesFile2, namex=xlabel) #drawOverlayed(dir2, together(filesJoin,"mul_001","joined.sp"), "_001", valuesFile1, valuesFile2) ansca.deleteFiles(filesJoin, dir2)
def makeFilesNoLB(dir, dir2, dictRun, valuesName): #Creo files.sp per valuesName #cioè un file che ha due colonne, la prima con rho e la seconda con i valori delle medie di valuesName ansca.makeFile(dir, dir2, dictRun, valuesName) #recupero i file appena creati files = sp.getFiles(dir2, valuesName + ".sp") #disegno il singolo plot (es. per 1serv20cap) #drawSingle(dir2, files, "rho",valuesName) #disegno i plot uniti (stesso mul, per 1serv e 20serv) #drawDouble(dir2, together(files,"mul_001"),"_001;"+valuesName,x_label="rho",y_label=valuesName,start="MG",end=";") #drawDouble(dir2, together(files,"mul_1"),"_1;"+valuesName,x_label="rho",y_label=valuesName,start="MG",end=";") return files
def makeFiles1VSFiles2(files1, files2, dir2, valuesFile1, valuesFile2, delete=False): files1.sort() files2.sort() sp.joinFiles(dir2, files1, files2) #Recupero i files appena creati filesJoin = sp.getFiles(dir2, valuesFile2 + "_joined.sp") #Plot dei grafici uniti #drawOverlayed(dir2, together(filesJoin,"mul_1","joined.sp"), "_1", valuesFile1, valuesFile2) #drawOverlayed(dir2, together(filesJoin,"mul_001","joined.sp"), "_001", valuesFile1, valuesFile2) if (delete): deleteFiles(filesJoin, dir2) return filesJoin
def makeDroppedJobs(dir, dir2, dictRun, preset=1): values1 = sp.getValue(dictRun, dir, "droppedJobsTotal") values2 = sp.getValue(dictRun, dir, "totalJobs") values3 = dict() for key in values1: if key not in values3: values3[key] = list() for i in range(len(values1[key])): if values2[key][i] == 0: values3[key].append(0) else: values3[key].append(values1[key][i] / values2[key][i]) means = sp.getMeans(values3) sp.makeFile(means, path.join(dir2, split[-2]), "droppedJobsTotalfrattoTotalJobs", preset=preset) files = sp.getFiles(dir2, "frattoTotalJobs.sp") #drawSingle(dir2, files, "rho", "droppedJobs") #drawDouble(dir2, together(files,"mul_001"),"_001;droppedJobs",x_label="rho",y_label="droppedJobs",start="MG",end=";") #drawDouble(dir2, together(files,"mul_1"),"_1;droppedJobs",x_label="rho",y_label="droppedJobs",start="MG",end=";") return files
from scipy.stats import lognorm from scipy.stats import gamma from scipy.optimize import curve_fit import vectorParse as vp import scaParse as sp import analysis_sca as ansca import sys, glob, os from os import path dir = sys.argv[1] #Cartella dei files.sca dir2 = dir if len(sys.argv) <= 2 else sys.argv[ 2] #Se non passata, dir2 = dir. Cartella output #Parse dei file .sca, quindi creazione file .sp (dati in colonna) scaFiles = sp.getFiles(dir, "sca") #Recupero files.sca da dir dictRun = sp.divideByRun( scaFiles) #Divido i file per le run, utile per fare media split = dir.split( "/" ) #splitto per prendere l'ultima parte della directory per fare il nome "1serv20cap" etc, sarà la radice dei file.sp che creerò dopo dir = sys.argv[1] #Cartella dei files.sca dir2 = dir if len(sys.argv) <= 2 else sys.argv[ 2] #Se non passata, dir2 = dir. Cartella output #Parse dei file .sca, quindi creazione file .sp (dati in colonna) scaFiles = sp.getFiles(dir, "sca") #Recupero files.sca da dir dictRun = sp.divideByRun( scaFiles) #Divido i file per le run, utile per fare media
#drawDouble(dir2, together(files,"mul_1"),"_1;droppedJobs",x_label="rho",y_label="droppedJobs",start="MG",end=";") return files #--------------------------------------------- """ Prime analisi - FogNoLB """ dir = sys.argv[1] #Cartella dei files.sca dir2 = dir if len(sys.argv) <= 2 else sys.argv[ 2] #Se non passata, dir2 = dir. Cartella output #Parse dei file .sca, quindi creazione file .sp (dati in colonna) scaFiles = sp.getFiles(dir, "sca") #Recupero files.sca da dir dictRun = sp.divideByRun( scaFiles) #Divido i file per le run, utile per fare media split = dir.split( "/" ) #splitto per prendere l'ultima parte della directory per fare il nome "1serv20cap" etc, sarà la radice dei file.sp che creerò dopo filesResponseTime = makeFilesNoLB(dir, dir2, dictRun, "responseTime") filesRho = makeFilesNoLB(dir, dir2, dictRun, "rho") filesDroppedJobs = makeDroppedJobs(dir, dir2, dictRun) filesBalancerTime = makeFilesNoLB(dir, dir2, dictRun, "avg_balancerTime_1") makeFiles1VSFiles2(filesResponseTime, filesRho, dir2, "responseTime", "rho", True) ansca.makeFiles1VSFiles2(filesDroppedJobs, filesResponseTime, dir2, "droppedJobs", "responseTime", True)
plt.plot(data["x"], data["y"], 'r-', label="time-sharing") # , t, t ** 2, 'bs', t, t ** 3, 'g^') plt.plot(data["x"], data["z"], 'b--', label="No time-sharing") #plt.title(name) plt.xlabel(x_label) plt.ylabel(y_label) plt.legend() plt.savefig(path.join(dir, *["plot", name + ".svg"])) plt.clf() pass """ #TSVSNOTS """ dir = sys.argv[1] #Cartella dei files.sca dir2 = dir if len(sys.argv) <= 2 else sys.argv[2] #Se non passata, dir2 = dir. Cartella output #Parse dei file .sca, quindi creazione file .sp (dati in colonna) scaFiles = sp.getFiles(dir,"sca") #Recupero files.sca da dir dictRun = sp.divideByRun(scaFiles) #Divido i file per le run, utile per fare media split = dir.split("/") #splitto per prendere l'ultima parte della directory per fare il nome "1serv20cap" etc, sarà la radice dei file.sp che creerò dopo respFiles = sp.getFiles(dir,"responseTime.jsp") dropFiles = sp.getFiles(dir,"droppedJobs.jsp") tmp(dir, respFiles[0], "TsVSNoTs-Mul_1-responseTime" ,"rho", "responseTime") tmp(dir, dropFiles[0], "TsVSNoTs-Mul_1-droppedJobs" ,"rho", "droppedJobs")
#plt.title(name) plt.xlabel(x_label) plt.ylabel(y_label) plt.legend() plt.savefig(path.join(dir, *["plot", name + ".svg"])) plt.clf() pass dir = sys.argv[1] #Cartella dei files.sca dir2 = dir if len(sys.argv) <= 2 else sys.argv[ 2] #Se non passata, dir2 = dir. Cartella output #Parse dei file .sca, quindi creazione file .sp (dati in colonna) scaFiles = sp.getFiles(dir, "sca") #Recupero files.sca da dir dictRun = sp.divideByRun( scaFiles) #Divido i file per le run, utile per fare media split = dir.split( "/" ) #splitto per prendere l'ultima parte della directory per fare il nome "1serv20cap" etc, sarà la radice dei file.sp che creerò dopo #Terze Analisi - FogSequentialForward #cartella rho #makeFile(dir, dir2, dictRun, "rho", preset=3) #makeFile(dir, dir2, dictRun, "droppedJobsSLA_class_1", preset=3) ansca.makeFile(dir, dir2, dictRun, "avg_responseTime_1", preset=3) ansca.makeFile(dir, dir2, dictRun, "avg_balancerCount_1", preset=3) ansca.makeFile(dir, dir2, dictRun, "avg_balancerTime_1", preset=3)
import vectorParse as vp import scaParse as sp import analysis_sca as ansca import sys, glob, os from os import path """ #Seconde analisi - QLEN """ dir = sys.argv[1] #Cartella dei files.sca dir2 = dir if len(sys.argv) <= 2 else sys.argv[ 2] #Se non passata, dir2 = dir. Cartella output #Parse dei file .sca, quindi creazione file .sp (dati in colonna) scaFiles = sp.getFiles(dir, "sca") #Recupero files.sca da dir dictRun = sp.divideByRun( scaFiles) #Divido i file per le run, utile per fare media split = dir.split( "/" ) #splitto per prendere l'ultima parte della directory per fare il nome "1serv20cap" etc, sarà la radice dei file.sp che creerò dopo #Creo file di rho/responseTime/dropped jobs in relazione alla q-len makeFile(dir, dir2, dictRun, "rho", preset=2) makeFile(dir, dir2, dictRun, "avg_responseTime_1", preset=2) filesDJ = ansca.makeDroppedJobs(dir, dir2, dictRun, preset=2) #Creo plot dei precedenti file filesRho = sp.getFiles(dir2, "rho.sp") p.drawSingle(dir2, files, x_label="q_len", y_label="rho")