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(); }
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); }
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); }
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]); } } }
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; }