Skip to content
Snippets Groups Projects
ceph_fs_test.py 1.51 KiB
Newer Older
  • Learn to ignore specific revisions
  • Fornari's avatar
    Fornari committed
    #!/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")