def Run(benchmark_spec):
    """Spawn fio and gather the results.

  Args:
    benchmark_spec: The benchmark specification. Contains all data that is
        required to run the benchmark.

  Returns:
    A list of samples in the form of 3 or 4 tuples. The tuples contain
        the sample metric (string), value (float), and unit (string).
        If a 4th element is included, it is a dictionary of sample
        metadata.
  """
    vms = benchmark_spec.vms
    vm = vms[0]
    logging.info('FIO running on %s', vm)
    if FLAGS.against_device:
        file_path = vm_util.PrependTempDir(FLAGS.fio_jobfile)
        fio_command = '--filename=%s %s' % (
            vm.scratch_disks[0].GetDevicePath(), FLAGS.fio_jobfile)
    else:
        file_path = data.ResourcePath(FLAGS.fio_jobfile)
        fio_command = '--directory=%s %s' % (vm.GetScratchDir(),
                                             FLAGS.fio_jobfile)
    fio_command = 'sudo %s --output-format=json %s' % (fio.FIO_PATH,
                                                       fio_command)
    # TODO(user): This only gives results at the end of a job run
    #      so the program pauses here with no feedback to the user.
    #      This is a pretty lousy experience.
    logging.info('FIO Results:')
    stdout, stderr = vm.RemoteCommand(fio_command, should_log=True)
    with open(file_path) as f:
        job_file = f.read()
    return fio.ParseResults(job_file, json.loads(stdout))
示例#2
0
    def RunIt(repeat_number=None,
              minutes_since_start=None,
              total_repeats=None):
        """Run the actual fio command on the VM and save the results.

    Args:
      repeat_number: if given, our number in a sequence of repetitions.
      minutes_since_start: if given, minutes since the start of repetition.
      total_repeats: if given, the total number of repetitions to do.
    """

        if repeat_number:
            logging.info('**** Repetition number %s of %s ****', repeat_number,
                         total_repeats)

        stdout, stderr = vm.RemoteCommand(fio_command, should_log=True)

        if repeat_number:
            base_metadata = {
                'repeat_number': repeat_number,
                'minutes_since_start': minutes_since_start
            }
        else:
            base_metadata = None

        samples.extend(
            fio.ParseResults(job_file_string,
                             json.loads(stdout),
                             base_metadata=base_metadata))
def RunSimulatedDatabase(vm):
  """Spawn fio to simulate database and gather the results.

  Args:
    vm: The vm that synthetic_storage_workloads_benchmark will be run upon.
  Returns:
    A list of sample.Sample objects
  """
  test_size = min(vm.total_memory_kb / 10, 1000000)
  iodepth_list = FLAGS.iodepth_list or DEFAULT_DATABASE_SIMULATION_IODEPTH_LIST
  results = []
  for depth in iodepth_list:
    cmd = (
        '--filesize=10g '
        '--directory=%s '
        '--ioengine=libaio '
        '--filename=fio_test_file '
        '--overwrite=1 '
        '--invalidate=0 '
        '--direct=1 '
        '--randrepeat=0 '
        '--iodepth=%s '
        '--size=%dk '
        '--blocksize=4k ') % (vm.GetScratchDir(),
                              depth,
                              test_size)
    if FLAGS.maxjobs:
      cmd += '--max-jobs=%s ' % FLAGS.maxjobs
    cmd += (
        '--name=random_write '
        '--rw=randwrite '
        '--end_fsync=1 '
        '--name=random_read '
        '--stonewall '
        '--rw=randread '
        '--name=mixed_randrw '
        '--stonewall '
        '--rw=randrw '
        '--rwmixread=90 '
        '--rwmixwrite=10 '
        '--end_fsync=1 ')
    logging.info('FIO Results for simulated %s, iodepth %s', DATABASE, depth)
    res, _ = vm.RemoteCommand('%s %s' % (fio.FIO_CMD_PREFIX, cmd),
                              should_log=True)
    results.extend(
        fio.ParseResults(fio.FioParametersToJob(cmd), json.loads(res)))
  UpdateWorkloadMetadata(results)
  return results
