Skip to content
Snippets Groups Projects
ceph_fs_test.py 1.51 KiB
Newer Older
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")