Beispiel #1
0
        private void RunConsoleTests(string[] args)
        {
            String current_path = "";
            String iometer_path = "";
            String config_file_path = "";
            String drive_letter = "";
            IOmeterWrapper io_meter;

            // Set the current working directory path.
            current_path = Environment.CurrentDirectory;

            // Check for valid command args.
            if (args.Length == 2 && args[1] == "--help")
            {
                ezIOmeter_utility.PrintArgUseage();
                return;
            }

            for (int count = 0; count < args.Length; count++)
            {
                // Get the user specified drive letter.
                if (args[count].ToUpper() == "/D" || args[count].ToUpper() == "\\D")
                    drive_letter = args[count + 1];
            }

            // Set the IOmeter path.
            iometer_path = current_path + "\\IOmeter";

            // Set the settings.conf file path.
            config_file_path = current_path + "\\settings.conf";

            // Initialize IOmeter tool.
            io_meter = new IOmeterWrapper(current_path, iometer_path, config_file_path, new IOmeterWrapper.DisplayMessage(DisplayMessage));

            // Load IOmeter Workloads
            if (!io_meter.LoadIOmeterConfigFiles(current_path + "\\IOmeterConfigFiles"))
            {
                PrintConsoleError(String.Format("Unable to load .icf files from: '{0}'", current_path + "\\IOmeterConfigFiles"));
                return;
            }

            // Run the IOmeter Workloads
            io_meter.RunIOmeterTests(drive_letter);

            // Generate a summary result file.
            io_meter.CreateResultsSummaryFile();
        }
Beispiel #2
0
        private void InitializeEzIOmeter()
        {
            // Initialize IOmeter tool.
            io_meter = new IOmeterWrapper(ezIOmeter_utility.WorkingDirectory, ezIOmeter_utility.IOmeterPath, ezIOmeter_utility.ConfigFilePath, new IOmeterWrapper.DisplayMessage(DisplayMessage));

            // Load IOmeter Workloads
            if (!io_meter.LoadIOmeterConfigFiles(ezIOmeter_utility.IOmeterConfigFilesPath))
                throw new Exception(String.Format("Unable to load .icf files from: '{0}'", ezIOmeter_utility.IOmeterConfigFilesPath));

            // Setup the bucket values.
            ezIOmeter_utility.SetupBuckets(this.Resources, io_meter);

            // Setup the initial workloads.
            ezIOmeter_utility.SetupWorkloads(ResultsToDisplay, io_meter);
        }
Beispiel #3
0
        public void SetupWorkloads(BindingList<Result> results_to_display, IOmeterWrapper io_meter)
        {
            string[] workload_order = io_meter.WorkloadOrder;
            for (int count = 0; count < workload_order.Length; count++)
            {
                // Create a empty result for each workload and in the proper order.
                Result temp_result = new Result();
                temp_result.WorkloadName = workload_order[count];
                temp_result.RunWorkLoad = true;

                results_to_display.Add(temp_result);
            }

            // Show the user the results.
            AddSummaryResults(results_to_display, io_meter);
        }
Beispiel #4
0
 public void AddSummaryResults(BindingList<Result> results_to_display, IOmeterWrapper io_meter)
 {
     // Get Workload Results
     List<Result> temp_results = io_meter.WorkloadResults;
     for (int count = 0; count < temp_results.Count; count++)
     {
         Result temp_result = GetResult(temp_results[count].WorkloadName, results_to_display);
         if (temp_result != null)
         {
             // Update IOps data.
             temp_result.MeanIOps = temp_results[count].MeanIOps;
             temp_result.StdevIOps = temp_results[count].StdevIOps;
             temp_result.MinIOps = temp_results[count].MinIOps;
             temp_result.MaxIOps = temp_results[count].MaxIOps;
             // Update MBps data.
             temp_result.MeanMBps = temp_results[count].MeanMBps;
             temp_result.StdevMBps = temp_results[count].StdevMBps;
             temp_result.MinMBps = temp_results[count].MinMBps;
             temp_result.MaxMBps = temp_results[count].MaxMBps;
             // Update latency data.
             temp_result.Latency = temp_results[count].Latency;
             // Update Thread data
             temp_result.Threads = temp_results[count].Threads;
         }
         else
         {
             // No existing result found so add it to the list.
             results_to_display.Add(temp_results[count]);
         }
     }
 }