示例#4
0
    def testParseResultsBaseMetadata(self):
        BASE_METADATA = {'foo': 'bar'}

        with mock.patch(fio.__name__ + '.ParseJobFile',
                        return_value={
                            'sequential_write': {},
                            'sequential_read': {},
                            'random_write_test': {},
                            'random_read_test': {},
                            'random_read_test_parallel': {}
                        }):
            results = fio.ParseResults('',
                                       self.result_contents,
                                       base_metadata=BASE_METADATA)

            for result in results:
                self.assertDictContainsSubset(BASE_METADATA, result.metadata)
示例#5
0
 def testParseFioResults(self):
   with mock.patch(
       fio.__name__ + '.ParseJobFile',
       return_value={
           'sequential_write': {},
           'sequential_read': {},
           'random_write_test': {},
           'random_read_test': {},
           'random_read_test_parallel': {}}):
     result = fio.ParseResults('', self.result_contents)
     expected_result = [
         ['sequential_write:write:bandwidth', 68118, 'KB/s',
          {'bw_max': 74454, 'bw_agg': 63936.8,
           'bw_min': 19225, 'bw_dev': 20346.28,
           'bw_mean': 63936.8}],
         ['sequential_write:write:latency', 478737.47, 'usec',
          {'max': 869970, 'stddev': 92629.54, 'min': 189438}],
         ['sequential_read:read:bandwidth', 129836, 'KB/s',
          {'bw_max': 162491, 'bw_agg': 130255.2,
           'bw_min': 115250, 'bw_dev': 18551.37,
           'bw_mean': 130255.2}],
         ['sequential_read:read:latency', 250770.05, 'usec',
          {'max': 528583, 'stddev': 70324.58, 'min': 24361}],
         ['random_write_test:write:bandwidth', 6443, 'KB/s',
          {'bw_max': 7104, 'bw_agg': 6446.55,
           'bw_min': 5896, 'bw_dev': 336.21,
           'bw_mean': 6446.55}],
         ['random_write_test:write:latency', 617.69, 'usec',
          {'max': 81866, 'stddev': 898.09, 'min': 447}],
         ['random_read_test:read:bandwidth', 1269, 'KB/s',
          {'bw_max': 1745, 'bw_agg': 1275.52,
           'bw_min': 330, 'bw_dev': 201.59,
           'bw_mean': 1275.52}],
         ['random_read_test:read:latency', 3146.5, 'usec',
          {'max': 352781, 'stddev': 5114.68, 'min': 6}],
         ['random_read_test_parallel:read:bandwidth', 1292, 'KB/s',
          {'bw_max': 1693, 'bw_agg': 1284.71,
           'bw_min': 795, 'bw_dev': 88.67,
           'bw_mean': 1284.71}],
         ['random_read_test_parallel:read:latency', 198058.86, 'usec',
          {'max': 400119, 'stddev': 21711.26, 'min': 6}]]
     expected_result = [sample.Sample(*sample_tuple)
                        for sample_tuple in expected_result]
     self.assertEqual(result, expected_result)
def RunSimulatedLogging(vm):
  """Spawn fio to simulate logging and gather the results.
  Args:
    vm: The vm that synthetic_storage_workloads_benchmark will be run upon.
  Returns:
    A list of sample.Sample objects
  """
  test_size = vm.total_memory_kb
  cmd = (
      '--filesize=10g '
      '--directory=%s '
      '--ioengine=libaio '
      '--filename=fio_test_file '
      '--invalidate=1 '
      '--randrepeat=0 '
      '--direct=0 '
      '--size=%dk '
      '--iodepth=%d ') % (vm.GetScratchDir(),
                          test_size,
                          DEFAULT_IODEPTH)
  if FLAGS.maxjobs:
    cmd += '--max-jobs=%s ' % FLAGS.maxjobs
  cmd += (
      '--name=sequential_write '
      '--overwrite=0 '
      '--rw=write '
      '--end_fsync=1 '
      '--name=random_read '
      '--size=%dk '
      '--stonewall '
      '--rw=randread '
      '--name=sequential_read '
      '--stonewall '
      '--rw=read ') % (test_size / 10)
  logging.info('FIO Results for simulated %s', LOGGING)
  res, _ = vm.RemoteCommand('%s %s' % (fio.FIO_CMD_PREFIX, cmd),
                            should_log=True)
  results = fio.ParseResults(fio.FioParametersToJob(cmd), json.loads(res))
  UpdateWorkloadMetadata(results)
  return results
