#!/usr/bin/python from threading import Thread import os, sys, subprocess, time, argparse parser = argparse.ArgumentParser() parser.add_argument("-t", "--threads", type=int, default=1, help="set number of threads") parser.add_argument("-s", "--sublevels", type=int, default=1, help="set number of nested folder sublevels") args = parser.parse_args() class CephFioThread (Thread): def __init__(self, name, prefixes): Thread.__init__(self) self.name = name self.prefixes = prefixes def run(self): for i in range(len(self.prefixes)): os.system("dd if=/dev/zero bs=1024 count=1000000 of=%s/file_1GB_%s" % (self.prefixes[i], self.name)) print ("Thread '" + self.name + "' started write test on folder level " + str(i)) for i in range(len(self.prefixes)): os.system("dd if=%s/file_1GB_%s of=/dev/null bs=1024" % (self.prefixes[i], self.name)) print ("Thread '" + self.name + "' started read test on folder level " + str(i)) #Creazione dei livelli prefixes = [] prefix = "${PWD}" prefixes.append(prefix) for i in range(args.sublevels): prefix = "%s/level_%s" % (prefix, str(i+1)) status = os.system("mkdir %s" % prefix) if status == 0: prefixes.append(prefix) # Creazione dei thread thread_lst = [CephFioThread("Thread#%s" % str(i+1), prefixes) for i in range(args.threads)] # Avvio dei thread for i in range(args.threads): thread_lst[i].start() # Join for i in range(args.threads): thread_lst[i].join() # Fine dello script print("The End")