Beispiel #5
0
        public void SetupBuckets(ResourceDictionary resource_dictonary, IOmeterWrapper io_meter)
        {
            RangeConverter tempRangeConverter;

            // Setup the Mean IOps Buckets.
            tempRangeConverter = (RangeConverter)resource_dictonary["meanIOps_converter"];
            tempRangeConverter.Bucket0 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("mean_iops_bucket0"));
            tempRangeConverter.Bucket1 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("mean_iops_bucket1"));
            if (io_meter.UserConfigSettings.GetAppSetting("mean_iops_bucket_order") == "backward")
                tempRangeConverter.ReverseOrder = true;

            // Setup the Stdev IOps Buckets.
            tempRangeConverter = (RangeConverter)resource_dictonary["stdevIOps_converter"];
            tempRangeConverter.Bucket0 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("stdev_iops_bucket0"));
            tempRangeConverter.Bucket1 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("stdev_iops_bucket1"));
            if (io_meter.UserConfigSettings.GetAppSetting("stdev_iops_bucket_order") == "backward")
                tempRangeConverter.ReverseOrder = true;

            // Setup the Min IOps Buckets.
            tempRangeConverter = (RangeConverter)resource_dictonary["minIOps_converter"];
            tempRangeConverter.Bucket0 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("min_iops_bucket0"));
            tempRangeConverter.Bucket1 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("min_iops_bucket1"));
            if (io_meter.UserConfigSettings.GetAppSetting("min_iops_bucket_order") == "backward")
                tempRangeConverter.ReverseOrder = true;

            // Setup the Max IOps Buckets.
            tempRangeConverter = (RangeConverter)resource_dictonary["maxIOps_converter"];
            tempRangeConverter.Bucket0 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("max_iops_bucket0"));
            tempRangeConverter.Bucket1 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("max_iops_bucket1"));
            if (io_meter.UserConfigSettings.GetAppSetting("max_iops_bucket_order") == "backward")
                tempRangeConverter.ReverseOrder = true;

            // Setup the MeanMBps Buckets.
            tempRangeConverter = (RangeConverter)resource_dictonary["meanMBps_converter"];
            tempRangeConverter.Bucket0 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("mean_mbps_bucket0"));
            tempRangeConverter.Bucket1 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("mean_mbps_bucket1"));
            if (io_meter.UserConfigSettings.GetAppSetting("mean_mbps_bucket_order") == "backward")
                tempRangeConverter.ReverseOrder = true;

            // Setup the Stdev IOps Buckets.
            tempRangeConverter = (RangeConverter)resource_dictonary["stdevMBps_converter"];
            tempRangeConverter.Bucket0 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("stdev_mbps_bucket0"));
            tempRangeConverter.Bucket1 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("stdev_mbps_bucket1"));
            if (io_meter.UserConfigSettings.GetAppSetting("stdev_mbps_bucket_order") == "backward")
                tempRangeConverter.ReverseOrder = true;

            // Setup the Min IOps Buckets.
            tempRangeConverter = (RangeConverter)resource_dictonary["minMBps_converter"];
            tempRangeConverter.Bucket0 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("min_mbps_bucket0"));
            tempRangeConverter.Bucket1 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("min_mbps_bucket1"));
            if (io_meter.UserConfigSettings.GetAppSetting("min_mbps_bucket_order") == "backward")
                tempRangeConverter.ReverseOrder = true;

            // Setup the Max IOps Buckets.
            tempRangeConverter = (RangeConverter)resource_dictonary["maxMBps_converter"];
            tempRangeConverter.Bucket0 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("max_mbps_bucket0"));
            tempRangeConverter.Bucket1 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("max_mbps_bucket1"));
            if (io_meter.UserConfigSettings.GetAppSetting("max_mbps_bucket_order") == "backward")
                tempRangeConverter.ReverseOrder = true;

            // Setup the Latency Buckets.
            tempRangeConverter = (RangeConverter)resource_dictonary["latency_converter"];
            tempRangeConverter.Bucket0 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("latency_bucket0"));
            tempRangeConverter.Bucket1 = Convert.ToDouble(io_meter.UserConfigSettings.GetAppSetting("latency_bucekt1"));
            if (io_meter.UserConfigSettings.GetAppSetting("latency_bucket_order") == "backward")
                tempRangeConverter.ReverseOrder = true;
        }