示例#7
0
 def testParseFioResults(self):
     with mock.patch(fio.__name__ + '.ParseJobFile',
                     return_value={
                         'sequential_write': {},
                         'sequential_read': {},
                         'random_write_test': {},
                         'random_read_test': {},
                         'random_read_test_parallel': {}
                     }):
         result = fio.ParseResults('', self.result_contents)
         expected_result = [
             [
                 'sequential_write:write:bandwidth', 68118, 'KB/s', {
                     'bw_max': 74454,
                     'bw_agg': 63936.8,
                     'bw_min': 19225,
                     'bw_dev': 20346.28,
                     'bw_mean': 63936.8,
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency', 477734.84, 'usec', {
                     'max': 869891,
                     'stddev': 92609.34,
                     'min': 189263,
                     'mean': 477734.84,
                     'p60': 444416,
                     'p1': 387072,
                     'p99.9': 872448,
                     'p70': 448512,
                     'p5': 440320,
                     'p90': 610304,
                     'p99.95': 872448,
                     'p80': 452608,
                     'p95': 724992,
                     'p10': 440320,
                     'p99.5': 847872,
                     'p99': 823296,
                     'p20': 440320,
                     'p99.99': 872448,
                     'p30': 444416,
                     'p50': 444416,
                     'p40': 444416,
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:min', 189263, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:max', 869891, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:mean', 477734.84, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:stddev', 92609.34, 'usec',
                 {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p1', 387072, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p5', 440320, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p10', 440320, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p20', 440320, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p30', 444416, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p40', 444416, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p50', 444416, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p60', 444416, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p70', 448512, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p80', 452608, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p90', 610304, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p95', 724992, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p99', 823296, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p99.5', 847872, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p99.9', 872448, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p99.95', 872448, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:latency:p99.99', 872448, 'usec', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_write:write:iops', 133, '', {
                     'fio_job': 'sequential_write'
                 }
             ],
             [
                 'sequential_read:read:bandwidth', 129836, 'KB/s', {
                     'bw_max': 162491,
                     'bw_agg': 130255.2,
                     'bw_min': 115250,
                     'bw_dev': 18551.37,
                     'bw_mean': 130255.2,
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency', 250667.06, 'usec', {
                     'max': 528542,
                     'stddev': 70403.40,
                     'min': 24198,
                     'mean': 250667.06,
                     'p60': 268288,
                     'p1': 59136,
                     'p99.9': 528384,
                     'p70': 272384,
                     'p5': 116224,
                     'p90': 292864,
                     'p99.95': 528384,
                     'p80': 280576,
                     'p95': 366592,
                     'p10': 164864,
                     'p99.5': 489472,
                     'p99': 473088,
                     'p20': 199680,
                     'p99.99': 528384,
                     'p30': 246784,
                     'p50': 264192,
                     'p40': 257024,
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:min', 24198, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:max', 528542, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:mean', 250667.06, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:stddev', 70403.40, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p1', 59136, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p5', 116224, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p10', 164864, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p20', 199680, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p30', 246784, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p40', 257024, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p50', 264192, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p60', 268288, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p70', 272384, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p80', 280576, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p90', 292864, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p95', 366592, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p99', 473088, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p99.5', 489472, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p99.9', 528384, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p99.95', 528384, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:latency:p99.99', 528384, 'usec', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'sequential_read:read:iops', 253, '', {
                     'fio_job': 'sequential_read'
                 }
             ],
             [
                 'random_write_test:write:bandwidth', 6443, 'KB/s', {
                     'bw_max': 7104,
                     'bw_agg': 6446.55,
                     'bw_min': 5896,
                     'bw_dev': 336.21,
                     'bw_mean': 6446.55,
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency', 587.02, 'usec', {
                     'max': 81806,
                     'stddev': 897.93,
                     'min': 1,
                     'mean': 587.02,
                     'p60': 524,
                     'p1': 446,
                     'p99.9': 3216,
                     'p70': 532,
                     'p5': 462,
                     'p90': 636,
                     'p99.95': 4128,
                     'p80': 564,
                     'p95': 1064,
                     'p10': 470,
                     'p99.5': 1736,
                     'p99': 1688,
                     'p20': 482,
                     'p99.99': 81408,
                     'p30': 494,
                     'p50': 510,
                     'p40': 502,
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:min', 1, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:max', 81806, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:mean', 587.02, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:stddev', 897.93, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p1', 446, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p5', 462, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p10', 470, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p20', 482, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p30', 494, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p40', 502, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p50', 510, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p60', 524, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p70', 532, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p80', 564, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p90', 636, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p95', 1064, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p99', 1688, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p99.5', 1736, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p99.9', 3216, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p99.95', 4128, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:latency:p99.99', 81408, 'usec', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_write_test:write:iops', 1610, '', {
                     'fio_job': 'random_write_test'
                 }
             ],
             [
                 'random_read_test:read:bandwidth', 1269, 'KB/s', {
                     'bw_max': 1745,
                     'bw_agg': 1275.52,
                     'bw_min': 330,
                     'bw_dev': 201.59,
                     'bw_mean': 1275.52,
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency', 3117.62, 'usec', {
                     'max': 352736,
                     'stddev': 5114.37,
                     'min': 0,
                     'mean': 3117.62,
                     'p60': 3312,
                     'p1': 524,
                     'p99.9': 6880,
                     'p70': 3344,
                     'p5': 588,
                     'p90': 3408,
                     'p99.95': 11840,
                     'p80': 3376,
                     'p95': 3440,
                     'p10': 2544,
                     'p99.5': 4128,
                     'p99': 3728,
                     'p20': 3152,
                     'p99.99': 354304,
                     'p30': 3216,
                     'p50': 3280,
                     'p40': 3248,
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:min', 0, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:max', 352736, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:mean', 3117.62, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:stddev', 5114.37, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p1', 524, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p5', 588, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p10', 2544, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p20', 3152, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p30', 3216, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p40', 3248, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p50', 3280, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p60', 3312, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p70', 3344, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p80', 3376, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p90', 3408, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p95', 3440, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p99', 3728, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p99.5', 4128, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p99.9', 6880, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p99.95', 11840, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:latency:p99.99', 354304, 'usec', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test:read:iops', 317, '', {
                     'fio_job': 'random_read_test'
                 }
             ],
             [
                 'random_read_test_parallel:read:bandwidth', 1292, 'KB/s', {
                     'bw_max': 1693,
                     'bw_agg': 1284.71,
                     'bw_min': 795,
                     'bw_dev': 88.67,
                     'bw_mean': 1284.71,
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency', 198030.44,
                 'usec', {
                     'max': 400078,
                     'stddev': 21709.40,
                     'min': 0,
                     'mean': 198030.44,
                     'p60': 199680,
                     'p1': 65280,
                     'p99.9': 370688,
                     'p70': 203776,
                     'p5': 189440,
                     'p90': 205824,
                     'p99.95': 387072,
                     'p80': 203776,
                     'p95': 209920,
                     'p10': 189440,
                     'p99.5': 257024,
                     'p99': 209920,
                     'p20': 193536,
                     'p99.99': 399360,
                     'p30': 197632,
                     'p50': 199680,
                     'p40': 197632,
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:min', 0, 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:max', 400078,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:mean', 198030.44,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:stddev', 21709.40,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p1', 65280, 'usec',
                 {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p5', 189440,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p10', 189440,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p20', 193536,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p30', 197632,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p40', 197632,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p50', 199680,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p60', 199680,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p70', 203776,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p80', 203776,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p90', 205824,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p95', 209920,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p99', 209920,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p99.5', 257024,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p99.9', 370688,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p99.95', 387072,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:latency:p99.99', 399360,
                 'usec', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ],
             [
                 'random_read_test_parallel:read:iops', 323, '', {
                     'fio_job': 'random_read_test_parallel'
                 }
             ]
         ]
         expected_result = [
             sample.Sample(*sample_tuple)
             for sample_tuple in expected_result
         ]
         self.assertSampleListsEqualUpToTimestamp(result, expected_result)
示例#8
0
 def testParseFioResults(self):
     with mock.patch(fio.__name__ + '.ParseJobFile',
                     return_value={
                         'sequential_write': {},
                         'sequential_read': {},
                         'random_write_test': {},
                         'random_read_test': {},
                         'random_read_test_parallel': {}
                     }):
         result = fio.ParseResults('', self.result_contents)
         expected_result = [
             [
                 'sequential_write:write:bandwidth', 68118, 'KB/s', {
                     'bw_max': 74454,
                     'bw_agg': 63936.8,
                     'bw_min': 19225,
                     'bw_dev': 20346.28,
                     'bw_mean': 63936.8
                 }
             ],
             [
                 'sequential_write:write:latency', 477734.84, 'usec', {
                     'max': 869891,
                     'stddev': 92609.34,
                     'min': 189263
                 }
             ], ['sequential_write:write:iops', 133, '', {}],
             [
                 'sequential_read:read:bandwidth', 129836, 'KB/s', {
                     'bw_max': 162491,
                     'bw_agg': 130255.2,
                     'bw_min': 115250,
                     'bw_dev': 18551.37,
                     'bw_mean': 130255.2
                 }
             ],
             [
                 'sequential_read:read:latency', 250667.06, 'usec', {
                     'max': 528542,
                     'stddev': 70403.40,
                     'min': 24198
                 }
             ], ['sequential_read:read:iops', 253, '', {}],
             [
                 'random_write_test:write:bandwidth', 6443, 'KB/s', {
                     'bw_max': 7104,
                     'bw_agg': 6446.55,
                     'bw_min': 5896,
                     'bw_dev': 336.21,
                     'bw_mean': 6446.55
                 }
             ],
             [
                 'random_write_test:write:latency', 587.02, 'usec', {
                     'max': 81806,
                     'stddev': 897.93,
                     'min': 1
                 }
             ], ['random_write_test:write:iops', 1610, '', {}],
             [
                 'random_read_test:read:bandwidth', 1269, 'KB/s', {
                     'bw_max': 1745,
                     'bw_agg': 1275.52,
                     'bw_min': 330,
                     'bw_dev': 201.59,
                     'bw_mean': 1275.52
                 }
             ],
             [
                 'random_read_test:read:latency', 3117.62, 'usec', {
                     'max': 352736,
                     'stddev': 5114.37,
                     'min': 0
                 }
             ], ['random_read_test:read:iops', 317, '', {}],
             [
                 'random_read_test_parallel:read:bandwidth', 1292, 'KB/s', {
                     'bw_max': 1693,
                     'bw_agg': 1284.71,
                     'bw_min': 795,
                     'bw_dev': 88.67,
                     'bw_mean': 1284.71
                 }
             ],
             [
                 'random_read_test_parallel:read:latency', 198030.44,
                 'usec', {
                     'max': 400078,
                     'stddev': 21709.40,
                     'min': 0
                 }
             ], ['random_read_test_parallel:read:iops', 323, '', {}]
         ]
         expected_result = [
             sample.Sample(*sample_tuple)
             for sample_tuple in expected_result
         ]
         self.assertEqual(result, expected_result)