diff --git a/VERSION b/VERSION
index fa8da2074b..62841113a9 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.5.8
+3.5.9
diff --git a/src/VirtualClient/Archive/Profiles/PERF-GPU-FLOPS.json b/src/VirtualClient/Archive/Profiles/PERF-GPU-FLOPS.json
index b52548db45..1b31421b12 100644
--- a/src/VirtualClient/Archive/Profiles/PERF-GPU-FLOPS.json
+++ b/src/VirtualClient/Archive/Profiles/PERF-GPU-FLOPS.json
@@ -15,7 +15,7 @@
"Type": "DXFLOPSExecutor",
"Parameters": {
"Scenario": "MeasureGPUPerformance",
- "ShaderIterations": 100000,
+ "ShaderIterationCount": 100000,
"Precision": "f32",
"PackageName": "dx_microbenchmarks",
"SupportedPlatforms": "win-x64"
diff --git a/src/VirtualClient/Archive/Source/DXFLOPS/DXFLOPSExecutor.cs b/src/VirtualClient/Archive/Source/DXFLOPS/DXFLOPSExecutor.cs
index 5503f01c8e..3881e88bf5 100644
--- a/src/VirtualClient/Archive/Source/DXFLOPS/DXFLOPSExecutor.cs
+++ b/src/VirtualClient/Archive/Source/DXFLOPS/DXFLOPSExecutor.cs
@@ -1,223 +1,222 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
-
-namespace VirtualClient.Actions
-{
- using System;
- using System.Collections.Generic;
- using System.IO.Abstractions;
- using System.Threading;
- using System.Threading.Tasks;
- using Microsoft.Extensions.DependencyInjection;
- using VirtualClient.Common;
- using VirtualClient.Common.Extensions;
- using VirtualClient.Common.Platform;
- using VirtualClient.Common.Telemetry;
- using VirtualClient.Contracts;
- using VirtualClient.Contracts.Metadata;
-
- ///
- /// Executes the FLOPS workload.
- ///
- [SupportedPlatforms("win-x64,win-arm64")]
- public class DXFLOPSExecutor : VirtualClientComponent
- {
- private IFileSystem fileSystem;
- private ISystemManagement systemManagement;
-
- ///
- /// ConstructorD
- ///
- /// Provides required dependencies to the component.
- /// Parameters defined in the profile or supplied on the command line.
- public DXFLOPSExecutor(IServiceCollection dependencies, IDictionary parameters)
- : base(dependencies, parameters)
- {
- this.fileSystem = dependencies.GetService();
- this.systemManagement = dependencies.GetService();
- }
-
- ///
- /// Number of iterations to run the shader
- ///
- protected int ShaderIterations
- {
- get
- {
- return this.Parameters.GetValue(nameof(this.ShaderIterations), 1000000);
-
- }
- }
-
- ///
- /// Number of threads per block
- ///
- protected int ThreadsPerBlock
- {
- get
- {
- return this.Parameters.GetValue(nameof(this.ThreadsPerBlock), 256);
-
- }
- }
-
- ///
- /// Number of data elements
- ///
- protected int NumDataElements
- {
- get
- {
- return this.Parameters.GetValue(nameof(this.NumDataElements), 1048576);
-
- }
- }
-
- ///
- /// Number of data elements
- ///
- protected string Precision
- {
- get
- {
- return this.Parameters.GetValue(nameof(this.Precision), "f32").ToLower();
- }
- }
-
- ///
- /// Defines the path to the package that contains the workload
- /// executable.
- ///
- protected DependencyPath Package { get; set; }
-
- ///
- /// Path to the workload executable
- ///
- protected string ExecutablePath { get; set; }
-
- ///
- /// Runs the workload
- ///
- protected override Task ExecuteAsync(EventContext telemetryContext, CancellationToken cancellationToken)
- {
- return this.ExecuteWorkloadAsync(telemetryContext, cancellationToken);
- }
-
- ///
- /// Initializes the environment
- ///
- protected override async Task InitializeAsync(EventContext telemetryContext, CancellationToken cancellationToken)
- {
- await this.InitializePackageLocationAsync(cancellationToken)
- .ConfigureAwait(false);
-
- this.ExecutablePath = this.PlatformSpecifics.Combine(this.Package.Path, "Benchmarks", "GPUCore.exe");
- }
-
- private IList CaptureResults(IProcessProxy workloadProcess, string output, EventContext telemetryContext)
- {
- if (workloadProcess.ExitCode == 0)
- {
- DXFLOPSParser resultsParser = new DXFLOPSParser(output);
- return resultsParser.Parse();
- }
- else
- {
- return new List();
- }
-
- }
-
- private Task ExecuteWorkloadAsync(EventContext telemetryContext, CancellationToken cancellationToken)
- {
- IList metrics = new List();
-
- EventContext relatedContext = telemetryContext.Clone()
- .AddContext("executable", this.ExecutablePath);
-
- return this.Logger.LogMessageAsync($"{this.TypeName}.ExecuteWorkload", relatedContext, async () =>
- {
- using (BackgroundOperations profiling = BackgroundOperations.BeginProfiling(this, cancellationToken))
- {
- DateTime startTime = DateTime.UtcNow;
-
- string cmdargs = $"--num_loops 1 --num_loops_in_shader {this.ShaderIterations} --thread_num_per_block {this.ThreadsPerBlock} --num_data_elements {this.NumDataElements} {(this.Precision == "f16" ? "--f16 1" : "--f32 1")}";
- using (IProcessProxy process = this.systemManagement.ProcessManager.CreateProcess(this.ExecutablePath, cmdargs))
- {
- this.CleanupTasks.Add(() => process.SafeKill(this.Logger));
- process.RedirectStandardOutput = true;
- try
- {
- await process.StartAndWaitAsync(cancellationToken).ConfigureAwait(false);
-
- if (!cancellationToken.IsCancellationRequested)
- {
- await this.LogProcessDetailsAsync(process, telemetryContext);
- process.ThrowIfErrored(ProcessProxy.DefaultSuccessCodes, errorReason: ErrorReason.WorkloadFailed);
- string output = process.StandardOutput.ToString();
- foreach (Metric metric in this.CaptureResults(process, output, telemetryContext))
- {
- metrics.Add(metric);
- }
- }
- }
- finally
- {
- if (!process.HasExited)
- {
- process.Kill();
- }
- }
- }
-
- DateTime endTime = DateTime.UtcNow;
-
- this.MetadataContract.AddForScenario(
- "DXFLOPS",
- $"{this.ExecutablePath} {cmdargs}",
- toolVersion: null);
-
- this.MetadataContract.Apply(telemetryContext);
-
- this.Logger.LogMetrics(
- "DXFLOPS",
- "GPU FLOPS",
- startTime,
- endTime,
- metrics,
- null,
- string.Empty,
- this.Tags,
- telemetryContext);
- }
- });
- }
-
- ///
- /// Validates the package installation
- ///
- /// A token that can be used to cancel the operation.
- ///
- ///
- private async Task InitializePackageLocationAsync(CancellationToken cancellationToken)
- {
- if (!cancellationToken.IsCancellationRequested)
- {
- DependencyPath workloadPackage = await this.systemManagement.PackageManager.GetPackageAsync(this.PackageName, CancellationToken.None)
- .ConfigureAwait(false);
-
- if (workloadPackage == null)
- {
- throw new DependencyException(
- $"The expected package '{this.PackageName}' does not exist on the system or is not registered.",
- ErrorReason.WorkloadDependencyMissing);
- }
-
- workloadPackage = this.PlatformSpecifics.ToPlatformSpecificPath(workloadPackage, this.Platform, this.CpuArchitecture);
-
- this.Package = workloadPackage;
- }
- }
-
- }
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
+
+namespace VirtualClient.Actions
+{
+ using System;
+ using System.Collections.Generic;
+ using System.IO.Abstractions;
+ using System.Threading;
+ using System.Threading.Tasks;
+ using Microsoft.Extensions.DependencyInjection;
+ using VirtualClient.Common;
+ using VirtualClient.Common.Extensions;
+ using VirtualClient.Common.Platform;
+ using VirtualClient.Common.Telemetry;
+ using VirtualClient.Contracts;
+ using VirtualClient.Contracts.Metadata;
+
+ ///
+ /// Executes the FLOPS workload.
+ ///
+ [SupportedPlatforms("win-x64,win-arm64")]
+ public class DXFLOPSExecutor : VirtualClientComponent
+ {
+ private IFileSystem fileSystem;
+ private ISystemManagement systemManagement;
+
+ ///
+ /// ConstructorD
+ ///
+ /// Provides required dependencies to the component.
+ /// Parameters defined in the profile or supplied on the command line.
+ public DXFLOPSExecutor(IServiceCollection dependencies, IDictionary parameters)
+ : base(dependencies, parameters)
+ {
+ this.fileSystem = dependencies.GetService();
+ this.systemManagement = dependencies.GetService();
+ }
+
+ ///
+ /// Number of iterations to run the shader
+ ///
+ protected int ShaderIterationCount
+ {
+ get
+ {
+ return this.Parameters.GetValue(nameof(this.ShaderIterationCount), 1000000);
+ }
+ }
+
+ ///
+ /// Number of threads per block
+ ///
+ protected int ThreadsPerBlock
+ {
+ get
+ {
+ return this.Parameters.GetValue(nameof(this.ThreadsPerBlock), 256);
+
+ }
+ }
+
+ ///
+ /// Number of data elements
+ ///
+ protected int NumDataElements
+ {
+ get
+ {
+ return this.Parameters.GetValue(nameof(this.NumDataElements), 1048576);
+
+ }
+ }
+
+ ///
+ /// Number of data elements
+ ///
+ protected string Precision
+ {
+ get
+ {
+ return this.Parameters.GetValue(nameof(this.Precision), "f32").ToLower();
+ }
+ }
+
+ ///
+ /// Defines the path to the package that contains the workload
+ /// executable.
+ ///
+ protected DependencyPath Package { get; set; }
+
+ ///
+ /// Path to the workload executable
+ ///
+ protected string ExecutablePath { get; set; }
+
+ ///
+ /// Runs the workload
+ ///
+ protected override Task ExecuteAsync(EventContext telemetryContext, CancellationToken cancellationToken)
+ {
+ return this.ExecuteWorkloadAsync(telemetryContext, cancellationToken);
+ }
+
+ ///
+ /// Initializes the environment
+ ///
+ protected override async Task InitializeAsync(EventContext telemetryContext, CancellationToken cancellationToken)
+ {
+ await this.InitializePackageLocationAsync(cancellationToken)
+ .ConfigureAwait(false);
+
+ this.ExecutablePath = this.PlatformSpecifics.Combine(this.Package.Path, "Benchmarks", "GPUCore.exe");
+ }
+
+ private IList CaptureResults(IProcessProxy workloadProcess, string output, EventContext telemetryContext)
+ {
+ if (workloadProcess.ExitCode == 0)
+ {
+ DXFLOPSParser resultsParser = new DXFLOPSParser(output);
+ return resultsParser.Parse();
+ }
+ else
+ {
+ return new List();
+ }
+
+ }
+
+ private Task ExecuteWorkloadAsync(EventContext telemetryContext, CancellationToken cancellationToken)
+ {
+ IList metrics = new List();
+
+ EventContext relatedContext = telemetryContext.Clone()
+ .AddContext("executable", this.ExecutablePath);
+
+ return this.Logger.LogMessageAsync($"{this.TypeName}.ExecuteWorkload", relatedContext, async () =>
+ {
+ using (BackgroundOperations profiling = BackgroundOperations.BeginProfiling(this, cancellationToken))
+ {
+ DateTime startTime = DateTime.UtcNow;
+
+ string cmdargs = $"--num_loops 1 --num_loops_in_shader {this.ShaderIterationCount} --thread_num_per_block {this.ThreadsPerBlock} --num_data_elements {this.NumDataElements} {(this.Precision == "f16" ? "--f16 1" : "--f32 1")}";
+ using (IProcessProxy process = this.systemManagement.ProcessManager.CreateProcess(this.ExecutablePath, cmdargs))
+ {
+ this.CleanupTasks.Add(() => process.SafeKill(this.Logger));
+ process.RedirectStandardOutput = true;
+ try
+ {
+ await process.StartAndWaitAsync(cancellationToken).ConfigureAwait(false);
+
+ if (!cancellationToken.IsCancellationRequested)
+ {
+ await this.LogProcessDetailsAsync(process, telemetryContext);
+ process.ThrowIfErrored(ProcessProxy.DefaultSuccessCodes, errorReason: ErrorReason.WorkloadFailed);
+ string output = process.StandardOutput.ToString();
+ foreach (Metric metric in this.CaptureResults(process, output, telemetryContext))
+ {
+ metrics.Add(metric);
+ }
+ }
+ }
+ finally
+ {
+ if (!process.HasExited)
+ {
+ process.Kill();
+ }
+ }
+ }
+
+ DateTime endTime = DateTime.UtcNow;
+
+ this.MetadataContract.AddForScenario(
+ "DXFLOPS",
+ $"{this.ExecutablePath} {cmdargs}",
+ toolVersion: null);
+
+ this.MetadataContract.Apply(telemetryContext);
+
+ this.Logger.LogMetrics(
+ "DXFLOPS",
+ "GPU FLOPS",
+ startTime,
+ endTime,
+ metrics,
+ null,
+ string.Empty,
+ this.Tags,
+ telemetryContext);
+ }
+ });
+ }
+
+ ///
+ /// Validates the package installation
+ ///
+ /// A token that can be used to cancel the operation.
+ ///
+ ///
+ private async Task InitializePackageLocationAsync(CancellationToken cancellationToken)
+ {
+ if (!cancellationToken.IsCancellationRequested)
+ {
+ DependencyPath workloadPackage = await this.systemManagement.PackageManager.GetPackageAsync(this.PackageName, CancellationToken.None)
+ .ConfigureAwait(false);
+
+ if (workloadPackage == null)
+ {
+ throw new DependencyException(
+ $"The expected package '{this.PackageName}' does not exist on the system or is not registered.",
+ ErrorReason.WorkloadDependencyMissing);
+ }
+
+ workloadPackage = this.PlatformSpecifics.ToPlatformSpecificPath(workloadPackage, this.Platform, this.CpuArchitecture);
+
+ this.Package = workloadPackage;
+ }
+ }
+
+ }
}
\ No newline at end of file
diff --git a/src/VirtualClient/TestResources/profiles/PERF-NETWORK-2.json b/src/VirtualClient/TestResources/profiles/PERF-NETWORK-2.json
index aa1ef4fc04..5864ff47d4 100644
--- a/src/VirtualClient/TestResources/profiles/PERF-NETWORK-2.json
+++ b/src/VirtualClient/TestResources/profiles/PERF-NETWORK-2.json
@@ -247,7 +247,7 @@
"ToolName": "CPS",
"Role": "Client",
"PackageName": "networking",
- "Connections": 16,
+ "ConnectionCount": 16,
"TestDuration": "$.Parameters.CpsDuration",
"WarmupTime": "00:01:00",
"Port": "$.Parameters.CpsPort",
diff --git a/src/VirtualClient/VirtualClient.Actions.FunctionalTests/HPLinpackProfileTests.cs b/src/VirtualClient/VirtualClient.Actions.FunctionalTests/HPLinpackProfileTests.cs
index f51512758a..f37fa50a3e 100644
--- a/src/VirtualClient/VirtualClient.Actions.FunctionalTests/HPLinpackProfileTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.FunctionalTests/HPLinpackProfileTests.cs
@@ -203,7 +203,7 @@ private IEnumerable GetProfileExpectedCommands()
["ProblemSizeN"] = "20000",
["BlockSizeNB"] = "256",
["Scenario"] = "ProcessorSpeed",
- ["NumberOfProcesses"] = "2",
+ ["ProcessCount"] = "2",
["BindToCores"] = false
};
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/CtsTraffic/CtsTrafficClientExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/CtsTraffic/CtsTrafficClientExecutorTests.cs
index a07463e294..a9f592eb0a 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/CtsTraffic/CtsTrafficClientExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/CtsTraffic/CtsTrafficClientExecutorTests.cs
@@ -38,8 +38,8 @@ public void SetupTest(PlatformID platform = PlatformID.Win32NT, Architecture arc
["BufferInBytes"] = 36654,
["Pattern"] = "Duplex",
["BytesToTransfer"] = "0x400000000",
- ["Connections"] = 1,
- ["Iterations"] = 1
+ ["ConnectionCount"] = 1,
+ ["IterationCount"] = 1
};
// Setup: Required packages exist on the system.
@@ -112,8 +112,8 @@ public async Task CtsTrafficServerExecutorExecutesExpectedCommandsOnWindowsSyste
$"{ctsTrafficPackage}\\win-{arch}\\StartProcessInNumaNode.exe {executor.NumaNodeIndex} " +
$"\"{ctsTrafficPackage}\\win-{arch}\\ctsTraffic.exe -Target:1.2.3.5 -Consoleverbosity:1 " +
$"-StatusFilename:{ctsTrafficPackage}\\win-{arch}\\Results\\Status.csv -ConnectionFilename:{ctsTrafficPackage}\\win-{arch}\\Results\\Connections.csv " +
- $"-ErrorFileName:{ctsTrafficPackage}\\win-{arch}\\Results\\Errors.txt -Port:{executor.Port} -Connections:{executor.Connections} -Pattern:{executor.Pattern} " +
- $"-Iterations:{executor.Iterations} -Transfer:{executor.BytesToTransfer} -Buffer:{executor.BufferInBytes} -TimeLimit:150000\" --> {ctsTrafficPackage}\\win-{arch}"
+ $"-ErrorFileName:{ctsTrafficPackage}\\win-{arch}\\Results\\Errors.txt -Port:{executor.Port} -Connections:{executor.ConnectionCount} -Pattern:{executor.Pattern} " +
+ $"-Iterations:{executor.IterationCount} -Transfer:{executor.BytesToTransfer} -Buffer:{executor.BufferInBytes} -TimeLimit:150000\" --> {ctsTrafficPackage}\\win-{arch}"
};
this.ProcessManager.OnProcessCreated = (process) =>
@@ -146,8 +146,8 @@ public async Task CtsTrafficServerExecutorExecutesExpectedCommandsOnWindowsSyste
$"{ctsTrafficPackage}\\win-{arch}\\ctsTraffic.exe -Target:1.2.3.5 -Consoleverbosity:1 " +
$"-StatusFilename:{ctsTrafficPackage}\\win-{arch}\\Results\\Status.csv -ConnectionFilename:{ctsTrafficPackage}\\win-{arch}\\Results\\Connections.csv " +
- $"-ErrorFileName:{ctsTrafficPackage}\\win-{arch}\\Results\\Errors.txt -Port:{executor.Port} -Connections:{executor.Connections} -Pattern:{executor.Pattern} " +
- $"-Iterations:{executor.Iterations} -Transfer:{executor.BytesToTransfer} -Buffer:{executor.BufferInBytes} -TimeLimit:150000 --> {ctsTrafficPackage}\\win-{arch}"
+ $"-ErrorFileName:{ctsTrafficPackage}\\win-{arch}\\Results\\Errors.txt -Port:{executor.Port} -Connections:{executor.ConnectionCount} -Pattern:{executor.Pattern} " +
+ $"-Iterations:{executor.IterationCount} -Transfer:{executor.BytesToTransfer} -Buffer:{executor.BufferInBytes} -TimeLimit:150000 --> {ctsTrafficPackage}\\win-{arch}"
};
this.ProcessManager.OnProcessCreated = (process) =>
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/CtsTraffic/CtsTrafficExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/CtsTraffic/CtsTrafficExecutorTests.cs
index f193daf084..7e85d5e680 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/CtsTraffic/CtsTrafficExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/CtsTraffic/CtsTrafficExecutorTests.cs
@@ -37,8 +37,8 @@ public void SetupTest(PlatformID platform = PlatformID.Win32NT, Architecture arc
["SecondaryPort"] = "4444",
["NumaNode"] = 0,
["BufferInBytes"] = 36654,
- ["Connections"] = 1,
- ["Iterations"] = 1,
+ ["ConnectionCount"] = 1,
+ ["IterationCount"] = 1,
["ServerExitLimit"] = 1
};
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/HPLinpack/HPLinpackExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/HPLinpack/HPLinpackExecutorTests.cs
index 96b49ffd88..cf19826085 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/HPLinpack/HPLinpackExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/HPLinpack/HPLinpackExecutorTests.cs
@@ -65,7 +65,7 @@ private void SetupTest(PlatformID platform = PlatformID.Unix, Architecture archi
["ProblemSizeN"] = "20000",
["BlockSizeNB"] = "256",
["Scenario"] = "ProcessorSpeed",
- ["NumberOfProcesses"] = "2"
+ ["ProcessCount"] = "2"
};
}
@@ -97,14 +97,14 @@ await executor.InitializeAsync(EventContext.None, CancellationToken.None)
public void HPLinpackExecutorThrowsOnValidateParametersFailing(PlatformID platform, Architecture architecture)
{
this.SetupTest(platform, architecture);
- this.mockFixture.Parameters["NumberOfProcesses"] = 100;
+ this.mockFixture.Parameters["ProcessCount"] = 100;
using (TestHPLExecutor executor = new TestHPLExecutor(this.mockFixture))
{
WorkloadException exception = Assert.ThrowsAsync(
() => executor.ExecuteAsync(EventContext.None, CancellationToken.None));
Assert.AreEqual(
- $"The 'NumberOfProcesses' parameter value should be less than or equal to number of logical processors on the system.",
+ $"The 'ProcessCount' parameter value should be less than or equal to number of logical processors on the system.",
exception.Message);
}
}
@@ -115,7 +115,7 @@ public void HPLinpackExecutorThrowsOnValidateParametersFailing(PlatformID platfo
public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithNoPerformanceLibrariesOnUnixPlatform(PlatformID platform, Architecture architecture)
{
this.SetupTest(platform, architecture);
- string numProcesses = (this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount).ToString();
+ string processCount = (this.mockFixture.Parameters["ProcessCount"] ?? Environment.ProcessorCount).ToString();
using (TestHPLExecutor executor = new TestHPLExecutor(this.mockFixture))
{
@@ -126,7 +126,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithNoPerformanceLi
$"mv Make.UNKNOWN Make.Linux_GCC",
$"ln -s {this.mockFixture.Combine(this.mockPackage.Path, this.mockFixture.PlatformArchitectureName, "setup", "Make.Linux_GCC" )} Make.Linux_GCC",
$"make arch=Linux_GCC",
- $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {numProcesses} --allow-run-as-root --bind-to core ./xhpl"
+ $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {processCount} --allow-run-as-root --bind-to core ./xhpl"
};
this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) =>
@@ -160,7 +160,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithArmPerformanceL
this.SetupTest(platform, architecture);
this.mockFixture.Parameters["PerformanceLibrary"] = "ARM";
this.mockFixture.Parameters["PerformanceLibraryVersion"] = performanceLibraryVersion;
- string numProcesses = (this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount).ToString();
+ string processCount = (this.mockFixture.Parameters["ProcessCount"] ?? Environment.ProcessorCount).ToString();
using (TestHPLExecutor executor = new TestHPLExecutor(this.mockFixture))
{
@@ -173,7 +173,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithArmPerformanceL
$"mv Make.UNKNOWN Make.Linux_GCC",
$"ln -s {this.mockPackage.Path}/linux-arm64/setup/Make.Linux_GCC Make.Linux_GCC",
$"make arch=Linux_GCC",
- $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {numProcesses} --allow-run-as-root --bind-to core ./xhpl"
+ $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {processCount} --allow-run-as-root --bind-to core ./xhpl"
};
this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) =>
@@ -206,7 +206,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithAmdPerformanceL
this.SetupTest(platform, architecture);
this.mockFixture.Parameters["PerformanceLibrary"] = "AMD";
this.mockFixture.Parameters["PerformanceLibraryVersion"] = $"{performanceLibraryVersion}";
- string numProcesses = (this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount).ToString();
+ string processCount = (this.mockFixture.Parameters["ProcessCount"] ?? Environment.ProcessorCount).ToString();
using (TestHPLExecutor executor = new TestHPLExecutor(this.mockFixture))
{
@@ -219,7 +219,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithAmdPerformanceL
$"mv Make.UNKNOWN Make.Linux_GCC",
$"ln -s {this.mockPackage.Path}/linux-x64/setup/Make.Linux_GCC Make.Linux_GCC",
$"make arch=Linux_GCC",
- $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {numProcesses} --allow-run-as-root --bind-to core ./xhpl"
+ $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {processCount} --allow-run-as-root --bind-to core ./xhpl"
};
this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) =>
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/HammerDB/HammerDBClientExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/HammerDB/HammerDBClientExecutorTests.cs
index c6b91d979b..539093b982 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/HammerDB/HammerDBClientExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/HammerDB/HammerDBClientExecutorTests.cs
@@ -110,7 +110,7 @@ public void SetupDefaultBehavior(PlatformID platform, Architecture architecture)
{ nameof(HammerDBClientExecutor.SuperUserPassword), "pass" },
{ nameof(HammerDBClientExecutor.Workload), "tpcc" },
{ nameof(HammerDBClientExecutor.SQLServer), "postgresql" },
- { nameof(HammerDBClientExecutor.VirtualUsers), "1"},
+ { nameof(HammerDBClientExecutor.VirtualUserCount), "1"},
{ nameof(HammerDBClientExecutor.WarehouseCount), "1"},
{ nameof(HammerDBClientExecutor.Duration), "00:01:00" },
{ "ServerIpAddress", "localhost"},
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Memcached/MemcachedServerExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Memcached/MemcachedServerExecutorTests.cs
index 140f27f46c..1f067fcb47 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Memcached/MemcachedServerExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Memcached/MemcachedServerExecutorTests.cs
@@ -35,12 +35,12 @@ public void SetupDefaults()
{
["Scenario"] = "Memtier_Scenario",
["PackageName"] = this.mockMemcachedPackage.Name,
- ["CommandLine"] = "-p {Port} -t {ServerThreadCount} -m 8192 -c {ServerMaxConnections}",
+ ["CommandLine"] = "-p {Port} -t {ServerThreadCount} -m 8192 -c {MaxServerConnectionCount}",
["BindToCores"] = true,
["Port"] = 6379,
["Username"] = "testuser",
["ServerThreadCount"] = 4,
- ["ServerMaxConnections"] = 4096
+ ["MaxServerConnectionCount"] = 4096
};
this.fixture.SystemManagement.SetupGet(obj => obj.AgentId)
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Memtier/MemtierBenchmarkClientExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Memtier/MemtierBenchmarkClientExecutorTests.cs
index 6d562310cb..fc2fc51055 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Memtier/MemtierBenchmarkClientExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Memtier/MemtierBenchmarkClientExecutorTests.cs
@@ -72,7 +72,7 @@ public void SetupDefaults()
["Scenario"] = "Memtier-Scenario",
["PackageName"] = this.mockPackage.Name,
["CommandLine"] = "--protocol memcache-text --threads 8 --clients 32 --ratio 1:1 --data-size 32 --pipeline 100 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern R:R",
- ["ClientInstances"] = 1,
+ ["ClientInstanceCount"] = 1,
["Duration"] = "00:03:00",
["Username"] = "testuser"
};
@@ -110,6 +110,22 @@ public void SetupDefaults()
.ReturnsAsync(this.mockFixture.CreateHttpResponse(System.Net.HttpStatusCode.OK));
}
+ [Test]
+ public void MemtierBenchmarkClientExecutorSupportsCurrentAndLegacyClientInstanceCountParameters()
+ {
+ this.mockFixture.Parameters.Remove("ClientInstanceCount");
+ this.mockFixture.Parameters["ClientInstances"] = 2;
+
+ using (var executor = new TestMemtierBenchmarkClientExecutor(this.mockFixture.Dependencies, this.mockFixture.Parameters))
+ {
+ Assert.AreEqual(2, executor.ClientInstanceCount);
+
+ executor.Parameters["ClientInstanceCount"] = 3;
+
+ Assert.AreEqual(3, executor.ClientInstanceCount);
+ }
+ }
+
[Test]
public async Task MemtierBenchmarkClientExecutorOnInitializationGetsTheExpectedPackage()
{
@@ -201,7 +217,7 @@ public async Task MemtierBenchmarkClientExecutorExecutesExpectedCommands2ClientI
using (var executor = new TestMemtierBenchmarkClientExecutor(this.mockFixture.Dependencies, this.mockFixture.Parameters))
{
// 2 client instances running in-parallel to target each of the 2 servers
- executor.Parameters[nameof(executor.ClientInstances)] = 2;
+ executor.Parameters[nameof(executor.ClientInstanceCount)] = 2;
executor.Parameters[nameof(executor.MaxClients)] = 6;
executor.Parameters[nameof(executor.MemtierCpuAffinityDelta)] = 1;
@@ -245,7 +261,7 @@ public async Task MemtierBenchmarkClientExecutorExecutesExpectedCommands4ClientI
using (var executor = new TestMemtierBenchmarkClientExecutor(this.mockFixture.Dependencies, this.mockFixture.Parameters))
{
// 4 client instances running in-parallel to target 1 server as the other server will sit idle because MaxClients = 4, If we Set MaxClients >= 8 both the servers will be engaged .
- executor.Parameters[nameof(executor.ClientInstances)] = 4;
+ executor.Parameters[nameof(executor.ClientInstanceCount)] = 4;
executor.Parameters[nameof(executor.MaxClients)] = 4;
executor.Parameters[nameof(executor.MemtierCpuAffinityDelta)] = 1;
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/CPS/CPSClientExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/CPS/CPSClientExecutorTests.cs
index 0b6f7bb7ae..f6cea2371a 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/CPS/CPSClientExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/CPS/CPSClientExecutorTests.cs
@@ -42,7 +42,7 @@ public void SetupTest()
.Returns(true);
this.mockFixture.Parameters["PackageName"] = "Networking";
- this.mockFixture.Parameters["Connections"] = "256";
+ this.mockFixture.Parameters["ConnectionCount"] = "256";
this.mockFixture.Parameters["TestDuration"] = "00:05:00";
this.mockFixture.Parameters["WarmupTime"] = "00:00:30";
this.mockFixture.Parameters["Delaytime"] = "00:00:00";
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/CPS/CPSServerExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/CPS/CPSServerExecutorTests.cs
index 3d7e3681a7..e76958dee5 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/CPS/CPSServerExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/CPS/CPSServerExecutorTests.cs
@@ -59,7 +59,7 @@ public void SetupTest()
.Returns(true);
this.mockFixture.Parameters["PackageName"] = "cps";
- this.mockFixture.Parameters["Connections"] = "256";
+ this.mockFixture.Parameters["ConnectionCount"] = "256";
this.mockFixture.Parameters["TestDuration"] = "00:05:00";
this.mockFixture.Parameters["WarmupTime"] = "00:00:30";
this.mockFixture.Parameters["Delaytime"] = "00:00:00";
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/Latte/LatteClientExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/Latte/LatteClientExecutorTests.cs
index f48068aa68..a8325579b3 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/Latte/LatteClientExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/Latte/LatteClientExecutorTests.cs
@@ -38,7 +38,7 @@ public void SetupTest()
.Returns(true);
this.mockFixture.Parameters["PackageName"] = "Networking";
- this.mockFixture.Parameters["Connections"] = "256";
+ this.mockFixture.Parameters["ConnectionCount"] = "256";
this.mockFixture.Parameters["TestDuration"] = "300";
this.mockFixture.Parameters["WarmupTime"] = "300";
this.mockFixture.Parameters["Protocol"] = "Tcp";
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/Latte/LatteServerExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/Latte/LatteServerExecutorTests.cs
index a01ca710a9..3266c37738 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/Latte/LatteServerExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/Latte/LatteServerExecutorTests.cs
@@ -39,7 +39,7 @@ public void SetupTest()
.Returns(true);
this.mockFixture.Parameters["PackageName"] = "networking";
- this.mockFixture.Parameters["Connections"] = "256";
+ this.mockFixture.Parameters["ConnectionCount"] = "256";
this.mockFixture.Parameters["TestDuration"] = "300";
this.mockFixture.Parameters["WarmupTime"] = "300";
this.mockFixture.Parameters["Protocol"] = "Tcp";
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NTttcp/NTttcpExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NTttcp/NTttcpExecutorTests.cs
index adb6259a0c..4c0542f002 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NTttcp/NTttcpExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NTttcp/NTttcpExecutorTests.cs
@@ -40,7 +40,7 @@ public void SetupTest(PlatformID platform = PlatformID.Unix)
.Returns(true);
this.mockFixture.Parameters["PackageName"] = "networking";
- this.mockFixture.Parameters["Connections"] = "256";
+ this.mockFixture.Parameters["ConnectionCount"] = "256";
this.mockFixture.Parameters["TestDuration"] = "00:05:00";
this.mockFixture.Parameters["WarmupTime"] = "00:05:00";
this.mockFixture.Parameters["Protocol"] = "TCP";
@@ -50,8 +50,8 @@ public void SetupTest(PlatformID platform = PlatformID.Unix)
this.mockFixture.Parameters["Port"] = 5500;
this.mockFixture.Parameters["ReceiverMultiClientMode"] = true;
this.mockFixture.Parameters["SenderLastClient"] = true;
- this.mockFixture.Parameters["ThreadsPerServerPort"] = 2;
- this.mockFixture.Parameters["ConnectionsPerThread"] = 2;
+ this.mockFixture.Parameters["ThreadCountPerServerPort"] = 2;
+ this.mockFixture.Parameters["ConnectionCountPerThread"] = 2;
this.mockFixture.Parameters["DevInterruptsDifferentiator"] = "mlx";
string exampleResults = File.ReadAllText(this.mockFixture.Combine(NTttcpExecutorTests.ExamplesDirectory, "ClientOutput.xml"));
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NTttcp/NTttcpFullDuplexTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NTttcp/NTttcpFullDuplexTests.cs
index d8c046c695..df4e17180c 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NTttcp/NTttcpFullDuplexTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NTttcp/NTttcpFullDuplexTests.cs
@@ -42,7 +42,7 @@ public void SetupTest(PlatformID platform = PlatformID.Unix)
.Returns(true);
this.mockFixture.Parameters["PackageName"] = "networking";
- this.mockFixture.Parameters["Connections"] = "256";
+ this.mockFixture.Parameters["ConnectionCount"] = "256";
this.mockFixture.Parameters["TestDuration"] = "00:05:00";
this.mockFixture.Parameters["WarmupTime"] = "00:05:00";
this.mockFixture.Parameters["Protocol"] = "TCP";
@@ -52,8 +52,8 @@ public void SetupTest(PlatformID platform = PlatformID.Unix)
this.mockFixture.Parameters["Port"] = 5500;
this.mockFixture.Parameters["ReceiverMultiClientMode"] = true;
this.mockFixture.Parameters["SenderLastClient"] = true;
- this.mockFixture.Parameters["ThreadsPerServerPort"] = 2;
- this.mockFixture.Parameters["ConnectionsPerThread"] = 2;
+ this.mockFixture.Parameters["ThreadCountPerServerPort"] = 2;
+ this.mockFixture.Parameters["ConnectionCountPerThread"] = 2;
this.mockFixture.Parameters["DevInterruptsDifferentiator"] = "mlx";
this.mockFixture.Parameters["DuplexMode"] = "Full";
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NetworkPingExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NetworkPingExecutorTests.cs
index f997a559df..196046e863 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NetworkPingExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network/NetworkPingExecutorTests.cs
@@ -106,7 +106,7 @@ public void NetworkPingExecutorResolvesHostNamesAndPrefersIPv4Addresses()
this.mockFixture.Parameters = new Dictionary
{
{ nameof(NetworkPingExecutor.IPAddress), "example.com" },
- { nameof(NetworkPingExecutor.PingIterations), 1 }
+ { nameof(NetworkPingExecutor.PingIterationCount), 1 }
};
IPAddress expectedAddress = IPAddress.Parse("192.0.2.1");
@@ -151,7 +151,7 @@ public void NetworkPingExecutorThrowsWhenTheHostNameCannotBeResolved()
}
[Test]
- public void NetworkPingExecutorUsesDefaultPingIterationsWhenNotSpecified()
+ public void NetworkPingExecutorUsesDefaultPingIterationCountWhenNotSpecified()
{
this.mockFixture.Parameters = new Dictionary
{
@@ -160,7 +160,7 @@ public void NetworkPingExecutorUsesDefaultPingIterationsWhenNotSpecified()
using (NetworkPingExecutor executor = new NetworkPingExecutor(this.mockFixture.Dependencies, this.mockFixture.Parameters))
{
- Assert.AreEqual(50, executor.PingIterations);
+ Assert.AreEqual(50, executor.PingIterationCount);
}
}
@@ -168,17 +168,17 @@ public void NetworkPingExecutorUsesDefaultPingIterationsWhenNotSpecified()
[TestCase(100)]
[TestCase(200)]
[TestCase(500)]
- public void NetworkPingExecutorParsesPingIterationsParameter(int iterations)
+ public void NetworkPingExecutorParsesPingIterationCountParameter(int pingIterationCount)
{
this.mockFixture.Parameters = new Dictionary
{
{ nameof(NetworkPingExecutor.IPAddress), "192.168.1.1" },
- { nameof(NetworkPingExecutor.PingIterations), iterations }
+ { nameof(NetworkPingExecutor.PingIterationCount), pingIterationCount }
};
using (NetworkPingExecutor executor = new NetworkPingExecutor(this.mockFixture.Dependencies, this.mockFixture.Parameters))
{
- Assert.AreEqual(iterations, executor.PingIterations);
+ Assert.AreEqual(pingIterationCount, executor.PingIterationCount);
}
}
@@ -266,21 +266,21 @@ public void NetworkPingExecutorParsesNumericFormatForDuration(int durationSecond
}
[Test]
- public void NetworkPingExecutorSupportsSettingBothDurationAndPingIterations()
+ public void NetworkPingExecutorSupportsSettingBothDurationAndPingIterationCount()
{
- // When Duration is set, it takes precedence over PingIterations
+ // When Duration is set, it takes precedence over PingIterationCount
this.mockFixture.Parameters = new Dictionary
{
{ nameof(NetworkPingExecutor.IPAddress), "192.168.1.1" },
{ nameof(NetworkPingExecutor.Duration), "00:05:00" },
- { nameof(NetworkPingExecutor.PingIterations), 100 }
+ { nameof(NetworkPingExecutor.PingIterationCount), 100 }
};
using (NetworkPingExecutor executor = new NetworkPingExecutor(this.mockFixture.Dependencies, this.mockFixture.Parameters))
{
Assert.IsNotNull(executor.Duration);
Assert.AreEqual(300, executor.Duration.Value.TotalSeconds);
- Assert.AreEqual(100, executor.PingIterations);
+ Assert.AreEqual(100, executor.PingIterationCount);
}
}
@@ -292,14 +292,14 @@ public void NetworkPingExecutorParametersAreConsistentWithProfile()
{
{ nameof(NetworkPingExecutor.IPAddress), "192.168.1.1" },
{ nameof(NetworkPingExecutor.Duration), null },
- { nameof(NetworkPingExecutor.PingIterations), 300 }
+ { nameof(NetworkPingExecutor.PingIterationCount), 300 }
};
using (NetworkPingExecutor executor = new NetworkPingExecutor(this.mockFixture.Dependencies, this.mockFixture.Parameters))
{
Assert.AreEqual("192.168.1.1", executor.IPAddress);
Assert.IsNull(executor.Duration);
- Assert.AreEqual(300, executor.PingIterations);
+ Assert.AreEqual(300, executor.PingIterationCount);
}
}
@@ -312,7 +312,7 @@ public void NetworkPingExecutorThrowsWhenTheTargetNeverRespondsToAnyPing()
this.mockFixture.Parameters = new Dictionary
{
{ nameof(NetworkPingExecutor.IPAddress), "192.168.1.1" },
- { nameof(NetworkPingExecutor.PingIterations), 10 }
+ { nameof(NetworkPingExecutor.PingIterationCount), 10 }
};
using (TestNetworkPingExecutor executor = new TestNetworkPingExecutor(
@@ -326,15 +326,15 @@ public void NetworkPingExecutorThrowsWhenTheTargetNeverRespondsToAnyPing()
}
[Test]
- public void NetworkPingExecutorTerminatesAfterPingIterationsWhenTheTargetNeverResponds()
+ public void NetworkPingExecutorTerminatesAfterPingIterationCountWhenTheTargetNeverResponds()
{
// Regression test for the infinite-loop bug: a timed-out ping must still advance the
- // iteration counter so the loop is bounded by PingIterations (previously a timed-out
+ // iteration counter so the loop is bounded by PingIterationCount (previously a timed-out
// ping decremented the counter, so the loop only ended on a successful ping).
this.mockFixture.Parameters = new Dictionary
{
{ nameof(NetworkPingExecutor.IPAddress), "192.168.1.1" },
- { nameof(NetworkPingExecutor.PingIterations), 15 }
+ { nameof(NetworkPingExecutor.PingIterationCount), 15 }
};
using (TestNetworkPingExecutor executor = new TestNetworkPingExecutor(
@@ -342,7 +342,7 @@ public void NetworkPingExecutorTerminatesAfterPingIterationsWhenTheTargetNeverRe
{
Assert.ThrowsAsync(() => executor.ExecuteAsync(CancellationToken.None));
- // Exactly PingIterations attempts are made and then the loop terminates.
+ // Exactly PingIterationCount attempts are made and then the loop terminates.
Assert.AreEqual(15, executor.SendPingCallCount);
}
}
@@ -353,7 +353,7 @@ public void NetworkPingExecutorCompletesSuccessfullyWhenTheTargetResponds()
this.mockFixture.Parameters = new Dictionary
{
{ nameof(NetworkPingExecutor.IPAddress), "192.168.1.1" },
- { nameof(NetworkPingExecutor.PingIterations), 3 }
+ { nameof(NetworkPingExecutor.PingIterationCount), 3 }
};
using (TestNetworkPingExecutor executor = new TestNetworkPingExecutor(
@@ -361,7 +361,7 @@ public void NetworkPingExecutorCompletesSuccessfullyWhenTheTargetResponds()
{
Assert.DoesNotThrowAsync(() => executor.ExecuteAsync(CancellationToken.None));
- // Each successful ping advances the loop; the loop is bounded by PingIterations.
+ // Each successful ping advances the loop; the loop is bounded by PingIterationCount.
Assert.AreEqual(3, executor.SendPingCallCount);
}
}
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/CPS/CPSClientExecutorTests2.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/CPS/CPSClientExecutorTests2.cs
index d845e48af4..8f53460bba 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/CPS/CPSClientExecutorTests2.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/CPS/CPSClientExecutorTests2.cs
@@ -50,7 +50,7 @@ private void SetupTest(PlatformID platformID, Architecture architecture)
this.mockFixture.Parameters["PackageName"] = "cps";
this.mockFixture.Parameters["Port"] = 3001;
- this.mockFixture.Parameters["Connections"] = 256;
+ this.mockFixture.Parameters["ConnectionCount"] = 256;
this.mockFixture.Parameters["TestDuration"] = "00:05:00";
this.mockFixture.Parameters["WarmupTime"] = "00:00:44";
this.mockFixture.Parameters["Delaytime"] = "00:00:30";
@@ -106,7 +106,7 @@ public async Task CPSClientExecutorSendsExpectedInstructions(PlatformID platform
Assert.AreEqual(stateItem.Definition.Properties["Scenario"], "AnyScenario");
Assert.AreEqual(stateItem.Definition.Properties["Type"], typeof(CPSServerExecutor2).Name);
- Assert.AreEqual(stateItem.Definition.Properties["Connections"], 256);
+ Assert.AreEqual(stateItem.Definition.Properties["ConnectionCount"], 256);
Assert.AreEqual(stateItem.Definition.Properties["Port"], 3001);
Assert.AreEqual(stateItem.Definition.Properties["TestDuration"], "00:05:00");
Assert.AreEqual(stateItem.Definition.Properties["WarmupTime"], "00:00:44");
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/CPS/CPSServerExecutorTests2.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/CPS/CPSServerExecutorTests2.cs
index e9fa669010..4fefaa4803 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/CPS/CPSServerExecutorTests2.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/CPS/CPSServerExecutorTests2.cs
@@ -45,7 +45,7 @@ public void SetupTest(PlatformID platformID, Architecture architecture)
.Returns(true);
this.mockFixture.Parameters["PackageName"] = "cps";
- this.mockFixture.Parameters["Connections"] = 256;
+ this.mockFixture.Parameters["ConnectionCount"] = 256;
this.mockFixture.Parameters["TestDuration"] = "00:05:00";
this.mockFixture.Parameters["WarmupTime"] = "00:00:30";
this.mockFixture.Parameters["Delaytime"] = "00:00:30";
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/Latte/LatteServerExecutorTests2.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/Latte/LatteServerExecutorTests2.cs
index 818c42ef4d..d80746e721 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/Latte/LatteServerExecutorTests2.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/Latte/LatteServerExecutorTests2.cs
@@ -34,7 +34,7 @@ public void SetupTest(PlatformID platformID, Architecture architecture)
.Returns(true);
this.mockFixture.Parameters["PackageName"] = "latte";
- this.mockFixture.Parameters["Connections"] = "256";
+ this.mockFixture.Parameters["ConnectionCount"] = "256";
this.mockFixture.Parameters["TestDuration"] = "00:05:00";
this.mockFixture.Parameters["WarmupTime"] = "00:05:00";
this.mockFixture.Parameters["Protocol"] = "Tcp";
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/NTttcp/NTttcpClientExecutorTests2.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/NTttcp/NTttcpClientExecutorTests2.cs
index cf99daf7e0..5758140af1 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/NTttcp/NTttcpClientExecutorTests2.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Network2/NTttcp/NTttcpClientExecutorTests2.cs
@@ -48,8 +48,8 @@ public void SetupTest(PlatformID platformID, Architecture architecture)
this.mockFixture.Parameters["Port"] = 5500;
this.mockFixture.Parameters["ReceiverMultiClientMode"] = true;
this.mockFixture.Parameters["SenderLastClient"] = true;
- this.mockFixture.Parameters["ThreadsPerServerPort"] = 2;
- this.mockFixture.Parameters["ConnectionsPerThread"] = 2;
+ this.mockFixture.Parameters["ThreadCountPerServerPort"] = 2;
+ this.mockFixture.Parameters["ConnectionCountPerThread"] = 2;
this.mockFixture.Parameters["DevInterruptsDifferentiator"] = "mlx";
string exampleResults = File.ReadAllText(Path.Combine(NTttcpClientExecutorTests2.ExamplesDirectory, "ClientOutput.xml"));
@@ -109,8 +109,8 @@ public async Task NTttcpClientExecutorSendsExpectedInstructions(PlatformID platf
Assert.AreEqual(notification.Definition.Properties["Port"], 5500);
Assert.AreEqual(notification.Definition.Properties["ReceiverMultiClientMode"], true);
Assert.AreEqual(notification.Definition.Properties["SenderLastClient"], true);
- Assert.AreEqual(notification.Definition.Properties["ThreadsPerServerPort"], 2);
- Assert.AreEqual(notification.Definition.Properties["ConnectionsPerThread"], 2);
+ Assert.AreEqual(notification.Definition.Properties["ThreadCountPerServerPort"], 2);
+ Assert.AreEqual(notification.Definition.Properties["ConnectionCountPerThread"], 2);
Assert.AreEqual(notification.Definition.Properties["DevInterruptsDifferentiator"], "mlx");
})
.ReturnsAsync(this.mockFixture.CreateHttpResponse(System.Net.HttpStatusCode.OK));
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/OpenSSL/TlsOpenSslClientExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/OpenSSL/TlsOpenSslClientExecutorTests.cs
index 864b0539df..682e4e977a 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/OpenSSL/TlsOpenSslClientExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/OpenSSL/TlsOpenSslClientExecutorTests.cs
@@ -55,7 +55,7 @@ public void Properties_ReturnExpectedValues(PlatformID platform, Architecture ar
var executor = new TlsOpenSslClientExecutor(this.fixture.Dependencies, this.fixture.Parameters);
Assert.IsNotNull(executor);
- Assert.AreEqual(2, executor.ClientInstances);
+ Assert.AreEqual(2, executor.ClientInstanceCount);
Assert.AreEqual(443, executor.ServerPort);
Assert.IsTrue(executor.WarmUp);
Assert.IsNotNull(executor.Parameters);
@@ -103,7 +103,7 @@ private void SetupEnvironment(PlatformID platform = PlatformID.Unix, Architectur
this.fixture.Parameters = new Dictionary
{
- { "ClientInstances", 2 },
+ { "ClientInstanceCount", 2 },
{ "ServerPort", 443 },
{ "WarmUp", true },
{ "CommandArguments", "s_time -connect :443 -www /test_1k.html -time 30 -ciphersuites TLS_AES_256_GCM_SHA384 -tls1_3" },
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Redis/RedisBenchmarkClientExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Redis/RedisBenchmarkClientExecutorTests.cs
index f56fd6cf69..9f2a390e03 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Redis/RedisBenchmarkClientExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Redis/RedisBenchmarkClientExecutorTests.cs
@@ -42,7 +42,7 @@ public void SetupDefaults()
["Scenario"] = "Redis_Scenario",
["PackageName"] = this.mockPackage.Name,
["CommandLine"] = "-c 8 -d 32 -n 10000 -P 4 -q --csv",
- ["ClientInstances"] = 1,
+ ["ClientInstanceCount"] = 1,
["PipelineDepth"] = 32
};
@@ -219,7 +219,7 @@ public async Task RedisBenchmarkClientExecutorEstablishesTheExpectedClientServer
using (var executor = new TestRedisBenchmarkClientExecutor(this.fixture.Dependencies, this.fixture.Parameters))
{
- executor.Parameters["ClientInstances"] = 2;
+ executor.Parameters["ClientInstanceCount"] = 2;
await executor.ExecuteAsync(CancellationToken.None);
@@ -239,7 +239,7 @@ public async Task RedisBenchmarkClientExecutorEstablishesTheExpectedClientServer
using (var executor = new TestRedisBenchmarkClientExecutor(this.fixture.Dependencies, this.fixture.Parameters))
{
- executor.Parameters["ClientInstances"] = 2;
+ executor.Parameters["ClientInstanceCount"] = 2;
ServerState serverState = new ServerState(new List
{
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Redis/RedisServerExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Redis/RedisServerExecutorTests.cs
index c085431fbf..07c1b46648 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Redis/RedisServerExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Redis/RedisServerExecutorTests.cs
@@ -46,7 +46,7 @@ public void SetupTests()
["CommandLine"] = "--protected-mode no --io-threads {ServerThreadCount} --maxmemory-policy noeviction --ignore-warnings ARM64-COW-BUG --save --daemonize yes",
["BindToCores"] = true,
["Port"] = 6379,
- ["ServerInstances"] = 1,
+ ["ServerInstanceCount"] = 1,
["ServerThreadCount"] = 4,
["IsTLSEnabled"] = false
};
@@ -81,6 +81,22 @@ public async Task RedisServerExecutorConfirmsTheExpectedPackagesOnInitialization
}
}
+ [Test]
+ public void RedisServerExecutorSupportsCurrentAndLegacyServerInstanceCountParameters()
+ {
+ this.fixture.Parameters.Remove("ServerInstanceCount");
+ this.fixture.Parameters["ServerInstances"] = 2;
+
+ using (var executor = new TestRedisServerExecutor(this.fixture.Dependencies, this.fixture.Parameters))
+ {
+ Assert.AreEqual(2, executor.ServerInstanceCount);
+
+ executor.Parameters["ServerInstanceCount"] = 3;
+
+ Assert.AreEqual(3, executor.ServerInstanceCount);
+ }
+ }
+
[Test]
public async Task RedisMemtierServerExecutorExecutesExpectedProcessWhenBindingToCores()
{
@@ -114,7 +130,7 @@ public async Task RedisMemtierServerExecutorExecutesExpectedProcessWhenBindingTo
using (var executor = new TestRedisServerExecutor(this.fixture.Dependencies, this.fixture.Parameters))
{
- executor.Parameters[nameof(executor.ServerInstances)] = 2;
+ executor.Parameters[nameof(executor.ServerInstanceCount)] = 2;
await executor.ExecuteAsync(CancellationToken.None);
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/SPEC/SpecCpu2017ExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/SPEC/SpecCpu2017ExecutorTests.cs
index c9461815a9..f26f41d8e8 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/SPEC/SpecCpu2017ExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/SPEC/SpecCpu2017ExecutorTests.cs
@@ -239,8 +239,8 @@ public async Task SpecCpu2017ExecutorExecutesTheCorrectCommandsWithSpecificBench
{ nameof(SpecCpuExecutor.Benchmarks), "549.fotonik3d_r" },
{ nameof(SpecCpuExecutor.PackageName), "speccpu" },
{ nameof(SpecCpuExecutor.RunPeak), true },
- { nameof(SpecCpuExecutor.Threads), 8 },
- { nameof(SpecCpuExecutor.Copies), 4 }
+ { nameof(SpecCpuExecutor.ThreadCount), 8 },
+ { nameof(SpecCpuExecutor.CopyCount), 4 }
};
int coreCount = Environment.ProcessorCount;
@@ -384,7 +384,7 @@ public async Task SpecCpu2017ExecutorExecutesTheCorrectCommandsWithDifferentProf
{ nameof(SpecCpuExecutor.SpecProfile), "intspeed" },
{ nameof(SpecCpuExecutor.Benchmarks), "intspeed" },
{ nameof(SpecCpuExecutor.PackageName), "speccpu" },
- { nameof(SpecCpuExecutor.Iterations), 1 },
+ { nameof(SpecCpuExecutor.IterationCount), 1 },
{ nameof(SpecCpuExecutor.RunPeak), true }
};
commandCalled = false;
@@ -616,8 +616,8 @@ private void SetupLinux()
{ nameof(SpecCpuExecutor.Benchmarks), "intrate" },
{ nameof(SpecCpuExecutor.PackageName), "speccpu" },
{ nameof(SpecCpuExecutor.RunPeak), true },
- { nameof(SpecCpuExecutor.Threads), 8 },
- { nameof(SpecCpuExecutor.Copies), 4 }
+ { nameof(SpecCpuExecutor.ThreadCount), 8 },
+ { nameof(SpecCpuExecutor.CopyCount), 4 }
};
}
@@ -648,8 +648,8 @@ private void SetupWindows()
{ nameof(SpecCpuExecutor.Benchmarks), "intrate" },
{ nameof(SpecCpuExecutor.PackageName), "speccpu" },
{ nameof(SpecCpuExecutor.RunPeak), true },
- { nameof(SpecCpuExecutor.Threads), 8 },
- { nameof(SpecCpuExecutor.Copies), 4 }
+ { nameof(SpecCpuExecutor.ThreadCount), 8 },
+ { nameof(SpecCpuExecutor.CopyCount), 4 }
};
}
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/SPEC/SpecCpu2026ExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/SPEC/SpecCpu2026ExecutorTests.cs
index e2ca0b54a6..2fa645d328 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/SPEC/SpecCpu2026ExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/SPEC/SpecCpu2026ExecutorTests.cs
@@ -41,6 +41,34 @@ public void SpecCpuStateIsSerializeable()
Assert.AreEqual(true, result.SpecCpuInitialized);
}
+ [Test]
+ public void SpecCpuExecutorSupportsCurrentAndLegacyCountParameters()
+ {
+ this.Setup(PlatformID.Unix);
+ Dictionary parameters = new Dictionary
+ {
+ [nameof(SpecCpuExecutor.RunPeak)] = false,
+ ["Iterations"] = 1,
+ ["Threads"] = 2,
+ ["Copies"] = 3
+ };
+
+ using (TestSpecCpuExecutor executor = new TestSpecCpuExecutor(this.Dependencies, parameters))
+ {
+ Assert.AreEqual(1, executor.IterationCount);
+ Assert.AreEqual(2, executor.ThreadCount);
+ Assert.AreEqual(3, executor.CopyCount);
+
+ executor.Parameters[nameof(executor.IterationCount)] = 4;
+ executor.Parameters[nameof(executor.ThreadCount)] = 5;
+ executor.Parameters[nameof(executor.CopyCount)] = 6;
+
+ Assert.AreEqual(4, executor.IterationCount);
+ Assert.AreEqual(5, executor.ThreadCount);
+ Assert.AreEqual(6, executor.CopyCount);
+ }
+ }
+
[Test]
public async Task SpecCpu2026ExecutorExecutesTheCorrectCommandsWithInstallationInLinux()
{
@@ -67,9 +95,9 @@ public async Task SpecCpu2026ExecutorExecutesTheCorrectCommandsWithInstallationI
{ nameof(SpecCpuExecutor.Benchmarks), "intrate" },
{ nameof(SpecCpuExecutor.PackageName), "speccpu2026" },
{ nameof(SpecCpuExecutor.RunPeak), false },
- { nameof(SpecCpuExecutor.Iterations), 2 },
- { nameof(SpecCpuExecutor.Threads), 8 },
- { nameof(SpecCpuExecutor.Copies), 4 }
+ { nameof(SpecCpuExecutor.IterationCount), 2 },
+ { nameof(SpecCpuExecutor.ThreadCount), 8 },
+ { nameof(SpecCpuExecutor.CopyCount), 4 }
};
List expectedCommands = new List
@@ -351,9 +379,9 @@ private Dictionary CreateParameters(
{ nameof(SpecCpuExecutor.Benchmarks), benchmarks },
{ nameof(SpecCpuExecutor.PackageName), "speccpu2026" },
{ nameof(SpecCpuExecutor.RunPeak), runPeak },
- { nameof(SpecCpuExecutor.Iterations), iterations },
- { nameof(SpecCpuExecutor.Threads), threads },
- { nameof(SpecCpuExecutor.Copies), copies }
+ { nameof(SpecCpuExecutor.IterationCount), iterations },
+ { nameof(SpecCpuExecutor.ThreadCount), threads },
+ { nameof(SpecCpuExecutor.CopyCount), copies }
};
}
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchClientExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchClientExecutorTests.cs
index ece671a88e..7dbb406a3b 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchClientExecutorTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchClientExecutorTests.cs
@@ -131,7 +131,7 @@ public async Task SysbenchClientExecutorUsesDefinedParametersWhenRunningTheWorkl
{
SetupDefaultBehavior();
- this.fixture.Parameters[nameof(SysbenchClientExecutor.Threads)] = "64";
+ this.fixture.Parameters[nameof(SysbenchClientExecutor.ThreadCount)] = "64";
this.fixture.Parameters[nameof(SysbenchClientExecutor.RecordCount)] = "1000";
this.fixture.Parameters[nameof(SysbenchClientExecutor.TableCount)] = "40";
this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseScenario)] = "Configure";
diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchConfigurationTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchConfigurationTests.cs
index 666829b907..335740b7b5 100644
--- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchConfigurationTests.cs
+++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchConfigurationTests.cs
@@ -245,7 +245,7 @@ public void SysbenchConfigurationThrowsWhenPopulationReportsFatalError()
[Test]
public async Task SysbenchConfigurationUsesDefinedParametersWhenRunningTheWorkload()
{
- this.fixture.Parameters[nameof(SysbenchConfiguration.Threads)] = "16";
+ this.fixture.Parameters[nameof(SysbenchConfiguration.ThreadCount)] = "16";
this.fixture.Parameters[nameof(SysbenchConfiguration.RecordCount)] = "1000";
this.fixture.Parameters[nameof(SysbenchConfiguration.TableCount)] = "40";
this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseScenario)] = "Configure";
@@ -399,7 +399,7 @@ public async Task SysbenchConfigurationProperlyExecutesTPCCPreparation()
public async Task SysbenchConfigurationProperlyExecutesTPCCConfigurablePreparation()
{
this.fixture.Parameters[nameof(SysbenchConfiguration.Benchmark)] = "TPCC";
- this.fixture.Parameters[nameof(SysbenchConfiguration.Threads)] = "16";
+ this.fixture.Parameters[nameof(SysbenchConfiguration.ThreadCount)] = "16";
this.fixture.Parameters[nameof(SysbenchConfiguration.WarehouseCount)] = "1000";
this.fixture.Parameters[nameof(SysbenchConfiguration.TableCount)] = "40";
this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseScenario)] = "Configure";
@@ -455,7 +455,7 @@ public async Task SysbenchConfigurationProperlyExecutesTPCCConfigurablePreparati
public async Task SysbenchConfigurationProperlyExecutesPostgreSQLOLTPConfigurablePreparation()
{
this.fixture.Parameters[nameof(SysbenchConfiguration.DatabaseSystem)] = "PostgreSQL";
- this.fixture.Parameters[nameof(SysbenchConfiguration.Threads)] = "16";
+ this.fixture.Parameters[nameof(SysbenchConfiguration.ThreadCount)] = "16";
this.fixture.Parameters[nameof(SysbenchConfiguration.RecordCount)] = "1000";
this.fixture.Parameters[nameof(SysbenchConfiguration.TableCount)] = "40";
this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseScenario)] = "Configure";
@@ -513,7 +513,7 @@ public async Task SysbenchConfigurationProperlyExecutesPostgreSQLTPCCConfigurabl
{
this.fixture.Parameters[nameof(SysbenchConfiguration.DatabaseSystem)] = "PostgreSQL";
this.fixture.Parameters[nameof(SysbenchConfiguration.Benchmark)] = "TPCC";
- this.fixture.Parameters[nameof(SysbenchConfiguration.Threads)] = "16";
+ this.fixture.Parameters[nameof(SysbenchConfiguration.ThreadCount)] = "16";
this.fixture.Parameters[nameof(SysbenchConfiguration.WarehouseCount)] = "1000";
this.fixture.Parameters[nameof(SysbenchConfiguration.TableCount)] = "40";
this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseScenario)] = "Configure";
diff --git a/src/VirtualClient/VirtualClient.Actions/CtsTraffic/CtsTrafficClientExecutor.cs b/src/VirtualClient/VirtualClient.Actions/CtsTraffic/CtsTrafficClientExecutor.cs
index 2fc8dfcc96..8b1fa7951b 100644
--- a/src/VirtualClient/VirtualClient.Actions/CtsTraffic/CtsTrafficClientExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/CtsTraffic/CtsTrafficClientExecutor.cs
@@ -37,22 +37,22 @@ public CtsTrafficClientExecutor(IServiceCollection dependencies, IDictionary
/// Parameter controls the total number of concurrent connections being made by client to the server(s) specified by –Target.
///
- public int Connections
+ public int ConnectionCount
{
get
{
- return this.Parameters.GetValue(nameof(this.Connections), 1);
+ return this.Parameters.GetValue(nameof(this.ConnectionCount), 1);
}
}
///
- /// Parameter controls the number of times ctsTraffic will cycle across all the connections specified with Connections.
+ /// Parameter controls the number of times ctsTraffic will cycle across all the connections specified with ConnectionCount.
///
- public int Iterations
+ public int IterationCount
{
get
{
- return this.Parameters.GetValue(nameof(this.Iterations), 1);
+ return this.Parameters.GetValue(nameof(this.IterationCount), 1);
}
}
@@ -102,7 +102,7 @@ await this.ServerApiClient.PollForExpectedStateAsync(
string ctsTrafficCommandArgs = $"-Target:{targetIPAddress} -Consoleverbosity:1 -StatusFilename:{this.StatusFileName} " +
$@"-ConnectionFilename:{this.ConnectionsFileName} -ErrorFileName:{this.ErrorFileName} -Port:{this.Port} " +
- $@"-Connections:{this.Connections} -Pattern:{this.Pattern} -Iterations:{this.Iterations} -Transfer:{this.BytesToTransfer} " +
+ $@"-Connections:{this.ConnectionCount} -Pattern:{this.Pattern} -Iterations:{this.IterationCount} -Transfer:{this.BytesToTransfer} " +
$@"-Buffer:{this.BufferInBytes} -TimeLimit:150000";
string numaNodeCommandArgs = $@"{this.NumaNodeIndex} ""{this.CtsTrafficExe} {ctsTrafficCommandArgs}""";
diff --git a/src/VirtualClient/VirtualClient.Actions/DotNetRuntime/DotNetRuntimeExecutor.cs b/src/VirtualClient/VirtualClient.Actions/DotNetRuntime/DotNetRuntimeExecutor.cs
index 5e41dd75d5..2b4ec9d7ff 100644
--- a/src/VirtualClient/VirtualClient.Actions/DotNetRuntime/DotNetRuntimeExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/DotNetRuntime/DotNetRuntimeExecutor.cs
@@ -62,24 +62,24 @@ public DotNetRuntimeExecutor(IServiceCollection dependencies, IDictionary
/// The number of JVM(Java Virtual Machine) instances of the DotNetRuntime workload to be intialized.
///
- public string NumberOfJvmInstances
+ public string JvmInstanceCount
{
get
{
- this.Parameters.TryGetValue(nameof(DotNetRuntimeExecutor.NumberOfJvmInstances), out IConvertible numberOfJvmInstances);
- return numberOfJvmInstances?.ToString();
+ this.Parameters.TryGetValue(nameof(DotNetRuntimeExecutor.JvmInstanceCount), out IConvertible jvmInstanceCount);
+ return jvmInstanceCount?.ToString();
}
}
///
/// The number of Warehouses to be intialized.
///
- public string NumberOfWarehouses
+ public string WarehouseCount
{
get
{
- this.Parameters.TryGetValue(nameof(DotNetRuntimeExecutor.NumberOfWarehouses), out IConvertible numberOfWarehouses);
- return numberOfWarehouses?.ToString();
+ this.Parameters.TryGetValue(nameof(DotNetRuntimeExecutor.WarehouseCount), out IConvertible warehouseCount);
+ return warehouseCount?.ToString();
}
}
@@ -192,18 +192,18 @@ protected override async Task InitializeAsync(EventContext telemetryContext, Can
///
private async Task UpdatePropsFile(string propsFilePath)
{
- if (this.NumberOfJvmInstances != null)
+ if (this.JvmInstanceCount != null)
{
await this.ReplaceInFileAsync(
- propsFilePath, @"input.jvm_instances=[0-9]+", $"input.jvm_instances={this.NumberOfJvmInstances}");
+ propsFilePath, @"input.jvm_instances=[0-9]+", $"input.jvm_instances={this.JvmInstanceCount}");
}
- if (this.NumberOfWarehouses != null)
+ if (this.WarehouseCount != null)
{
await this.ReplaceInFileAsync(
propsFilePath,
@"input.sequence_of_number_of_warehouses=[0-9]+",
- $"input.sequence_of_number_of_warehouses={this.NumberOfWarehouses}");
+ $"input.sequence_of_number_of_warehouses={this.WarehouseCount}");
}
if (this.RampUpSeconds != null)
diff --git a/src/VirtualClient/VirtualClient.Actions/HPLinpack/HPLinpackExecutor.cs b/src/VirtualClient/VirtualClient.Actions/HPLinpack/HPLinpackExecutor.cs
index 23e11b060a..435f669952 100644
--- a/src/VirtualClient/VirtualClient.Actions/HPLinpack/HPLinpackExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/HPLinpack/HPLinpackExecutor.cs
@@ -84,11 +84,11 @@ public string BlockSizeNB
///
/// The number of instances of program to start. Defaults to number of logical processor count and can be overwritten from command line.
///
- public int NumberOfProcesses
+ public int ProcessCount
{
get
{
- return this.Parameters.GetValue(nameof(this.NumberOfProcesses), this.cpuInfo.LogicalProcessorCount);
+ return this.Parameters.GetValue(nameof(this.ProcessCount), this.cpuInfo.LogicalProcessorCount);
}
}
@@ -289,11 +289,11 @@ protected override async Task ExecuteAsync(EventContext telemetryContext, Cancel
{
if (this.cpuInfo.IsHyperthreadingEnabled)
{
- this.commandArguments = $"--use-hwthread-cpus -np {this.NumberOfProcesses} --allow-run-as-root";
+ this.commandArguments = $"--use-hwthread-cpus -np {this.ProcessCount} --allow-run-as-root";
}
else
{
- this.commandArguments = $"-np {this.NumberOfProcesses} --allow-run-as-root";
+ this.commandArguments = $"-np {this.ProcessCount} --allow-run-as-root";
}
if (this.BindToCores)
@@ -345,10 +345,10 @@ private void SetParameters(int count)
private void ValidateParameters()
{
- if (this.cpuInfo.IsHyperthreadingEnabled && this.NumberOfProcesses > this.coreCount)
+ if (this.cpuInfo.IsHyperthreadingEnabled && this.ProcessCount > this.coreCount)
{
throw new WorkloadException(
- $"The '{nameof(this.NumberOfProcesses)}' parameter value should be less than or equal to number of logical processors on the system.",
+ $"The '{nameof(this.ProcessCount)}' parameter value should be less than or equal to number of logical processors on the system.",
ErrorReason.InvalidProfileDefinition);
}
}
@@ -514,7 +514,7 @@ private async Task ConfigureDatFileAsync(EventContext telemetryContext, Cancella
else
{
hplDatFile = this.Combine(this.HPLinpackPackagePath, "bin", "Linux_GCC", "HPL.dat");
- this.SetParameters(this.NumberOfProcesses);
+ this.SetParameters(this.ProcessCount);
}
await this.fileSystem.File.ReplaceInFileAsync(hplDatFile, @"([0-9]+\s+)+# of problems sizes", $"1 # of problems sizes", cancellationToken);
diff --git a/src/VirtualClient/VirtualClient.Actions/HammerDB/HammerDBExecutor.cs b/src/VirtualClient/VirtualClient.Actions/HammerDB/HammerDBExecutor.cs
index 6dd5fc023d..97af4a26b2 100644
--- a/src/VirtualClient/VirtualClient.Actions/HammerDB/HammerDBExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/HammerDB/HammerDBExecutor.cs
@@ -95,12 +95,12 @@ public int Port
///
/// Parameter defines the number of virtual users.
///
- public string VirtualUsers
+ public string VirtualUserCount
{
get
{
- this.Parameters.TryGetValue(nameof(HammerDBExecutor.VirtualUsers), out IConvertible virtualUsers);
- return virtualUsers?.ToString(CultureInfo.InvariantCulture);
+ this.Parameters.TryGetValue(nameof(HammerDBExecutor.VirtualUserCount), out IConvertible virtualUserCount);
+ return virtualUserCount?.ToString(CultureInfo.InvariantCulture);
}
}
@@ -348,7 +348,7 @@ private async Task ConfigureCreateHammerDBFile(EventContext telemetryContext, Ca
private Task GenerateCommandLineArguments(CancellationToken cancellationToken)
{
string arguments = $"{this.PlatformSpecifics.Combine(this.HammerDBPackagePath, "configure-workload-generator.py")} --workload {this.Workload} --sqlServer {this.SQLServer} --port {this.Port}" +
- $" --virtualUsers {this.VirtualUsers} --password {this.SuperUserPassword} --dbName {this.DatabaseName} --hostIPAddress {this.ServerIpAddress}";
+ $" --virtualUsers {this.VirtualUserCount} --password {this.SuperUserPassword} --dbName {this.DatabaseName} --hostIPAddress {this.ServerIpAddress}";
if (this.Workload.Equals("tpcc", StringComparison.OrdinalIgnoreCase))
{
diff --git a/src/VirtualClient/VirtualClient.Actions/Memcached/MemcachedServerExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Memcached/MemcachedServerExecutor.cs
index 4520f89a11..2edf061163 100644
--- a/src/VirtualClient/VirtualClient.Actions/Memcached/MemcachedServerExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Memcached/MemcachedServerExecutor.cs
@@ -82,11 +82,11 @@ public int Port
/// Parameter defines the maximum number of connections to set for the
/// server.
///
- public int ServerMaxConnections
+ public int MaxServerConnectionCount
{
get
{
- return this.Parameters.GetValue(nameof(MemcachedServerExecutor.ServerMaxConnections));
+ return this.Parameters.GetValue(nameof(MemcachedServerExecutor.MaxServerConnectionCount));
}
}
@@ -308,7 +308,7 @@ private void StartServerInstances(EventContext telemetryContext, CancellationTok
EventContext relatedContext = telemetryContext.Clone()
.AddContext("port", this.Port)
.AddContext("bindToCores", this.BindToCores)
- .AddContext("serverMaxConnections", this.ServerMaxConnections)
+ .AddContext("maxServerConnectionCount", this.MaxServerConnectionCount)
.AddContext("serverThreadCount", this.ServerThreadCount);
this.Logger.LogMessage($"{this.TypeName}.StartServerInstances", relatedContext, () =>
diff --git a/src/VirtualClient/VirtualClient.Actions/Memtier/MemtierBenchmarkClientExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Memtier/MemtierBenchmarkClientExecutor.cs
index 8993765ab2..735ab129cf 100644
--- a/src/VirtualClient/VirtualClient.Actions/Memtier/MemtierBenchmarkClientExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Memtier/MemtierBenchmarkClientExecutor.cs
@@ -63,11 +63,11 @@ public MemtierBenchmarkClientExecutor(IServiceCollection dependencies, IDictiona
/// Parameter defines the number of Memtier benchmark instances to execute against
/// each server instance. Default = 1.
///
- public int ClientInstances
+ public int ClientInstanceCount
{
get
{
- return this.Parameters.GetValue(nameof(this.ClientInstances), 1);
+ return this.Parameters.GetValue(new string[] { nameof(this.ClientInstanceCount), "ClientInstances" }, 1);
}
}
@@ -446,7 +446,7 @@ private Task ExecuteWorkloadsAsync(IPAddress serverIPAddress, ServerState server
if (maxClients == -1)
{
- maxClients = serverprocesscount * this.ClientInstances;
+ maxClients = serverprocesscount * this.ClientInstanceCount;
}
for (int i = 0; i < serverprocesscount; i++)
@@ -454,13 +454,13 @@ private Task ExecuteWorkloadsAsync(IPAddress serverIPAddress, ServerState server
PortDescription portDescription = serverState.Ports.ElementAt(i);
int serverPort = portDescription.Port;
- // Check if we can run all the ClientInstances for the next Server Process
- if (memtierProcessesCount + this.ClientInstances > maxClients)
+ // Check if we can run all the client instances for the next server process.
+ if (memtierProcessesCount + this.ClientInstanceCount > maxClients)
{
break;
}
- for (int instances = 0; instances < this.ClientInstances; instances++)
+ for (int instances = 0; instances < this.ClientInstanceCount; instances++)
{
memtierCpuAffinity = (memtierCpuAffinity + this.MemtierCpuAffinityDelta) % logicalProcessorCount;
diff --git a/src/VirtualClient/VirtualClient.Actions/Network/NetworkPingExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Network/NetworkPingExecutor.cs
index 42ada8e815..c42e098259 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network/NetworkPingExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network/NetworkPingExecutor.cs
@@ -56,12 +56,12 @@ public string IPAddress
/// Parameter. Defines the number of individual network pings that will be conducted to determine
/// a rollup average on each round of profile action execution.
///
- public int PingIterations
+ public int PingIterationCount
{
get
{
- const int defaultIterations = 50;
- return this.Parameters.GetValue(nameof(NetworkPingExecutor.PingIterations), defaultIterations);
+ const int defaultPingIterationCount = 50;
+ return this.Parameters.GetValue(nameof(NetworkPingExecutor.PingIterationCount), defaultPingIterationCount);
}
}
@@ -190,13 +190,13 @@ private async Task ExecutePingServerAsync(IPAddress ipAddress, EventContext tele
DateTime startTime = DateTime.UtcNow;
Stopwatch blipTimer = Stopwatch.StartNew();
- // Use Duration if specified, otherwise use PingIterations
+ // Use Duration if specified, otherwise use PingIterationCount
DateTime stopTime = startTime.Add(this.Duration ?? TimeSpan.Zero);
while (!cancellationToken.IsCancellationRequested)
{
if ((this.Duration != null && DateTime.UtcNow >= stopTime) ||
- (this.Duration == null && iterations >= this.PingIterations))
+ (this.Duration == null && iterations >= this.PingIterationCount))
{
break;
}
@@ -233,7 +233,7 @@ await this.PingRetryPolicy.ExecuteAsync(async () =>
// iteration counter here. Every ping attempt (successful or not) must advance
// the loop so that a target that never replies cannot spin the loop until the
// overall profile timeout (~hours). The loop is bounded by total attempts
- // (PingIterations) or the configured Duration.
+ // (PingIterationCount) or the configured Duration.
timedOutPings++;
break;
diff --git a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSClientExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSClientExecutor.cs
index 1aa5dff19f..2414b56533 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSClientExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSClientExecutor.cs
@@ -43,8 +43,8 @@ protected override string GetCommandLineArguments()
string clientIPAddress = this.GetLayoutClientInstances(ClientRole.Client).First().IPAddress;
string serverIPAddress = this.GetLayoutClientInstances(ClientRole.Server).First().IPAddress;
- return $"-c -r {this.Connections} " +
- $"{clientIPAddress},0,{serverIPAddress},{this.Port},{this.ConnectionsPerThread},{this.MaxPendingRequestsPerThread},{this.ConnectionDuration},{this.DataTransferMode} " +
+ return $"-c -r {this.ConnectionCount} " +
+ $"{clientIPAddress},0,{serverIPAddress},{this.Port},{this.ConnectionCountPerThread},{this.MaxPendingRequestsPerThread},{this.ConnectionDuration},{this.DataTransferMode} " +
$"-i {this.DisplayInterval} -wt {this.WarmupTime.TotalSeconds} -t {this.TestDuration.TotalSeconds} " +
$"{((this.DelayTime != TimeSpan.Zero) ? $"-ds {this.DelayTime.TotalSeconds}" : string.Empty)} " +
$"{this.AdditionalParams}".Trim();
diff --git a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSExecutor.cs
index f544cca464..bc98472edd 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSExecutor.cs
@@ -50,11 +50,12 @@ public CPSExecutor(IServiceCollection dependencies, IDictionary
/// gets the number of connections value
///
- public int Connections
+ public int ConnectionCount
{
get
{
- return this.Parameters.GetValue(nameof(this.Connections));
+ return this.Parameters.GetValue(
+ new string[] { nameof(this.ConnectionCount), "Connections" });
}
}
@@ -92,14 +93,16 @@ public int DisplayInterval
}
///
- /// ConnectionsPerThread is only for client/sender role.
- /// The ConnectionsPerThread gets the number of connections in each sender thread.
+ /// ConnectionCountPerThread is only for client/sender role.
+ /// The ConnectionCountPerThread gets the number of connections in each sender thread.
///
- public int ConnectionsPerThread
+ public int ConnectionCountPerThread
{
get
{
- return this.Parameters.GetValue(nameof(CPSExecutor.ConnectionsPerThread), 100);
+ return this.Parameters.GetValue(
+ new string[] { nameof(CPSExecutor.ConnectionCountPerThread), "ConnectionsPerThread" },
+ 100);
}
}
diff --git a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSServerExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSServerExecutor.cs
index 8c5a9604cd..500108f8a5 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSServerExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/CPS/CPSServerExecutor.cs
@@ -41,7 +41,7 @@ public CPSServerExecutor(IServiceCollection dependencies, IDictionary
- /// ThreadsPerServerPort is only for client/sender role.
- /// The ThreadsPerServerPort gets the number of threads per each server port.
+ /// ThreadCountPerServerPort is only for client/sender role.
+ /// The ThreadCountPerServerPort gets the number of threads per each server port.
///
- public int? ThreadsPerServerPort
+ public int? ThreadCountPerServerPort
{
get
{
- this.Parameters.TryGetValue(nameof(NetworkingWorkloadExecutor.ThreadsPerServerPort), out IConvertible threadsPerServerPort);
- return threadsPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
+ string parameterName = this.Parameters.ContainsKey(nameof(NetworkingWorkloadExecutor.ThreadCountPerServerPort))
+ ? nameof(NetworkingWorkloadExecutor.ThreadCountPerServerPort)
+ : "ThreadsPerServerPort";
+
+ this.Parameters.TryGetValue(parameterName, out IConvertible threadCountPerServerPort);
+ return threadCountPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
}
}
///
- /// ConnectionsPerThread is only for client/sender role.
- /// The ConnectionsPerThread gets the number of connections in each sender thread.
+ /// ConnectionCountPerThread is only for client/sender role.
+ /// The ConnectionCountPerThread gets the number of connections in each sender thread.
///
- public int? ConnectionsPerThread
+ public int? ConnectionCountPerThread
{
get
{
- this.Parameters.TryGetValue(nameof(NetworkingWorkloadExecutor.ConnectionsPerThread), out IConvertible connectionsPerThread);
- return connectionsPerThread?.ToInt32(CultureInfo.InvariantCulture);
+ string parameterName = this.Parameters.ContainsKey(nameof(NetworkingWorkloadExecutor.ConnectionCountPerThread))
+ ? nameof(NetworkingWorkloadExecutor.ConnectionCountPerThread)
+ : "ConnectionsPerThread";
+
+ this.Parameters.TryGetValue(parameterName, out IConvertible connectionCountPerThread);
+ return connectionCountPerThread?.ToInt32(CultureInfo.InvariantCulture);
}
}
@@ -880,8 +888,8 @@ private string GetLinuxSpecificCommandLine(bool isSender, int port, string resul
$"{(this.Protocol.ToLowerInvariant() == "udp" ? "-u" : string.Empty)} " +
$"{((isSender && this.SenderLastClient == true) ? "-L" : string.Empty)} " +
$"{((!isSender && this.ReceiverMultiClientMode == true) ? "-M" : string.Empty)} " +
- $"{((isSender && this.ThreadsPerServerPort != null) ? $"-n {this.ThreadsPerServerPort}" : string.Empty)} " +
- $"{((isSender && this.ConnectionsPerThread != null) ? $"-l {this.ConnectionsPerThread}" : string.Empty)} " +
+ $"{((isSender && this.ThreadCountPerServerPort != null) ? $"-n {this.ThreadCountPerServerPort}" : string.Empty)} " +
+ $"{((isSender && this.ConnectionCountPerThread != null) ? $"-l {this.ConnectionCountPerThread}" : string.Empty)} " +
$"{(this.NoSyncEnabled == true ? "-N" : string.Empty)} " +
$"{((this.DevInterruptsDifferentiator != null) ? $"--show-dev-interrupts {this.DevInterruptsDifferentiator}" : string.Empty)} " +
$"{(isSender && this.Protocol.ToLowerInvariant() == "tcp" ? "--show-tcp-retrans" : string.Empty)}".Trim();
diff --git a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/NetworkingWorkloadExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/NetworkingWorkloadExecutor.cs
index f5cedd800b..cbf42cb25c 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/NetworkingWorkloadExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/NetworkingWorkloadExecutor.cs
@@ -211,16 +211,18 @@ public int MessageSize
///
/// Parameter defines the number of connections to use in the workload toolset tests.
///
- public int Connections
+ public int ConnectionCount
{
get
{
- return this.Parameters.GetValue(nameof(NetworkingWorkloadExecutor.Connections), 8);
+ return this.Parameters.GetValue(
+ new string[] { nameof(NetworkingWorkloadExecutor.ConnectionCount), "Connections" },
+ 8);
}
set
{
- this.Parameters[nameof(NetworkingWorkloadExecutor.Connections)] = value;
+ this.Parameters[nameof(NetworkingWorkloadExecutor.ConnectionCount)] = value;
}
}
@@ -309,34 +311,42 @@ public bool? SenderLastClient
///
/// Parameter defines the number of threads per each server port in the workload toolset tests.
///
- public int? ThreadsPerServerPort
+ public int? ThreadCountPerServerPort
{
get
{
- this.Parameters.TryGetValue(nameof(NetworkingWorkloadExecutor.ThreadsPerServerPort), out IConvertible threadsPerServerPort);
- return threadsPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
+ string parameterName = this.Parameters.ContainsKey(nameof(NetworkingWorkloadExecutor.ThreadCountPerServerPort))
+ ? nameof(NetworkingWorkloadExecutor.ThreadCountPerServerPort)
+ : "ThreadsPerServerPort";
+
+ this.Parameters.TryGetValue(parameterName, out IConvertible threadCountPerServerPort);
+ return threadCountPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
}
set
{
- this.Parameters[nameof(NetworkingWorkloadExecutor.ThreadsPerServerPort)] = value;
+ this.Parameters[nameof(NetworkingWorkloadExecutor.ThreadCountPerServerPort)] = value;
}
}
///
/// Parameter defines the number of connections in each sender thread in the workload toolset tests.
///
- public int? ConnectionsPerThread
+ public int? ConnectionCountPerThread
{
get
{
- this.Parameters.TryGetValue(nameof(NetworkingWorkloadExecutor.ConnectionsPerThread), out IConvertible connectionsPerThread);
- return connectionsPerThread?.ToInt32(CultureInfo.InvariantCulture);
+ string parameterName = this.Parameters.ContainsKey(nameof(NetworkingWorkloadExecutor.ConnectionCountPerThread))
+ ? nameof(NetworkingWorkloadExecutor.ConnectionCountPerThread)
+ : "ConnectionsPerThread";
+
+ this.Parameters.TryGetValue(parameterName, out IConvertible connectionCountPerThread);
+ return connectionCountPerThread?.ToInt32(CultureInfo.InvariantCulture);
}
set
{
- this.Parameters[nameof(NetworkingWorkloadExecutor.ConnectionsPerThread)] = value;
+ this.Parameters[nameof(NetworkingWorkloadExecutor.ConnectionCountPerThread)] = value;
}
}
@@ -818,14 +828,14 @@ protected void OnInstructionsReceived(object sender, JObject instructions)
this.TestMode = serverInstructions.TestMode;
this.TestDuration = serverInstructions.TestDuration;
this.MessageSize = serverInstructions.MessageSize;
- this.Connections = serverInstructions.Connections;
+ this.ConnectionCount = serverInstructions.ConnectionCount;
this.WarmupTime = serverInstructions.WarmupTime;
this.DelayTime = serverInstructions.DelayTime;
this.Port = serverInstructions.Port;
this.ReceiverMultiClientMode = serverInstructions.ReceiverMultiClientMode;
this.SenderLastClient = serverInstructions.SenderLastClient;
- this.ThreadsPerServerPort = serverInstructions.ThreadsPerServerPort;
- this.ConnectionsPerThread = serverInstructions.ConnectionsPerThread;
+ this.ThreadCountPerServerPort = serverInstructions.ThreadCountPerServerPort;
+ this.ConnectionCountPerThread = serverInstructions.ConnectionCountPerThread;
this.DevInterruptsDifferentiator = serverInstructions.DevInterruptsDifferentiator;
this.MessagesPerSecond = serverInstructions.MessagesPerSecond;
this.ConfidenceLevel = serverInstructions.ConfidenceLevel;
@@ -985,7 +995,7 @@ await this.ClientExecutionRetryPolicy.ExecuteAsync(async () =>
this.ThreadCount,
this.BufferSizeClient,
this.BufferSizeServer,
- this.Connections,
+ this.ConnectionCount,
this.TestDuration.ToString(),
this.WarmupTime.ToString(),
this.DelayTime.ToString(),
@@ -994,8 +1004,8 @@ await this.ClientExecutionRetryPolicy.ExecuteAsync(async () =>
this.Port,
this.ReceiverMultiClientMode,
this.SenderLastClient,
- this.ThreadsPerServerPort,
- this.ConnectionsPerThread,
+ this.ThreadCountPerServerPort,
+ this.ConnectionCountPerThread,
this.DevInterruptsDifferentiator,
this.MessagesPerSecond,
this.ConfidenceLevel,
diff --git a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/NetworkingWorkloadState.cs b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/NetworkingWorkloadState.cs
index 8b994ce740..08f12b0df8 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/NetworkingWorkloadState.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network/NetworkingWorkload/NetworkingWorkloadState.cs
@@ -116,7 +116,7 @@ public NetworkingWorkloadState(
int? threadCount = null,
string bufferSizeClient = null,
string bufferSizeServer = null,
- int? connections = null,
+ int? connectionCount = null,
string testDuration = null,
string warmupTime = null,
string delayTime = null,
@@ -125,8 +125,8 @@ public NetworkingWorkloadState(
int? port = null,
bool? receiverMultiClientMode = null,
bool? senderLastClient = null,
- int? threadsPerServerPort = null,
- int? connectionsPerThread = null,
+ int? threadCountPerServerPort = null,
+ int? connectionCountPerThread = null,
string devInterruptsDifferentiator = null,
string messagesPerSecond = null,
double? confidenceLevel = null,
@@ -152,7 +152,7 @@ public NetworkingWorkloadState(
this.Properties[nameof(this.ThreadCount)] = threadCount;
this.Properties[nameof(this.BufferSizeClient)] = bufferSizeClient;
this.Properties[nameof(this.BufferSizeServer)] = bufferSizeServer;
- this.Properties[nameof(this.Connections)] = connections;
+ this.Properties[nameof(this.ConnectionCount)] = connectionCount;
this.Properties[nameof(this.TestDuration)] = testDuration;
this.Properties[nameof(this.WarmupTime)] = warmupTime;
this.Properties[nameof(this.DelayTime)] = delayTime;
@@ -161,8 +161,8 @@ public NetworkingWorkloadState(
this.Properties[nameof(this.Port)] = port;
this.Properties[nameof(this.ReceiverMultiClientMode)] = receiverMultiClientMode;
this.Properties[nameof(this.SenderLastClient)] = senderLastClient;
- this.Properties[nameof(this.ThreadsPerServerPort)] = threadsPerServerPort;
- this.Properties[nameof(this.ConnectionsPerThread)] = connectionsPerThread;
+ this.Properties[nameof(this.ThreadCountPerServerPort)] = threadCountPerServerPort;
+ this.Properties[nameof(this.ConnectionCountPerThread)] = connectionCountPerThread;
this.Properties[nameof(this.DevInterruptsDifferentiator)] = devInterruptsDifferentiator;
this.Properties[nameof(this.MessagesPerSecond)] = messagesPerSecond;
this.Properties[nameof(this.ConfidenceLevel)] = confidenceLevel;
@@ -310,11 +310,13 @@ public string BufferSizeServer
///
/// Number of connections (Parameter for Tools: CPS).
///
- public int Connections
+ public int ConnectionCount
{
get
{
- return this.Properties.GetValue(nameof(this.Connections), 0);
+ return this.Properties.GetValue(
+ new string[] { nameof(this.ConnectionCount), "Connections" },
+ 0);
}
}
@@ -417,24 +419,32 @@ public bool? SenderLastClient
///
/// Number of threads per each server port (Parameter for Tools: NTttcp)
///
- public int? ThreadsPerServerPort
+ public int? ThreadCountPerServerPort
{
get
{
- this.Properties.TryGetValue(nameof(this.ThreadsPerServerPort), out IConvertible threadsPerServerPort);
- return threadsPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
+ string propertyName = this.Properties.ContainsKey(nameof(this.ThreadCountPerServerPort))
+ ? nameof(this.ThreadCountPerServerPort)
+ : "ThreadsPerServerPort";
+
+ this.Properties.TryGetValue(propertyName, out IConvertible threadCountPerServerPort);
+ return threadCountPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
}
}
///
/// Number of connections in each sender thread (Parameter for Tools: NTttcp)
///
- public int? ConnectionsPerThread
+ public int? ConnectionCountPerThread
{
get
{
- this.Properties.TryGetValue(nameof(this.ConnectionsPerThread), out IConvertible connectionsPerThread);
- return connectionsPerThread?.ToInt32(CultureInfo.InvariantCulture);
+ string propertyName = this.Properties.ContainsKey(nameof(this.ConnectionCountPerThread))
+ ? nameof(this.ConnectionCountPerThread)
+ : "ConnectionsPerThread";
+
+ this.Properties.TryGetValue(propertyName, out IConvertible connectionCountPerThread);
+ return connectionCountPerThread?.ToInt32(CultureInfo.InvariantCulture);
}
}
diff --git a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/CPS/CPSClientExecutor2.cs b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/CPS/CPSClientExecutor2.cs
index c1b606cc4d..52fcb2e7b9 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/CPS/CPSClientExecutor2.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/CPS/CPSClientExecutor2.cs
@@ -38,7 +38,7 @@ public CPSClientExecutor2(IServiceCollection dependencies, IDictionary
/// Parameter defines the number of connections to use in the workload toolset tests.
///
- public int Connections
+ public int ConnectionCount
{
get
{
- return this.Parameters.GetValue(nameof(CPSClientExecutor2.Connections), 8);
+ return this.Parameters.GetValue(
+ new string[] { nameof(CPSClientExecutor2.ConnectionCount), "Connections" },
+ 8);
}
set
{
- this.Parameters[nameof(CPSClientExecutor2.Connections)] = value;
+ this.Parameters[nameof(CPSClientExecutor2.ConnectionCount)] = value;
}
}
@@ -128,14 +130,16 @@ public int Port
}
///
- /// ConnectionsPerThread is only for client/sender role.
+ /// ConnectionCountPerThread is only for client/sender role.
/// Parameter defines the number of connections in each sender thread.
///
- public int ConnectionsPerThread
+ public int ConnectionCountPerThread
{
get
{
- return this.Parameters.GetValue(nameof(CPSClientExecutor2.ConnectionsPerThread), 100);
+ return this.Parameters.GetValue(
+ new string[] { nameof(CPSClientExecutor2.ConnectionCountPerThread), "ConnectionsPerThread" },
+ 100);
}
}
@@ -402,8 +406,8 @@ private string GetCommandLineArguments()
string clientIPAddress = this.GetLayoutClientInstances(ClientRole.Client).First().IPAddress;
string serverIPAddress = this.GetLayoutClientInstances(ClientRole.Server).First().IPAddress;
- return $"-c -r {this.Connections} " +
- $"{clientIPAddress},0,{serverIPAddress},{this.Port},{this.ConnectionsPerThread},{this.MaxPendingRequestsPerThread},{this.ConnectionDuration},{this.DataTransferMode} " +
+ return $"-c -r {this.ConnectionCount} " +
+ $"{clientIPAddress},0,{serverIPAddress},{this.Port},{this.ConnectionCountPerThread},{this.MaxPendingRequestsPerThread},{this.ConnectionDuration},{this.DataTransferMode} " +
$"-i {this.DisplayInterval} -wt {this.WarmupTime.TotalSeconds} -t {this.TestDuration.TotalSeconds} " +
$"{((this.DelayTime != TimeSpan.Zero) ? $"-ds {this.DelayTime.TotalSeconds}" : string.Empty)}".Trim();
}
diff --git a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/CPS/CPSServerExecutor2.cs b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/CPS/CPSServerExecutor2.cs
index 2c0c59c4d4..cf1f339b2b 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/CPS/CPSServerExecutor2.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/CPS/CPSServerExecutor2.cs
@@ -86,11 +86,13 @@ public TimeSpan WarmupTime
///
/// Parameter defines the number of connections to use in the workload toolset tests.
///
- public int Connections
+ public int ConnectionCount
{
get
{
- return this.Parameters.GetValue(nameof(this.Connections), 8);
+ return this.Parameters.GetValue(
+ new string[] { nameof(this.ConnectionCount), "Connections" },
+ 8);
}
}
@@ -106,14 +108,16 @@ public int Port
}
///
- /// ConnectionsPerThread is only for client/sender role.
+ /// ConnectionCountPerThread is only for client/sender role.
/// Parameter defines the number of connections in each sender thread.
///
- public int ConnectionsPerThread
+ public int ConnectionCountPerThread
{
get
{
- return this.Parameters.GetValue(nameof(this.ConnectionsPerThread), 100);
+ return this.Parameters.GetValue(
+ new string[] { nameof(this.ConnectionCountPerThread), "ConnectionsPerThread" },
+ 100);
}
}
@@ -403,7 +407,7 @@ private void StopServerTool(EventContext telemetryContext)
private string GetCommandLineArguments()
{
string serverIPAddress = this.GetLayoutClientInstances(ClientRole.Server).First().IPAddress;
- return $"-s -r {this.Connections} {serverIPAddress},{this.Port} -i {this.DisplayInterval} -wt {this.WarmupTime.TotalSeconds} -t {this.TestDuration.TotalSeconds} " +
+ return $"-s -r {this.ConnectionCount} {serverIPAddress},{this.Port} -i {this.DisplayInterval} -wt {this.WarmupTime.TotalSeconds} -t {this.TestDuration.TotalSeconds} " +
$"{((this.DelayTime != TimeSpan.Zero) ? $"-ds {this.DelayTime.TotalSeconds}" : string.Empty)} ";
}
diff --git a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/Latte/LatteClientExecutor2.cs b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/Latte/LatteClientExecutor2.cs
index 80195002de..812268bf73 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/Latte/LatteClientExecutor2.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/Latte/LatteClientExecutor2.cs
@@ -55,11 +55,11 @@ public int RioPoll
///
/// The number of iterations for the network send/receive operations.
///
- public int Iterations
+ public int IterationCount
{
get
{
- return this.Parameters.GetValue(nameof(this.Iterations), 100100);
+ return this.Parameters.GetValue(nameof(this.IterationCount), 100100);
}
}
@@ -379,7 +379,7 @@ private string GetCommandLineArguments()
string clientIPAddress = this.GetLayoutClientInstances(ClientRole.Client).First().IPAddress;
string serverIPAddress = this.GetLayoutClientInstances(ClientRole.Server).First().IPAddress;
- return $"-so -c -a {serverIPAddress}:{this.Port} -rio -i {this.Iterations} -riopoll {this.RioPoll} -{this.Protocol.ToString().ToLowerInvariant()} " +
+ return $"-so -c -a {serverIPAddress}:{this.Port} -rio -i {this.IterationCount} -riopoll {this.RioPoll} -{this.Protocol.ToString().ToLowerInvariant()} " +
$"-hist -hl 1 -hc 9998 -bl {clientIPAddress}";
}
diff --git a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/Latte/LatteServerExecutor2.cs b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/Latte/LatteServerExecutor2.cs
index 41d45a61df..bf056f7f59 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/Latte/LatteServerExecutor2.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/Latte/LatteServerExecutor2.cs
@@ -55,11 +55,11 @@ public int RioPoll
///
/// The number of iterations for the network send/receive operations.
///
- public int Iterations
+ public int IterationCount
{
get
{
- return this.Parameters.GetValue(nameof(this.Iterations), 100100);
+ return this.Parameters.GetValue(nameof(this.IterationCount), 100100);
}
}
@@ -396,7 +396,7 @@ await this.ProcessStartRetryPolicy.ExecuteAsync(async () =>
private string GetCommandLineArguments()
{
string serverIPAddress = this.GetLayoutClientInstances(ClientRole.Server).First().IPAddress;
- return $"-a {serverIPAddress}:{this.Port} -rio -i {this.Iterations} -riopoll {this.RioPoll} -{this.Protocol.ToString().ToLowerInvariant()}";
+ return $"-a {serverIPAddress}:{this.Port} -rio -i {this.IterationCount} -riopoll {this.RioPoll} -{this.Protocol.ToString().ToLowerInvariant()}";
}
///
diff --git a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/NTttcp/NTttcpClientExecutor2.cs b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/NTttcp/NTttcpClientExecutor2.cs
index fca617007d..b5ac80490b 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/NTttcp/NTttcpClientExecutor2.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/NTttcp/NTttcpClientExecutor2.cs
@@ -98,28 +98,36 @@ public TimeSpan TestDuration
}
///
- /// ThreadsPerServerPort is only for client/sender role.
- /// The ThreadsPerServerPort gets the number of threads per each server port.
+ /// ThreadCountPerServerPort is only for client/sender role.
+ /// The ThreadCountPerServerPort gets the number of threads per each server port.
///
- public int? ThreadsPerServerPort
+ public int? ThreadCountPerServerPort
{
get
{
- this.Parameters.TryGetValue(nameof(NTttcpClientExecutor2.ThreadsPerServerPort), out IConvertible threadsPerServerPort);
- return threadsPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
+ string parameterName = this.Parameters.ContainsKey(nameof(NTttcpClientExecutor2.ThreadCountPerServerPort))
+ ? nameof(NTttcpClientExecutor2.ThreadCountPerServerPort)
+ : "ThreadsPerServerPort";
+
+ this.Parameters.TryGetValue(parameterName, out IConvertible threadCountPerServerPort);
+ return threadCountPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
}
}
///
- /// ConnectionsPerThread is only for client/sender role.
- /// The ConnectionsPerThread gets the number of connections in each sender thread.
+ /// ConnectionCountPerThread is only for client/sender role.
+ /// The ConnectionCountPerThread gets the number of connections in each sender thread.
///
- public int? ConnectionsPerThread
+ public int? ConnectionCountPerThread
{
get
{
- this.Parameters.TryGetValue(nameof(NTttcpClientExecutor2.ConnectionsPerThread), out IConvertible connectionsPerThread);
- return connectionsPerThread?.ToInt32(CultureInfo.InvariantCulture);
+ string parameterName = this.Parameters.ContainsKey(nameof(NTttcpClientExecutor2.ConnectionCountPerThread))
+ ? nameof(NTttcpClientExecutor2.ConnectionCountPerThread)
+ : "ConnectionsPerThread";
+
+ this.Parameters.TryGetValue(parameterName, out IConvertible connectionCountPerThread);
+ return connectionCountPerThread?.ToInt32(CultureInfo.InvariantCulture);
}
}
@@ -279,8 +287,8 @@ private string GetLinuxSpecificCommandLine()
$"{(this.Protocol.ToString().ToLowerInvariant() == "udp" ? "-u" : string.Empty)} " +
$"{(((this.Role == ClientRole.Client) && this.SenderLastClient == true) ? "-L" : string.Empty)} " +
$"{(((this.Role == ClientRole.Client) && this.ReceiverMultiClientMode == true) ? "-M" : string.Empty)} " +
- $"{(((this.Role == ClientRole.Client) && this.ThreadsPerServerPort != null) ? $"-n {this.ThreadsPerServerPort}" : string.Empty)} " +
- $"{(((this.Role == ClientRole.Client) && this.ConnectionsPerThread != null) ? $"-l {this.ConnectionsPerThread}" : string.Empty)} " +
+ $"{(((this.Role == ClientRole.Client) && this.ThreadCountPerServerPort != null) ? $"-n {this.ThreadCountPerServerPort}" : string.Empty)} " +
+ $"{(((this.Role == ClientRole.Client) && this.ConnectionCountPerThread != null) ? $"-l {this.ConnectionCountPerThread}" : string.Empty)} " +
$"{((this.DevInterruptsDifferentiator != null) ? $"--show-dev-interrupts {this.DevInterruptsDifferentiator}" : string.Empty)}".Trim();
}
diff --git a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/NTttcp/NTttcpServerExecutor2.cs b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/NTttcp/NTttcpServerExecutor2.cs
index c78e34792b..7bfd859292 100644
--- a/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/NTttcp/NTttcpServerExecutor2.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Network2/NetworkingWorkload2/NTttcp/NTttcpServerExecutor2.cs
@@ -91,28 +91,36 @@ public TimeSpan TestDuration
}
///
- /// ThreadsPerServerPort is only for client/sender role.
- /// The ThreadsPerServerPort gets the number of threads per each server port.
+ /// ThreadCountPerServerPort is only for client/sender role.
+ /// The ThreadCountPerServerPort gets the number of threads per each server port.
///
- public int? ThreadsPerServerPort
+ public int? ThreadCountPerServerPort
{
get
{
- this.Parameters.TryGetValue(nameof(this.ThreadsPerServerPort), out IConvertible threadsPerServerPort);
- return threadsPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
+ string parameterName = this.Parameters.ContainsKey(nameof(this.ThreadCountPerServerPort))
+ ? nameof(this.ThreadCountPerServerPort)
+ : "ThreadsPerServerPort";
+
+ this.Parameters.TryGetValue(parameterName, out IConvertible threadCountPerServerPort);
+ return threadCountPerServerPort?.ToInt32(CultureInfo.InvariantCulture);
}
}
///
- /// ConnectionsPerThread is only for client/sender role.
- /// The ConnectionsPerThread gets the number of connections in each sender thread.
+ /// ConnectionCountPerThread is only for client/sender role.
+ /// The ConnectionCountPerThread gets the number of connections in each sender thread.
///
- public int? ConnectionsPerThread
+ public int? ConnectionCountPerThread
{
get
{
- this.Parameters.TryGetValue(nameof(this.ConnectionsPerThread), out IConvertible connectionsPerThread);
- return connectionsPerThread?.ToInt32(CultureInfo.InvariantCulture);
+ string parameterName = this.Parameters.ContainsKey(nameof(this.ConnectionCountPerThread))
+ ? nameof(this.ConnectionCountPerThread)
+ : "ConnectionsPerThread";
+
+ this.Parameters.TryGetValue(parameterName, out IConvertible connectionCountPerThread);
+ return connectionCountPerThread?.ToInt32(CultureInfo.InvariantCulture);
}
}
@@ -465,8 +473,8 @@ private string GetLinuxSpecificCommandLine()
$"{(this.Protocol.ToString().ToLowerInvariant() == "udp" ? "-u" : string.Empty)} " +
$"{(((this.Role == ClientRole.Client) && this.SenderLastClient == true) ? "-L" : string.Empty)} " +
$"{(((this.Role == ClientRole.Server) && this.ReceiverMultiClientMode == true) ? "-M" : string.Empty)} " +
- $"{(((this.Role == ClientRole.Client) && this.ThreadsPerServerPort != null) ? $"-n {this.ThreadsPerServerPort}" : string.Empty)} " +
- $"{(((this.Role == ClientRole.Client) && this.ConnectionsPerThread != null) ? $"-l {this.ConnectionsPerThread}" : string.Empty)} " +
+ $"{(((this.Role == ClientRole.Client) && this.ThreadCountPerServerPort != null) ? $"-n {this.ThreadCountPerServerPort}" : string.Empty)} " +
+ $"{(((this.Role == ClientRole.Client) && this.ConnectionCountPerThread != null) ? $"-l {this.ConnectionCountPerThread}" : string.Empty)} " +
$"{((this.DevInterruptsDifferentiator != null) ? $"--show-dev-interrupts {this.DevInterruptsDifferentiator}" : string.Empty)}".Trim();
}
diff --git a/src/VirtualClient/VirtualClient.Actions/Nginx/NginxServerExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Nginx/NginxServerExecutor.cs
index 3e1b110de6..400fe7ffa8 100644
--- a/src/VirtualClient/VirtualClient.Actions/Nginx/NginxServerExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Nginx/NginxServerExecutor.cs
@@ -41,11 +41,11 @@ public NginxServerExecutor(IServiceCollection dependencies, IDictionary
/// Number workers used. Number cores nginx can use. Set to null or 0 to use all cores.
///
- public int Workers
+ public int WorkerCount
{
get
{
- return this.Parameters.GetValue(nameof(this.Workers), 0);
+ return this.Parameters.GetValue(nameof(this.WorkerCount), 0);
}
}
@@ -168,7 +168,7 @@ protected override async Task InitializeAsync(EventContext telemetryContext, Can
ClientInstance backendInstance = this.GetLayoutClientInstances(ClientRole.Server).First();
IPAddress.TryParse(backendInstance.IPAddress, out IPAddress backendIPAddress);
- IProcessProxy process3 = await this.ExecuteCommandAsync(command: "bash", commandArguments: $"setup-config.sh {((this.Workers != 0) ? this.Workers : "auto")} {this.Role} {backendIPAddress}", workingDirectory: this.PackageDirectory, telemetryContext, cancellationToken, runElevated: true).ConfigureAwait(false);
+ IProcessProxy process3 = await this.ExecuteCommandAsync(command: "bash", commandArguments: $"setup-config.sh {((this.WorkerCount != 0) ? this.WorkerCount : "auto")} {this.Role} {backendIPAddress}", workingDirectory: this.PackageDirectory, telemetryContext, cancellationToken, runElevated: true).ConfigureAwait(false);
await this.LogProcessDetailsAsync(process3, telemetryContext, this.PackageDirectory, logToFile: true);
process3.ThrowIfWorkloadFailed();
diff --git a/src/VirtualClient/VirtualClient.Actions/OpenFOAM/OpenFOAMExecutor.cs b/src/VirtualClient/VirtualClient.Actions/OpenFOAM/OpenFOAMExecutor.cs
index 5bd32c4a66..d53fcc1e3a 100644
--- a/src/VirtualClient/VirtualClient.Actions/OpenFOAM/OpenFOAMExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/OpenFOAM/OpenFOAMExecutor.cs
@@ -67,12 +67,12 @@ public OpenFOAMExecutor(IServiceCollection dependencies, IDictionary
/// Iterations for which simulation need to be run.
///
- public string Iterations
+ public string IterationCount
{
get
{
- this.Parameters.TryGetValue(nameof(OpenFOAMExecutor.Iterations), out IConvertible iterations);
- return iterations?.ToString();
+ this.Parameters.TryGetValue(nameof(OpenFOAMExecutor.IterationCount), out IConvertible iterationCount);
+ return iterationCount?.ToString();
}
}
@@ -268,10 +268,10 @@ private void ThrowIfExeNotPresent()
private async Task InitializeSimulationIterationsAsync(string iterationsFilePath, CancellationToken cancellationToken)
{
- if (this.Iterations != null)
+ if (this.IterationCount != null)
{
await this.fileSystem.File.ReplaceInFileAsync(
- iterationsFilePath, @"endTime(\s)+[0-9]+", $"endTime {this.Iterations}", cancellationToken);
+ iterationsFilePath, @"endTime(\s)+[0-9]+", $"endTime {this.IterationCount}", cancellationToken);
}
}
diff --git a/src/VirtualClient/VirtualClient.Actions/OpenSSL/TlsOpenSslClientExecutor.cs b/src/VirtualClient/VirtualClient.Actions/OpenSSL/TlsOpenSslClientExecutor.cs
index dd91a584f0..6a3df1bfb7 100644
--- a/src/VirtualClient/VirtualClient.Actions/OpenSSL/TlsOpenSslClientExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/OpenSSL/TlsOpenSslClientExecutor.cs
@@ -51,11 +51,11 @@ public TlsOpenSslClientExecutor(IServiceCollection dependencies, IDictionary
- public int ClientInstances
+ public int ClientInstanceCount
{
get
{
- return this.Parameters.GetValue(nameof(this.ClientInstances), 1);
+ return this.Parameters.GetValue(nameof(this.ClientInstanceCount), 1);
}
}
diff --git a/src/VirtualClient/VirtualClient.Actions/Redis/RedisBenchmarkClientExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Redis/RedisBenchmarkClientExecutor.cs
index ffaa67ddbb..8d3e19d321 100644
--- a/src/VirtualClient/VirtualClient.Actions/Redis/RedisBenchmarkClientExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Redis/RedisBenchmarkClientExecutor.cs
@@ -49,11 +49,11 @@ public RedisBenchmarkClientExecutor(IServiceCollection dependencies, IDictionary
/// Parameter defines the number of Memtier benchmark instances to execute against
/// each server instance. Default = # of logical cores/vCPUs on system.
///
- public int ClientInstances
+ public int ClientInstanceCount
{
get
{
- return this.Parameters.GetValue(nameof(this.ClientInstances), 1);
+ return this.Parameters.GetValue(nameof(this.ClientInstanceCount), 1);
}
}
@@ -278,7 +278,7 @@ private Task ExecuteWorkloadsAsync(IPAddress serverIPAddress, ServerState server
List workloadProcesses = new List();
foreach (PortDescription serverPort in serverState.Ports)
{
- for (int i = 0; i < this.ClientInstances; i++)
+ for (int i = 0; i < this.ClientInstanceCount; i++)
{
// e.g.
// sudo bash -c "/home/user/virtualclient/linux-x64/src/redis-benchmark -h 1.2.3.5 -p 6379 -c 2 -n 10000 -P 32 -q --csv"
diff --git a/src/VirtualClient/VirtualClient.Actions/Redis/RedisServerExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Redis/RedisServerExecutor.cs
index 6699857848..fafafe0aaa 100644
--- a/src/VirtualClient/VirtualClient.Actions/Redis/RedisServerExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Redis/RedisServerExecutor.cs
@@ -93,11 +93,11 @@ public bool IsTLSEnabled
///
/// Parameter defines the number of server instances/copies to run.
///
- public int ServerInstances
+ public int ServerInstanceCount
{
get
{
- return this.Parameters.GetValue(nameof(this.ServerInstances));
+ return this.Parameters.GetValue(new string[] { nameof(this.ServerInstanceCount), "ServerInstances" });
}
}
@@ -259,10 +259,10 @@ protected override void Validate()
base.Validate();
CpuInfo cpuInfo = this.SystemManagement.GetCpuInfoAsync(CancellationToken.None).ConfigureAwait(false).GetAwaiter().GetResult();
- if (this.BindToCores && this.ServerInstances > cpuInfo.LogicalProcessorCount)
+ if (this.BindToCores && this.ServerInstanceCount > cpuInfo.LogicalProcessorCount)
{
throw new WorkloadException(
- $"Invalid '{nameof(this.ServerInstances)}' parameter value. The number of server instances cannot exceed the number of logical cores/vCPUs on the system " +
+ $"Invalid '{nameof(this.ServerInstanceCount)}' parameter value. The number of server instances cannot exceed the number of logical cores/vCPUs on the system " +
$"when binding each of the servers to a logical core/vCPU. Set parameter '{nameof(this.BindToCores)}' = false to allow for additional server instances.",
ErrorReason.InvalidProfileDefinition);
}
@@ -354,7 +354,7 @@ private Task SaveStateAsync(EventContext telemetryContext, CancellationToken can
return this.Logger.LogMessageAsync($"{this.TypeName}.SaveState", relatedContext, async () =>
{
List ports = new List();
- for (int i = 0; i < this.ServerInstances; i++)
+ for (int i = 0; i < this.ServerInstanceCount; i++)
{
ports.Add(new PortDescription
{
@@ -378,8 +378,8 @@ private void StartServerInstances(EventContext telemetryContext, CancellationTok
this.serverProcesses.Clear();
EventContext relatedContext = telemetryContext.Clone()
- .AddContext("serverInstances", this.ServerInstances)
- .AddContext("portRange", $"{this.Port}-{this.Port + this.ServerInstances}")
+ .AddContext("serverInstanceCount", this.ServerInstanceCount)
+ .AddContext("portRange", $"{this.Port}-{this.Port + this.ServerInstanceCount}")
.AddContext("bindToCores", this.BindToCores);
this.Logger.LogMessage($"{this.TypeName}.StartServerInstances", relatedContext, () =>
@@ -392,7 +392,7 @@ private void StartServerInstances(EventContext telemetryContext, CancellationTok
relatedContext.AddContext("command", command);
relatedContext.AddContext("workingDir", workingDirectory);
- for (int i = 0; i < this.ServerInstances; i++)
+ for (int i = 0; i < this.ServerInstanceCount; i++)
{
// We are starting the server instances in the background. Once they are running we
// will warm them up and then exit. We keep a reference to the server processes/tasks
diff --git a/src/VirtualClient/VirtualClient.Actions/SPECcpu/SpecCpuExecutor.cs b/src/VirtualClient/VirtualClient.Actions/SPECcpu/SpecCpuExecutor.cs
index f7b5ac5997..cc73b22d66 100644
--- a/src/VirtualClient/VirtualClient.Actions/SPECcpu/SpecCpuExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/SPECcpu/SpecCpuExecutor.cs
@@ -108,14 +108,14 @@ public string BaseOptimizingFlags
}
///
- /// Iterations.
+ /// Iteration count.
/// Recommended default: 2.
///
- public int Iterations
+ public int IterationCount
{
get
{
- return this.Parameters.GetValue(nameof(SpecCpuExecutor.Iterations), 2);
+ return this.Parameters.GetValue(new string[] { nameof(SpecCpuExecutor.IterationCount), "Iterations" }, 2);
}
}
@@ -132,24 +132,24 @@ public string PeakOptimizingFlags
}
///
- /// Threads.
+ /// Thread count.
///
- public int Threads
+ public int ThreadCount
{
get
{
- return this.Parameters.GetValue(nameof(SpecCpuExecutor.Threads), Environment.ProcessorCount);
+ return this.Parameters.GetValue(new string[] { nameof(SpecCpuExecutor.ThreadCount), "Threads" }, Environment.ProcessorCount);
}
}
///
- /// Copies.
+ /// Copy count.
///
- public int Copies
+ public int CopyCount
{
get
{
- return this.Parameters.GetValue(nameof(SpecCpuExecutor.Copies), Environment.ProcessorCount);
+ return this.Parameters.GetValue(new string[] { nameof(SpecCpuExecutor.CopyCount), "Copies" }, Environment.ProcessorCount);
}
}
@@ -644,11 +644,11 @@ private string GetCommandLineArguments()
{
List suites = new List { "intrate", "intspeed", "fprate", "fpspeed" };
string configurationFile = this.GetConfigurationFileName();
- string command = $"--config {configurationFile} --iterations {this.Iterations} --copies {this.Copies} --threads {this.Threads} --tune {this.tuning}";
+ string command = $"--config {configurationFile} --iterations {this.IterationCount} --copies {this.CopyCount} --threads {this.ThreadCount} --tune {this.tuning}";
bool reportable = this.Platform == PlatformID.Unix
&& suites.Contains(this.Benchmarks.ToLowerInvariant())
- && (this.Iterations == 2 || this.Iterations == 3);
+ && (this.IterationCount == 2 || this.IterationCount == 3);
command = reportable ? $"{command} --reportable" : $"{command} --noreportable";
return $"{command} {this.Benchmarks}";
@@ -680,7 +680,7 @@ private async Task WriteSpecCpuConfigAsync(CancellationToken cancellationToken)
StringComparison.OrdinalIgnoreCase);
templateText = templateText.Replace(
SpecCpuConfigPlaceholder.Threads,
- this.Threads.ToString(),
+ this.ThreadCount.ToString(),
StringComparison.OrdinalIgnoreCase);
await this.fileSystem.File.WriteAllTextAsync(
diff --git a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs
index 668072f53d..76f1022536 100644
--- a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs
+++ b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs
@@ -121,12 +121,12 @@ public int? TableCount
///
/// Number of threads.
///
- public int? Threads
+ public int? ThreadCount
{
get
{
- this.Parameters.TryGetValue(nameof(SysbenchClientExecutor.Threads), out IConvertible threads);
- return threads?.ToInt32(CultureInfo.InvariantCulture);
+ this.Parameters.TryGetValue(nameof(SysbenchClientExecutor.ThreadCount), out IConvertible threadCount);
+ return threadCount?.ToInt32(CultureInfo.InvariantCulture);
}
}
@@ -391,7 +391,7 @@ protected async Task InitializeExecutablesAsync(EventContext telemetryContext, C
protected string BuildSysbenchLoggingArguments()
{
int tableCount = GetTableCount(this.DatabaseScenario, this.TableCount, this.Workload);
- int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.Threads);
+ int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.ThreadCount);
string loggingArguments = $"--dbName {this.DatabaseName} --databaseSystem {this.DatabaseSystem} --benchmark {this.Benchmark} --threadCount {threadCount} --tableCount {tableCount}";
diff --git a/src/VirtualClient/VirtualClient.Common.UnitTests/Extensions/CollectionExtensionsTests.cs b/src/VirtualClient/VirtualClient.Common.UnitTests/Extensions/CollectionExtensionsTests.cs
index 32abd89983..5190e160b5 100644
--- a/src/VirtualClient/VirtualClient.Common.UnitTests/Extensions/CollectionExtensionsTests.cs
+++ b/src/VirtualClient/VirtualClient.Common.UnitTests/Extensions/CollectionExtensionsTests.cs
@@ -211,6 +211,52 @@ public void GetValueExtensionReturnsTheDefaultValueSuppliedWhenASettingDoesNotEx
Assert.IsTrue(value == defaultValue);
}
+ [Test]
+ public void GetValueExtensionReturnsTheFirstValueDefinedForTheKeysSupplied()
+ {
+ IDictionary dictionary = new Dictionary
+ {
+ ["CurrentName"] = "CurrentValue",
+ ["LegacyName"] = "LegacyValue"
+ };
+
+ string value = dictionary.GetValue(new string[] { "CurrentName", "LegacyName" });
+
+ Assert.AreEqual("CurrentValue", value);
+ }
+
+ [Test]
+ public void GetValueExtensionReturnsTheValueDefinedForAnAlternateKey()
+ {
+ IDictionary dictionary = new Dictionary
+ {
+ ["LegacyName"] = "123"
+ };
+
+ int value = dictionary.GetValue(new string[] { "CurrentName", "LegacyName" });
+
+ Assert.AreEqual(123, value);
+ }
+
+ [Test]
+ public void GetValueExtensionReturnsTheDefaultValueWhenNoneOfTheKeysExist()
+ {
+ IDictionary dictionary = new Dictionary();
+
+ int value = dictionary.GetValue(new string[] { "CurrentName", "LegacyName" }, 123);
+
+ Assert.AreEqual(123, value);
+ }
+
+ [Test]
+ public void GetValueExtensionThrowsWhenNoneOfTheKeysExist()
+ {
+ IDictionary dictionary = new Dictionary();
+
+ Assert.Throws(
+ () => dictionary.GetValue(new string[] { "CurrentName", "LegacyName" }));
+ }
+
[Test]
public void GetEnumValueExtensionHandlesValuesThatCanBeParsedAsValidEnums()
{
diff --git a/src/VirtualClient/VirtualClient.Common/Extensions/CollectionExtensions.cs b/src/VirtualClient/VirtualClient.Common/Extensions/CollectionExtensions.cs
index 8fed29c83e..8212a46be2 100644
--- a/src/VirtualClient/VirtualClient.Common/Extensions/CollectionExtensions.cs
+++ b/src/VirtualClient/VirtualClient.Common/Extensions/CollectionExtensions.cs
@@ -198,6 +198,38 @@ public static T GetValue(this IDictionary dictionary, s
return convertedValue;
}
+ ///
+ /// Parses the first dictionary entry value found for the keys supplied into the type supplied.
+ ///
+ /// Dictionary containing a key with a value to parse.
+ /// The keys to check in priority order.
+ /// A default value to return if none of the entries exist.
+ public static T GetValue(this IDictionary dictionary, IEnumerable keys, IConvertible defaultValue = null)
+ where T : IConvertible
+ {
+ dictionary.ThrowIfNull(nameof(dictionary));
+
+ IList keyList = keys?.ToList();
+ keyList.ThrowIfNullOrEmpty(nameof(keys));
+
+ foreach (string key in keyList)
+ {
+ key.ThrowIfNullOrWhiteSpace(nameof(keys));
+ if (dictionary.ContainsKey(key))
+ {
+ return dictionary.GetValue(key, defaultValue);
+ }
+ }
+
+ if (defaultValue != null)
+ {
+ return dictionary.GetValue(keyList[0], defaultValue);
+ }
+
+ throw new KeyNotFoundException(
+ $"The value cannot be parsed from the dictionary. An entry with any of the keys '{string.Join("', '", keyList)}' does not exist in the dictionary.");
+ }
+
///
/// Parses the delimited dictionary entry into a collection of values. The entries can be delimited
/// by a comma (,) or a semi-colon (;).
diff --git a/src/VirtualClient/VirtualClient.Contracts/VirtualClientIntervalBasedMonitor.cs b/src/VirtualClient/VirtualClient.Contracts/VirtualClientIntervalBasedMonitor.cs
index a34ff8b5ee..031ac87e13 100644
--- a/src/VirtualClient/VirtualClient.Contracts/VirtualClientIntervalBasedMonitor.cs
+++ b/src/VirtualClient/VirtualClient.Contracts/VirtualClientIntervalBasedMonitor.cs
@@ -71,11 +71,13 @@ public TimeSpan MonitorWarmupPeriod
/// The number of iterations with which this monitor runs
/// Default is set to -1 for infinite loop.
///
- public long MonitorIterations
+ public long MonitorIterationCount
{
get
{
- return this.Parameters.GetValue(nameof(this.MonitorIterations), -1);
+ return this.Parameters.GetValue(
+ new string[] { nameof(this.MonitorIterationCount), "MonitorIterations" },
+ -1);
}
}
@@ -99,12 +101,12 @@ public MonitorStrategy? MonitorStrategy
/// True if the expected iterations are completed. False if not.
public bool IsIterationComplete(long currentIteration)
{
- if (this.MonitorIterations <= 0)
+ if (this.MonitorIterationCount <= 0)
{
return false;
}
- return currentIteration > this.MonitorIterations;
+ return currentIteration > this.MonitorIterationCount;
}
}
}
diff --git a/src/VirtualClient/VirtualClient.Contracts/VirtualClientMonitorComponent.cs b/src/VirtualClient/VirtualClient.Contracts/VirtualClientMonitorComponent.cs
index 185b6739bc..411fc593e5 100644
--- a/src/VirtualClient/VirtualClient.Contracts/VirtualClientMonitorComponent.cs
+++ b/src/VirtualClient/VirtualClient.Contracts/VirtualClientMonitorComponent.cs
@@ -25,7 +25,7 @@ public abstract class VirtualClientMonitorComponent : VirtualClientComponent
public VirtualClientMonitorComponent(IServiceCollection dependencies, IDictionary parameters)
: base(dependencies, parameters)
{
- if (this.MonitorEnabled && this.MonitorFrequency == null && this.MonitorIterations == null && this.MonitorStrategy == null)
+ if (this.MonitorEnabled && this.MonitorFrequency == null && this.MonitorIterationCount == null && this.MonitorStrategy == null)
{
this.MonitorStrategy = VirtualClient.MonitorStrategy.Once;
}
@@ -67,16 +67,17 @@ protected set
/// The number of iterations with which this monitor runs
/// Default is set to -1 for infinite loop.
///
- public long? MonitorIterations
+ public long? MonitorIterationCount
{
get
{
- return this.Parameters.GetValue(nameof(this.MonitorIterations));
+ return this.Parameters.GetValue(
+ new string[] { nameof(this.MonitorIterationCount), "MonitorIterations" });
}
protected set
{
- this.Parameters[nameof(this.MonitorIterations)] = value.ToString();
+ this.Parameters[nameof(this.MonitorIterationCount)] = value.ToString();
}
}
@@ -121,12 +122,12 @@ protected set
/// True if the expected iterations are completed. False if not.
public bool IsIterationComplete(long currentIteration)
{
- if (this.MonitorIterations <= 0)
+ if (this.MonitorIterationCount <= 0)
{
return false;
}
- return currentIteration > this.MonitorIterations;
+ return currentIteration > this.MonitorIterationCount;
}
///
@@ -206,10 +207,10 @@ protected override void Validate()
{
base.Validate();
- if (this.MonitorFrequency != null && this.MonitorIterations != null)
+ if (this.MonitorFrequency != null && this.MonitorIterationCount != null)
{
throw new MonitorException(
- $"Invalid parameter usage. The parameters '{nameof(this.MonitorFrequency)}' and '{nameof(this.MonitorIterations)}' cannot be used together.",
+ $"Invalid parameter usage. The parameters '{nameof(this.MonitorFrequency)}' and '{nameof(this.MonitorIterationCount)}' cannot be used together.",
ErrorReason.NotSupported);
}
@@ -220,10 +221,10 @@ protected override void Validate()
ErrorReason.NotSupported);
}
- if (this.MonitorIterations != null && this.MonitorStrategy != null)
+ if (this.MonitorIterationCount != null && this.MonitorStrategy != null)
{
throw new MonitorException(
- $"Invalid parameter usage. The parameters '{nameof(this.MonitorIterations)}' and '{nameof(this.MonitorStrategy)}' cannot be used together.",
+ $"Invalid parameter usage. The parameters '{nameof(this.MonitorIterationCount)}' and '{nameof(this.MonitorStrategy)}' cannot be used together.",
ErrorReason.NotSupported);
}
}
diff --git a/src/VirtualClient/VirtualClient.Core.UnitTests/Components/ParallelLoopExecutionTests.cs b/src/VirtualClient/VirtualClient.Core.UnitTests/Components/ParallelLoopExecutionTests.cs
index 8c0c7111b5..da8d07fb3b 100644
--- a/src/VirtualClient/VirtualClient.Core.UnitTests/Components/ParallelLoopExecutionTests.cs
+++ b/src/VirtualClient/VirtualClient.Core.UnitTests/Components/ParallelLoopExecutionTests.cs
@@ -31,7 +31,7 @@ public void SetupDefaults()
[Test]
public async Task ParallelLoopExecution_CancelsAndAwaitsTheInFlightIterationWhenTheDurationElapses()
{
- this.fixture.Parameters["MinimumIterations"] = 0;
+ this.fixture.Parameters["MinimumIterationCount"] = 0;
bool cancellationObserved = false;
var component = new TestComponent(this.fixture.Dependencies, this.fixture.Parameters, async token =>
{
@@ -80,7 +80,7 @@ public async Task ParallelLoopExecution_CompletesTheFirstIterationByDefaultEvenW
[Test]
public async Task ParallelLoopExecution_CancelsAndAwaitsAnIterationBeyondTheMinimumWhenTheDurationElapses()
{
- this.fixture.Parameters["MinimumIterations"] = 1;
+ this.fixture.Parameters["MinimumIterationCount"] = 1;
bool cancellationObserved = false;
var component = new TestComponent(this.fixture.Dependencies, this.fixture.Parameters, async token =>
{
@@ -126,9 +126,9 @@ public async Task ParallelLoopExecution_LoopsUntilCancelledWhenNoDurationIsDefin
}
[Test]
- public async Task ParallelLoopExecution_RespectsMinimumIterationsParameterAndTimeout()
+ public async Task ParallelLoopExecution_RespectsMinimumIterationCountParameterAndTimeout()
{
- this.fixture.Parameters["MinimumIterations"] = 2;
+ this.fixture.Parameters["MinimumIterationCount"] = 2;
this.fixture.Parameters["Duration"] = "00:00:01";
var component = new TestComponent(this.fixture.Dependencies, this.fixture.Parameters, async token =>
@@ -146,9 +146,9 @@ public async Task ParallelLoopExecution_RespectsMinimumIterationsParameterAndTim
}
[Test]
- public async Task ParallelLoopExecution_RespectsMinimumIterationsParameter()
+ public async Task ParallelLoopExecution_RespectsMinimumIterationCountParameter()
{
- this.fixture.Parameters["MinimumIterations"] = 7;
+ this.fixture.Parameters["MinimumIterationCount"] = 7;
this.fixture.Parameters["Duration"] = "00:00:00.100";
var component = new TestComponent(this.fixture.Dependencies, this.fixture.Parameters, async token =>
diff --git a/src/VirtualClient/VirtualClient.Core/Components/ParallelLoopExecution.cs b/src/VirtualClient/VirtualClient.Core/Components/ParallelLoopExecution.cs
index e3374669d6..2f20c3abb1 100644
--- a/src/VirtualClient/VirtualClient.Core/Components/ParallelLoopExecution.cs
+++ b/src/VirtualClient/VirtualClient.Core/Components/ParallelLoopExecution.cs
@@ -47,11 +47,13 @@ public TimeSpan Duration
///
/// The number of iterations each child component must complete, even if the duration elapses. Default = 1.
///
- public int MinimumIterations
+ public int MinimumIterationCount
{
get
{
- return this.Parameters.GetValue(nameof(this.MinimumIterations), 1);
+ return this.Parameters.GetValue(
+ new string[] { nameof(this.MinimumIterationCount), "MinimumIterations" },
+ 1);
}
}
@@ -111,7 +113,7 @@ private async Task ExecuteComponentLoopAsync(
while (!cancellationToken.IsCancellationRequested)
{
- bool minimumSatisfied = completedIterations >= this.MinimumIterations;
+ bool minimumSatisfied = completedIterations >= this.MinimumIterationCount;
if (minimumSatisfied && durationToken.IsCancellationRequested)
{
@@ -126,7 +128,7 @@ private async Task ExecuteComponentLoopAsync(
EventContext iterationContext = telemetryContext.Clone()
.AddContext("currentIteration", completedIterations + 1);
- // Iterations required to satisfy MinimumIterations are allowed to run past the duration.
+ // Iterations required to satisfy MinimumIterationCount are allowed to run past the duration.
using (CancellationTokenSource iterationSource = minimumSatisfied
? CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, durationToken)
: CancellationTokenSource.CreateLinkedTokenSource(cancellationToken))
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/GET-STARTED-REDIS.json b/src/VirtualClient/VirtualClient.Main/profiles/GET-STARTED-REDIS.json
index 14099b5485..788b1278be 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/GET-STARTED-REDIS.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/GET-STARTED-REDIS.json
@@ -7,8 +7,8 @@
"Parameters": {
"ServerPort": 6379,
"ServerThreadCount": 4,
- "ServerInstances": 1,
- "ClientInstances": 1
+ "ServerInstanceCount": 1,
+ "ClientInstanceCount": 1
},
"Actions": [
{
@@ -19,7 +19,7 @@
"CommandLine": "--protected-mode no --io-threads {ServerThreadCount} --maxmemory-policy noeviction --ignore-warnings ARM64-COW-BUG --save &",
"BindToCores": true,
"Port": "$.Parameters.ServerPort",
- "ServerInstances": "$.Parameters.ServerInstances",
+ "ServerInstanceCount": "$.Parameters.ServerInstanceCount",
"ServerThreadCount": "$.Parameters.ServerThreadCount",
"Role": "Server"
}
@@ -30,7 +30,7 @@
"Scenario": "memtier_8t_16c_32b_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 8 --clients 16 --ratio 1:1 --data-size 32 --pipeline 100 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time 60",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Role": "Client"
}
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/MONITORS-GPU-NVIDIA.json b/src/VirtualClient/VirtualClient.Main/profiles/MONITORS-GPU-NVIDIA.json
index e09838a060..f1504ac420 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/MONITORS-GPU-NVIDIA.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/MONITORS-GPU-NVIDIA.json
@@ -8,7 +8,7 @@
"Parameters": {
"MonitorFrequency": "00:01:00",
"MonitorWarmupPeriod": "00:01:00",
- "MonitorIterations": -1
+ "MonitorIterationCount": -1
},
"Monitors": [
{
@@ -17,7 +17,7 @@
"Scenario": "CaptureNvidiaSmiCounters",
"MonitorFrequency": "$.Parameters.MonitorFrequency",
"MonitorWarmupPeriod": "$.Parameters.MonitorWarmupPeriod",
- "MonitorIterations": "$.Parameters.MonitorIterations",
+ "MonitorIterationCount": "$.Parameters.MonitorIterationCount",
"SupportedPlatforms": "linux-arm64,linux-x64,win-x64"
}
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-DOTNETRUNTIME.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-DOTNETRUNTIME.json
index 37dcfab499..07cbfcde1a 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-DOTNETRUNTIME.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-DOTNETRUNTIME.json
@@ -5,8 +5,8 @@
"SupportedOperatingSystems": "Windows"
},
"Parameters": {
- "NumberOfJvmInstances": "1",
- "NumberOfWarehouses": "8",
+ "JvmInstanceCount": "1",
+ "WarehouseCount": "8",
"RampUpSeconds": "60",
"MeasurementSeconds": "3600",
"FixedThroughput": "16000"
@@ -16,9 +16,9 @@
"Type": "DotNetRuntimeExecutor",
"Parameters": {
"Scenario": "CpuOperationThroughput",
- "NumberOfJvmInstances": "$.Parameters.NumberOfJvmInstances",
+ "JvmInstanceCount": "$.Parameters.JvmInstanceCount",
"PackageName": "dotnetruntime",
- "NumberOfWarehouses": "$.Parameters.NumberOfWarehouses",
+ "WarehouseCount": "$.Parameters.WarehouseCount",
"RampUpSeconds": "$.Parameters.RampUpSeconds",
"MeasurementSeconds": "$.Parameters.MeasurementSeconds",
"FixedThroughput": "$.Parameters.FixedThroughput"
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-AMD.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-AMD.json
index 794d40a120..cda86f580d 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-AMD.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-AMD.json
@@ -10,7 +10,7 @@
"CompilerVersion": null,
"ProblemSizeN": null,
"BlockSizeNB": "256",
- "NumberOfProcesses": "{LogicalCoreCount}",
+ "ProcessCount": "{LogicalCoreCount}",
"PerformanceLibraryVersion": "5.1.0",
"BindToCores": false,
"CCFLAGS": "-O3 -march=native"
@@ -22,7 +22,7 @@
"Scenario": "ProcessorSpeed",
"ProblemSizeN": "$.Parameters.ProblemSizeN",
"BlockSizeNB": "$.Parameters.BlockSizeNB",
- "NumberOfProcesses": "$.Parameters.NumberOfProcesses",
+ "ProcessCount": "$.Parameters.ProcessCount",
"CCFLAGS": "$.Parameters.CCFLAGS",
"BindToCores": "$.Parameters.BindToCores",
"PackageName": "hplinpack",
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-ARM.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-ARM.json
index 85a84f796c..c3b9c929d2 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-ARM.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-ARM.json
@@ -10,7 +10,7 @@
"CompilerVersion": null,
"ProblemSizeN": null,
"BlockSizeNB": "256",
- "NumberOfProcesses": "{LogicalCoreCount}",
+ "ProcessCount": "{LogicalCoreCount}",
"PerformanceLibraryVersion": "26.01.1",
"BindToCores": false,
"CCFLAGS": "-O3 -march=armv8-a"
@@ -22,7 +22,7 @@
"Scenario": "ProcessorSpeed",
"ProblemSizeN": "$.Parameters.ProblemSizeN",
"BlockSizeNB": "$.Parameters.BlockSizeNB",
- "NumberOfProcesses": "$.Parameters.NumberOfProcesses",
+ "ProcessCount": "$.Parameters.ProcessCount",
"CCFLAGS": "$.Parameters.CCFLAGS",
"BindToCores": "$.Parameters.BindToCores",
"PackageName": "hplinpack",
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-INTEL.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-INTEL.json
index db06e10f39..b6b684cb8e 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-INTEL.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK-INTEL.json
@@ -10,7 +10,7 @@
"CompilerVersion": null,
"ProblemSizeN": null,
"BlockSizeNB": "256",
- "NumberOfProcesses": "{LogicalCoreCount}",
+ "ProcessCount": "{LogicalCoreCount}",
"PerformanceLibraryVersion": "2025.1.0.803",
"BindToCores": false,
"CCFLAGS": "-O3 -march=native"
@@ -22,7 +22,7 @@
"Scenario": "ProcessorSpeed",
"ProblemSizeN": "$.Parameters.ProblemSizeN",
"BlockSizeNB": "$.Parameters.BlockSizeNB",
- "NumberOfProcesses": "$.Parameters.NumberOfProcesses",
+ "ProcessCount": "$.Parameters.ProcessCount",
"CCFLAGS": "$.Parameters.CCFLAGS",
"BindToCores": "$.Parameters.BindToCores",
"PackageName": "hplinpack",
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK.json
index 32bc34853d..636b90fbf4 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-HPLINPACK.json
@@ -9,7 +9,7 @@
"CompilerVersion": null,
"ProblemSizeN": null,
"BlockSizeNB": "256",
- "NumberOfProcesses": "{LogicalCoreCount}",
+ "ProcessCount": "{LogicalCoreCount}",
"BindToCores": false,
"CCFLAGS": "-O3 -march={calculate(\"{Architecture}\" == \"x64\" ? \"native\" : \"armv8-a\")}"
},
@@ -20,7 +20,7 @@
"Scenario": "ProcessorSpeed",
"ProblemSizeN": "$.Parameters.ProblemSizeN",
"BlockSizeNB": "$.Parameters.BlockSizeNB",
- "NumberOfProcesses": "$.Parameters.NumberOfProcesses",
+ "ProcessCount": "$.Parameters.ProcessCount",
"CCFLAGS": "$.Parameters.CCFLAGS",
"BindToCores": "$.Parameters.BindToCores",
"PackageName": "hplinpack"
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-OPENSSL-TLS.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-OPENSSL-TLS.json
index cff2f37ad5..4da5ad9588 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-OPENSSL-TLS.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-CPU-OPENSSL-TLS.json
@@ -7,7 +7,7 @@
},
"Parameters": {
"ServerPort": 5000,
- "ClientInstances": 1,
+ "ClientInstanceCount": 1,
"Duration": "00:00:30"
},
"Actions": [
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-MEMCACHED.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-MEMCACHED.json
index 7805b9b343..fb4bbfa654 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-MEMCACHED.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-MEMCACHED.json
@@ -8,8 +8,8 @@
},
"Parameters": {
"ServerPort": 6379,
- "ServerMaxConnections": 16384,
- "ClientInstances": 8,
+ "MaxServerConnectionCount": 16384,
+ "ClientInstanceCount": 8,
"Duration": "00:02:00",
"EmitAggregateMetrics": false,
"EmitRawMetrics": true
@@ -20,11 +20,11 @@
"Parameters": {
"Scenario": "Server",
"PackageName": "memcached",
- "CommandLine": "-p {Port} -t 4 -m 30720 -c {ServerMaxConnections} :: &",
+ "CommandLine": "-p {Port} -t 4 -m 30720 -c {MaxServerConnectionCount} :: &",
"BindToCores": true,
"Port": "$.Parameters.ServerPort",
"ServerThreadCount": 4,
- "ServerMaxConnections": "$.Parameters.ServerMaxConnections",
+ "MaxServerConnectionCount": "$.Parameters.MaxServerConnectionCount",
"Role": "Server"
}
},
@@ -34,7 +34,7 @@
"Scenario": "warmup_32b_pool",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 1 --clients 1 --ratio 1:0 --data-size 32 --pipeline 32 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern S:S --run-count 1 --requests=allkeys",
- "ClientInstances": 1,
+ "ClientInstanceCount": 1,
"WarmUp": true,
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -47,7 +47,7 @@
"Scenario": "warmup_1kb_pool",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 1 --clients 1 --ratio 1:0 --data-size 1024 --pipeline 32 --key-minimum 1 --key-maximum 1000000 --key-prefix med --key-pattern S:S --run-count 1 --requests=allkeys",
- "ClientInstances": 1,
+ "ClientInstanceCount": 1,
"WarmUp": true,
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -60,7 +60,7 @@
"Scenario": "warmup_10kb_pool",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 1 --clients 1 --ratio 1:0 --data-size 10240 --pipeline 32 --key-minimum 1 --key-maximum 100000 --key-prefix lg --key-pattern S:S --run-count 1 --requests=allkeys",
- "ClientInstances": 1,
+ "ClientInstanceCount": 1,
"WarmUp": true,
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -73,7 +73,7 @@
"Scenario": "memtier_8t_16c_32b_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 8 --clients 16 --ratio 1:1 --data-size 32 --pipeline 100 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -86,7 +86,7 @@
"Scenario": "memtier_8t_16c_1kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 8 --clients 16 --ratio 1:1 --data-size 1024 --pipeline 100 --key-minimum 1 --key-maximum 1000000 --key-prefix med --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -99,7 +99,7 @@
"Scenario": "memtier_8t_16c_10kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 8 --clients 16 --ratio 1:1 --data-size 10240 --pipeline 100 --key-minimum 1 --key-maximum 100000 --key-prefix lg --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -112,7 +112,7 @@
"Scenario": "memtier_16t_16c_32b_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 16 --clients 16 --ratio 1:1 --data-size 32 --pipeline 100 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -125,7 +125,7 @@
"Scenario": "memtier_16t_16c_1kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 16 --clients 16 --ratio 1:1 --data-size 1024 --pipeline 100 --key-minimum 1 --key-maximum 1000000 --key-prefix med --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -138,7 +138,7 @@
"Scenario": "memtier_16t_16c_10kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 16 --clients 16 --ratio 1:1 --data-size 10240 --pipeline 100 --key-minimum 1 --key-maximum 100000 --key-prefix lg --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -151,7 +151,7 @@
"Scenario": "memtier_32t_16c_32b_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 32 --clients 16 --ratio 1:1 --data-size 32 --pipeline 100 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -164,7 +164,7 @@
"Scenario": "memtier_32t_16c_1kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 32 --clients 16 --ratio 1:1 --data-size 1024 --pipeline 100 --key-minimum 1 --key-maximum 1000000 --key-prefix med --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
@@ -177,7 +177,7 @@
"Scenario": "memtier_32t_16c_10kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol memcache_text --threads 32 --clients 16 --ratio 1:1 --data-size 10240 --pipeline 100 --key-minimum 1 --key-maximum 100000 --key-prefix lg --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"EmitAggregateMetrics": "$.Parameters.EmitAggregateMetrics",
"EmitRawMetrics": "$.Parameters.EmitRawMetrics",
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-NETWORK-CTSTRAFFIC.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-NETWORK-CTSTRAFFIC.json
index 5b0011884f..b8b9a8041a 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-NETWORK-CTSTRAFFIC.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-NETWORK-CTSTRAFFIC.json
@@ -11,8 +11,8 @@
"BufferInBytes": "65536",
"Pattern": "Duplex",
"BytesToTransfer": "0x400000000",
- "Connections": "20",
- "Iterations": "1",
+ "ConnectionCount": "20",
+ "IterationCount": "1",
"ServerExitLimit": "1"
},
"Actions": [
@@ -25,8 +25,8 @@
"BufferInBytes": "$.Parameters.BufferInBytes",
"Pattern": "$.Parameters.Pattern",
"BytesToTransfer": "$.Parameters.BytesToTransfer",
- "Connections": "$.Parameters.Connections",
- "Iterations": "$.Parameters.Iterations",
+ "ConnectionCount": "$.Parameters.ConnectionCount",
+ "IterationCount": "$.Parameters.IterationCount",
"PackageName": "ctstraffic",
"ServerExitLimit": "$.Parameters.ServerExitLimit",
"Tags": "ctsTraffic,Network"
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-NETWORK-PING.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-NETWORK-PING.json
index 449bc91a1a..063275c27c 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-NETWORK-PING.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-NETWORK-PING.json
@@ -8,7 +8,7 @@
"Parameters": {
"IPAddress": null,
"Duration": null,
- "PingIterations": 300
+ "PingIterationCount": 300
},
"Actions": [
{
@@ -17,7 +17,7 @@
"Scenario": "ICMP",
"IPAddress": "$.Parameters.IPAddress",
"Duration": "$.Parameters.Duration",
- "PingIterations": "$.Parameters.PingIterations",
+ "PingIterationCount": "$.Parameters.PingIterationCount",
"Tags": "Performance,Networking,Ping"
}
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-OPENFOAM.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-OPENFOAM.json
index 8c107b6571..10fce5543d 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-OPENFOAM.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-OPENFOAM.json
@@ -6,7 +6,7 @@
"SupportedOperatingSystems": "AzureLinux,CentOS,Debian,OpenSuse,RedHat,Ubuntu"
},
"Parameters": {
- "Iterations": "500"
+ "IterationCount": "500"
},
"Actions": [
{
@@ -14,7 +14,7 @@
"Parameters": {
"Scenario": "AirFoil2D",
"Simulation": "airFoil2D",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"Solver": "simpleFoam",
"PackageName": "openfoam",
"Tags": "airFoil2D,CPU,OpenFOAM,OpenFOAMSimulations"
@@ -25,7 +25,7 @@
"Parameters": {
"Scenario": "Elbow",
"Simulation": "elbow",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"Solver": "icoFoam",
"PackageName": "openfoam",
"Tags": "elbow,CPU,OpenFOAM,OpenFOAMSimulations"
@@ -36,7 +36,7 @@
"Parameters": {
"Scenario": "LockExchange",
"Simulation": "lockExchange",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"Solver": "twoLiquidMixingFoam",
"PackageName": "openfoam",
"Tags": "lockExchange,CPU,OpenFOAM,OpenFOAMSimulations"
@@ -47,7 +47,7 @@
"Parameters": {
"Scenario": "MotorBike",
"Simulation": "motorBike",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"Solver": "simpleFoam",
"PackageName": "openfoam",
"Tags": "motorBike,CPU,OpenFOAM,OpenFOAMSimulations"
@@ -58,7 +58,7 @@
"Parameters": {
"Scenario": "PitzDaily",
"Simulation": "pitzDaily",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"Solver": "simpleFoam",
"PackageName": "openfoam",
"Tags": "pitzDaily,CPU,OpenFOAM,OpenFOAMSimulations"
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-POSTGRESQL-HAMMERDB-TPCC.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-POSTGRESQL-HAMMERDB-TPCC.json
index 832be21a0a..b455b18833 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-POSTGRESQL-HAMMERDB-TPCC.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-POSTGRESQL-HAMMERDB-TPCC.json
@@ -11,7 +11,7 @@
"DiskFilter": "osdisk:false&sizegreaterthan:256g",
"Port": "5432",
"Duration": "00:20:00",
- "VirtualUsers": "{calculate({LogicalCoreCount})}",
+ "VirtualUserCount": "{calculate({LogicalCoreCount})}",
"WarehouseCount": "{calculate({LogicalCoreCount} * 10)}",
"SharedMemoryBuffer": "{calculate({SystemMemoryMegabytes} * 85 / 100)}"
},
@@ -25,7 +25,7 @@
"SQLServer": "postgresql",
"DatabaseName": "$.Parameters.DatabaseName",
"Port": "$.Parameters.Port",
- "VirtualUsers": "$.Parameters.VirtualUsers",
+ "VirtualUserCount": "$.Parameters.VirtualUserCount",
"WarehouseCount": "$.Parameters.WarehouseCount",
"Duration": "$.Parameters.Duration",
"Role": "Server"
@@ -40,7 +40,7 @@
"PackageName": "hammerdb",
"DatabaseName": "$.Parameters.DatabaseName",
"Port": "$.Parameters.Port",
- "VirtualUsers": "$.Parameters.VirtualUsers",
+ "VirtualUserCount": "$.Parameters.VirtualUserCount",
"WarehouseCount": "$.Parameters.WarehouseCount",
"Duration": "$.Parameters.Duration",
"Role": "Client"
@@ -125,7 +125,7 @@
"Workload": "tpcc",
"SQLServer": "postgresql",
"PackageName": "hammerdb",
- "VirtualUsers": "$.Parameters.VirtualUsers",
+ "VirtualUserCount": "$.Parameters.VirtualUserCount",
"WarehouseCount": "$.Parameters.WarehouseCount",
"Port": "$.Parameters.Port",
"Duration": "$.Parameters.Duration",
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-POSTGRESQL-HAMMERDB-TPCH.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-POSTGRESQL-HAMMERDB-TPCH.json
index 82bbd23175..d596ee67f2 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-POSTGRESQL-HAMMERDB-TPCH.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-POSTGRESQL-HAMMERDB-TPCH.json
@@ -11,7 +11,7 @@
"DiskFilter": "osdisk:false&sizegreaterthan:256g",
"Port": "5432",
"Duration": "00:20:00",
- "VirtualUsers": "{calculate({LogicalCoreCount})}",
+ "VirtualUserCount": "{calculate({LogicalCoreCount})}",
"ScaleFactor": "1",
"SharedMemoryBuffer": "{calculate({SystemMemoryMegabytes} * 85 / 100)}"
},
@@ -25,7 +25,7 @@
"SQLServer": "postgresql",
"DatabaseName": "$.Parameters.DatabaseName",
"Port": "$.Parameters.Port",
- "VirtualUsers": "$.Parameters.VirtualUsers",
+ "VirtualUserCount": "$.Parameters.VirtualUserCount",
"ScaleFactor": "$.Parameters.ScaleFactor",
"Duration": "$.Parameters.Duration",
"Role": "Server"
@@ -40,7 +40,7 @@
"PackageName": "hammerdb",
"DatabaseName": "$.Parameters.DatabaseName",
"Port": "$.Parameters.Port",
- "VirtualUsers": "$.Parameters.VirtualUsers",
+ "VirtualUserCount": "$.Parameters.VirtualUserCount",
"ScaleFactor": "$.Parameters.ScaleFactor",
"Duration": "$.Parameters.Duration",
"Role": "Client"
@@ -124,7 +124,7 @@
"Workload": "tpch",
"SQLServer": "postgresql",
"PackageName": "hammerdb",
- "VirtualUsers": "$.Parameters.VirtualUsers",
+ "VirtualUserCount": "$.Parameters.VirtualUserCount",
"ScaleFactor": "$.Parameters.ScaleFactor",
"Port": "$.Parameters.Port",
"Duration": "$.Parameters.Duration",
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-REDIS.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-REDIS.json
index ac4f1a7f24..1957869ebb 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-REDIS.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-REDIS.json
@@ -10,8 +10,8 @@
"Parameters": {
"ServerPort": 6379,
"ServerThreadCount": 4,
- "ServerInstances": "{LogicalCoreCount}",
- "ClientInstances": 1,
+ "ServerInstanceCount": "{LogicalCoreCount}",
+ "ClientInstanceCount": 1,
"IsTLSEnabled": false,
"EmitAggregateMetrics": false,
"EmitRawMetrics": true,
@@ -28,7 +28,7 @@
"BindToCores": true,
"Port": "$.Parameters.ServerPort",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
- "ServerInstances": "$.Parameters.ServerInstances",
+ "ServerInstanceCount": "$.Parameters.ServerInstanceCount",
"ServerThreadCount": "$.Parameters.ServerThreadCount",
"RedisResourcesPackageName": "redisresources",
"Role": "Server"
@@ -40,7 +40,7 @@
"Scenario": "warmup_32b_pool",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 1 --clients 1 --ratio 1:0 --data-size 32 --pipeline 32 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern S:S --run-count 1 --requests=allkeys",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"WarmUp": true,
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -56,7 +56,7 @@
"Scenario": "warmup_1kb_pool",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 1 --clients 1 --ratio 1:0 --data-size 1024 --pipeline 32 --key-minimum 1 --key-maximum 500000 --key-prefix med --key-pattern S:S --run-count 1 --requests=allkeys",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"WarmUp": true,
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -72,7 +72,7 @@
"Scenario": "warmup_10kb_pool",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 1 --clients 1 --ratio 1:0 --data-size 10240 --pipeline 32 --key-minimum 1 --key-maximum 50000 --key-prefix lg --key-pattern S:S --run-count 1 --requests=allkeys",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"WarmUp": true,
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -88,7 +88,7 @@
"Scenario": "memtier_8t_16c_32b_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 8 --clients 16 --ratio 1:1 --data-size 32 --pipeline 100 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -104,7 +104,7 @@
"Scenario": "memtier_8t_16c_1kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 8 --clients 16 --ratio 1:1 --data-size 1024 --pipeline 100 --key-minimum 1 --key-maximum 500000 --key-prefix med --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -120,7 +120,7 @@
"Scenario": "memtier_8t_16c_10kb_r1:1",
"PackageName": "memtier",
"CommandLine": " --protocol redis --threads 8 --clients 16 --ratio 1:1 --data-size 10240 --pipeline 100 --key-minimum 1 --key-maximum 50000 --key-prefix lg --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -136,7 +136,7 @@
"Scenario": "memtier_16t_16c_32b_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 16 --clients 16 --ratio 1:1 --data-size 32 --pipeline 100 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -152,7 +152,7 @@
"Scenario": "memtier_16t_16c_1kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 16 --clients 16 --ratio 1:1 --data-size 1024 --pipeline 100 --key-minimum 1 --key-maximum 500000 --key-prefix med --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -168,7 +168,7 @@
"Scenario": "memtier_16t_16c_10kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 16 --clients 16 --ratio 1:1 --data-size 10240 --pipeline 100 --key-minimum 1 --key-maximum 50000 --key-prefix lg --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -184,7 +184,7 @@
"Scenario": "memtier_32t_16c_32b_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 32 --clients 16 --ratio 1:1 --data-size 32 --pipeline 100 --key-minimum 1 --key-maximum 10000000 --key-prefix sm --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -200,7 +200,7 @@
"Scenario": "memtier_32t_16c_1kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 32 --clients 16 --ratio 1:1 --data-size 1024 --pipeline 100 --key-minimum 1 --key-maximum 500000 --key-prefix med --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
@@ -216,7 +216,7 @@
"Scenario": "memtier_32t_16c_10kb_r1:1",
"PackageName": "memtier",
"CommandLine": "--protocol redis --threads 32 --clients 16 --ratio 1:1 --data-size 10240 --pipeline 100 --key-minimum 1 --key-maximum 50000 --key-prefix lg --key-pattern R:R --run-count 1 --print-percentiles 50,90,95,99,99.9 --random-data --test-time {Duration}",
- "ClientInstances": "$.Parameters.ClientInstances",
+ "ClientInstanceCount": "$.Parameters.ClientInstanceCount",
"Duration": "$.Parameters.Duration",
"IsTLSEnabled": "$.Parameters.IsTLSEnabled",
"RedisResourcesPackageName": "redisresources",
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-FPRATE.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-FPRATE.json
index 993c975563..92efd89f00 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-FPRATE.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-FPRATE.json
@@ -15,11 +15,11 @@
},
"Parameters": {
"CompilerVersion": 13,
- "Iterations": 2,
+ "IterationCount": 2,
"Benchmarks": "{calculate(\"{Platform}\".StartsWith(\"linux\") ? \"fprate\" : \"503 508 510 519 544 549 554\")}",
"RunPeak": false,
- "Threads": "{LogicalCoreCount}",
- "Copies": "{LogicalCoreCount}",
+ "ThreadCount": "{LogicalCoreCount}",
+ "CopyCount": "{LogicalCoreCount}",
"BaseOptimizingFlags": "-O2 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches",
"PeakOptimizingFlags": "-O3 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches"
},
@@ -28,13 +28,13 @@
"Type": "SpecCpuExecutor",
"Parameters": {
"Scenario": "ExecuteSPECBenchmark",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"SpecProfile": "fprate",
"Benchmarks": "$.Parameters.Benchmarks",
"PackageName": "speccpu2017",
"RunPeak": "$.Parameters.RunPeak",
- "Threads": "$.Parameters.Threads",
- "Copies": "$.Parameters.Copies",
+ "ThreadCount": "$.Parameters.ThreadCount",
+ "CopyCount": "$.Parameters.CopyCount",
"BaseOptimizingFlags": "$.Parameters.BaseOptimizingFlags",
"PeakOptimizingFlags": "$.Parameters.PeakOptimizingFlags"
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-FPSPEED.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-FPSPEED.json
index b1f9280700..430cc23126 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-FPSPEED.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-FPSPEED.json
@@ -15,11 +15,11 @@
},
"Parameters": {
"CompilerVersion": 13,
- "Iterations": 2,
+ "IterationCount": 2,
"Benchmarks": "{calculate(\"{Platform}\".StartsWith(\"linux\") ? \"fpspeed\" : \"603 619 644 654\")}",
"RunPeak": false,
- "Threads": "{LogicalCoreCount}",
- "Copies": "{LogicalCoreCount}",
+ "ThreadCount": "{LogicalCoreCount}",
+ "CopyCount": "{LogicalCoreCount}",
"BaseOptimizingFlags": "-O2 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches",
"PeakOptimizingFlags": "-O3 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches"
},
@@ -28,13 +28,13 @@
"Type": "SpecCpuExecutor",
"Parameters": {
"Scenario": "ExecuteSPECBenchmark",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"SpecProfile": "fpspeed",
"Benchmarks": "$.Parameters.Benchmarks",
"PackageName": "speccpu2017",
"RunPeak": "$.Parameters.RunPeak",
- "Threads": "$.Parameters.Threads",
- "Copies": "$.Parameters.Copies",
+ "ThreadCount": "$.Parameters.ThreadCount",
+ "CopyCount": "$.Parameters.CopyCount",
"BaseOptimizingFlags": "$.Parameters.BaseOptimizingFlags",
"PeakOptimizingFlags": "$.Parameters.PeakOptimizingFlags"
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-INTRATE.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-INTRATE.json
index 21ecae0f57..5a0305b8ed 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-INTRATE.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-INTRATE.json
@@ -15,11 +15,11 @@
},
"Parameters": {
"CompilerVersion": 13,
- "Iterations": 2,
+ "IterationCount": 2,
"Benchmarks": "{calculate(\"{Platform}\".StartsWith(\"linux\") ? \"intrate\" : \"505 525 541 548 557\")}",
"RunPeak": false,
- "Threads": "{LogicalCoreCount}",
- "Copies": "{LogicalCoreCount}",
+ "ThreadCount": "{LogicalCoreCount}",
+ "CopyCount": "{LogicalCoreCount}",
"BaseOptimizingFlags": "-O2 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches",
"PeakOptimizingFlags": "-O3 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches"
},
@@ -28,13 +28,13 @@
"Type": "SpecCpuExecutor",
"Parameters": {
"Scenario": "ExecuteSPECBenchmark",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"SpecProfile": "intrate",
"Benchmarks": "$.Parameters.Benchmarks",
"PackageName": "speccpu2017",
"RunPeak": "$.Parameters.RunPeak",
- "Threads": "$.Parameters.Threads",
- "Copies": "$.Parameters.Copies",
+ "ThreadCount": "$.Parameters.ThreadCount",
+ "CopyCount": "$.Parameters.CopyCount",
"BaseOptimizingFlags": "$.Parameters.BaseOptimizingFlags",
"PeakOptimizingFlags": "$.Parameters.PeakOptimizingFlags"
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-INTSPEED.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-INTSPEED.json
index da82934842..0b8922383b 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-INTSPEED.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU-INTSPEED.json
@@ -15,11 +15,11 @@
},
"Parameters": {
"CompilerVersion": 13,
- "Iterations": 2,
+ "IterationCount": 2,
"Benchmarks": "{calculate(\"{Platform}\".StartsWith(\"linux\") ? \"intspeed\" : \"641\")}",
"RunPeak": false,
- "Threads": "{LogicalCoreCount}",
- "Copies": "{LogicalCoreCount}",
+ "ThreadCount": "{LogicalCoreCount}",
+ "CopyCount": "{LogicalCoreCount}",
"BaseOptimizingFlags": "-O2 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches",
"PeakOptimizingFlags": "-O3 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches"
},
@@ -28,13 +28,13 @@
"Type": "SpecCpuExecutor",
"Parameters": {
"Scenario": "ExecuteSPECBenchmark",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"SpecProfile": "intspeed",
"Benchmarks": "$.Parameters.Benchmarks",
"PackageName": "speccpu2017",
"RunPeak": "$.Parameters.RunPeak",
- "Threads": "$.Parameters.Threads",
- "Copies": "$.Parameters.Copies",
+ "ThreadCount": "$.Parameters.ThreadCount",
+ "CopyCount": "$.Parameters.CopyCount",
"BaseOptimizingFlags": "$.Parameters.BaseOptimizingFlags",
"PeakOptimizingFlags": "$.Parameters.PeakOptimizingFlags"
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-FPRATE.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-FPRATE.json
index 991d155992..d9c5ccb9b0 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-FPRATE.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-FPRATE.json
@@ -15,11 +15,11 @@
},
"Parameters": {
"CompilerVersion": 13,
- "Iterations": 2,
+ "IterationCount": 2,
"Benchmarks": "fprate",
"RunPeak": false,
- "Threads": "{LogicalCoreCount}",
- "Copies": "{LogicalCoreCount}",
+ "ThreadCount": "{LogicalCoreCount}",
+ "CopyCount": "{LogicalCoreCount}",
"BaseOptimizingFlags": "-O2 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches",
"PeakOptimizingFlags": "-O3 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches"
},
@@ -28,13 +28,13 @@
"Type": "SpecCpuExecutor",
"Parameters": {
"Scenario": "ExecuteSPECBenchmark",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"SpecProfile": "fprate",
"Benchmarks": "$.Parameters.Benchmarks",
"PackageName": "speccpu2026",
"RunPeak": "$.Parameters.RunPeak",
- "Threads": "$.Parameters.Threads",
- "Copies": "$.Parameters.Copies",
+ "ThreadCount": "$.Parameters.ThreadCount",
+ "CopyCount": "$.Parameters.CopyCount",
"BaseOptimizingFlags": "$.Parameters.BaseOptimizingFlags",
"PeakOptimizingFlags": "$.Parameters.PeakOptimizingFlags"
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-FPSPEED.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-FPSPEED.json
index f84aceab66..47defab31b 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-FPSPEED.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-FPSPEED.json
@@ -15,11 +15,11 @@
},
"Parameters": {
"CompilerVersion": 13,
- "Iterations": 2,
+ "IterationCount": 2,
"Benchmarks": "fpspeed",
"RunPeak": false,
- "Threads": "{LogicalCoreCount}",
- "Copies": "{LogicalCoreCount}",
+ "ThreadCount": "{LogicalCoreCount}",
+ "CopyCount": "{LogicalCoreCount}",
"BaseOptimizingFlags": "-O2 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches",
"PeakOptimizingFlags": "-O3 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches"
},
@@ -28,13 +28,13 @@
"Type": "SpecCpuExecutor",
"Parameters": {
"Scenario": "ExecuteSPECBenchmark",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"SpecProfile": "fpspeed",
"Benchmarks": "$.Parameters.Benchmarks",
"PackageName": "speccpu2026",
"RunPeak": "$.Parameters.RunPeak",
- "Threads": "$.Parameters.Threads",
- "Copies": "$.Parameters.Copies",
+ "ThreadCount": "$.Parameters.ThreadCount",
+ "CopyCount": "$.Parameters.CopyCount",
"BaseOptimizingFlags": "$.Parameters.BaseOptimizingFlags",
"PeakOptimizingFlags": "$.Parameters.PeakOptimizingFlags"
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-INTRATE.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-INTRATE.json
index 4b55fc1946..8b356190cc 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-INTRATE.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-INTRATE.json
@@ -15,11 +15,11 @@
},
"Parameters": {
"CompilerVersion": 13,
- "Iterations": 2,
+ "IterationCount": 2,
"Benchmarks": "intrate",
"RunPeak": false,
- "Threads": "{LogicalCoreCount}",
- "Copies": "{LogicalCoreCount}",
+ "ThreadCount": "{LogicalCoreCount}",
+ "CopyCount": "{LogicalCoreCount}",
"BaseOptimizingFlags": "-O2 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches",
"PeakOptimizingFlags": "-O3 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches"
},
@@ -28,13 +28,13 @@
"Type": "SpecCpuExecutor",
"Parameters": {
"Scenario": "ExecuteSPECBenchmark",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"SpecProfile": "intrate",
"Benchmarks": "$.Parameters.Benchmarks",
"PackageName": "speccpu2026",
"RunPeak": "$.Parameters.RunPeak",
- "Threads": "$.Parameters.Threads",
- "Copies": "$.Parameters.Copies",
+ "ThreadCount": "$.Parameters.ThreadCount",
+ "CopyCount": "$.Parameters.CopyCount",
"BaseOptimizingFlags": "$.Parameters.BaseOptimizingFlags",
"PeakOptimizingFlags": "$.Parameters.PeakOptimizingFlags"
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-INTSPEED.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-INTSPEED.json
index 9bc3c9271a..ab43a92b6e 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-INTSPEED.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-SPECCPU2026-INTSPEED.json
@@ -15,11 +15,11 @@
},
"Parameters": {
"CompilerVersion": 13,
- "Iterations": 2,
+ "IterationCount": 2,
"Benchmarks": "intspeed",
"RunPeak": false,
- "Threads": "{LogicalCoreCount}",
- "Copies": "{LogicalCoreCount}",
+ "ThreadCount": "{LogicalCoreCount}",
+ "CopyCount": "{LogicalCoreCount}",
"BaseOptimizingFlags": "-O2 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches",
"PeakOptimizingFlags": "-O3 -march={calculate((\"{Architecture}\" == \"x64\") ? \"x86-64-v3\" : \"armv8.2-a\")} -flto -frecord-gcc-switches"
},
@@ -28,13 +28,13 @@
"Type": "SpecCpuExecutor",
"Parameters": {
"Scenario": "ExecuteSPECBenchmark",
- "Iterations": "$.Parameters.Iterations",
+ "IterationCount": "$.Parameters.IterationCount",
"SpecProfile": "intspeed",
"Benchmarks": "$.Parameters.Benchmarks",
"PackageName": "speccpu2026",
"RunPeak": "$.Parameters.RunPeak",
- "Threads": "$.Parameters.Threads",
- "Copies": "$.Parameters.Copies",
+ "ThreadCount": "$.Parameters.ThreadCount",
+ "CopyCount": "$.Parameters.CopyCount",
"BaseOptimizingFlags": "$.Parameters.BaseOptimizingFlags",
"PeakOptimizingFlags": "$.Parameters.PeakOptimizingFlags"
}
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK-RP.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK-RP.json
index 67f15ebf4a..278f541fcc 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK-RP.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK-RP.json
@@ -11,7 +11,7 @@
"Timeout": "00:30:00",
"FileSizeInKB": 1,
"EmitLatencySpectrum": false,
- "Workers": null,
+ "WorkerCount": null,
"TargetService": "reverse-proxy",
"CommandArguments": "--latency --threads {ThreadCount} --connections {Connection} --duration {TestDuration.TotalSeconds}s --timeout 10s https://{reverseproxyip}/{FileSizeInKB}kb"
},
@@ -23,7 +23,7 @@
"PackageName": "nginxconfiguration",
"FileSizeInKB": "$.Parameters.FileSizeInKB",
"Timeout": "$.Parameters.Timeout",
- "Workers": "$.Parameters.Workers"
+ "WorkerCount": "$.Parameters.WorkerCount"
}
},
{
@@ -33,7 +33,7 @@
"PackageName": "nginxconfiguration",
"FileSizeInKB": "$.Parameters.FileSizeInKB",
"Timeout": "$.Parameters.Timeout",
- "Workers": "$.Parameters.Workers"
+ "WorkerCount": "$.Parameters.WorkerCount"
}
},
{
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK.json
index de3eda7ce4..f3132e342d 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK.json
@@ -10,7 +10,7 @@
"Timeout": "00:30:00",
"FileSizeInKB": 1,
"EmitLatencySpectrum": false,
- "Workers": null,
+ "WorkerCount": null,
"TargetService": "server",
"CommandArguments": "--latency --threads {ThreadCount} --connections {Connection} --duration {TestDuration.TotalSeconds}s --timeout 10s https://{serverip}/api_new/{FileSizeInKB}kb"
},
@@ -22,7 +22,7 @@
"PackageName": "nginxconfiguration",
"FileSizeInKB": "$.Parameters.FileSizeInKB",
"Timeout": "$.Parameters.Timeout",
- "Workers": "$.Parameters.Workers"
+ "WorkerCount": "$.Parameters.WorkerCount"
}
},
{
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK2-RP.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK2-RP.json
index 29fcfcde47..89c016d9b3 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK2-RP.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK2-RP.json
@@ -11,7 +11,7 @@
"Timeout": "00:20:00",
"FileSizeInKB": 1,
"EmitLatencySpectrum": false,
- "Workers": null,
+ "WorkerCount": null,
"TargetService": "reverse-proxy",
"Rate": 1000,
"CommandArguments": "--rate {Rate} --latency --threads {ThreadCount} --connections {Connection} --duration {TestDuration.TotalSeconds}s --timeout 10s https://{reverseproxyip}/{FileSizeInKB}kb"
@@ -24,7 +24,7 @@
"PackageName": "nginxconfiguration",
"FileSizeInKB": "$.Parameters.FileSizeInKB",
"Timeout": "$.Parameters.Timeout",
- "Workers": "$.Parameters.Workers"
+ "WorkerCount": "$.Parameters.WorkerCount"
}
},
{
@@ -34,7 +34,7 @@
"PackageName": "nginxconfiguration",
"FileSizeInKB": "$.Parameters.FileSizeInKB",
"Timeout": "$.Parameters.Timeout",
- "Workers": "$.Parameters.Workers"
+ "WorkerCount": "$.Parameters.WorkerCount"
}
},
{
diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK2.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK2.json
index 2481db839f..3cd87f46e6 100644
--- a/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK2.json
+++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-WEB-NGINX-WRK2.json
@@ -10,7 +10,7 @@
"Timeout": "00:20:00",
"FileSizeInKB": 1,
"EmitLatencySpectrum": false,
- "Workers": null,
+ "WorkerCount": null,
"TargetService": "server",
"Rate": 1000,
"CommandArguments": "--rate {Rate} --latency --threads {ThreadCount} --connections {Connection} --duration {TestDuration.TotalSeconds}s --timeout 10s https://{serverip}/api_new/{FileSizeInKB}kb"
@@ -23,7 +23,7 @@
"PackageName": "nginxconfiguration",
"FileSizeInKB": "$.Parameters.FileSizeInKB",
"Timeout": "$.Parameters.Timeout",
- "Workers": "$.Parameters.Workers"
+ "WorkerCount": "$.Parameters.WorkerCount"
}
},
{
diff --git a/src/VirtualClient/VirtualClient.Monitors/Lspci/LspciMonitor.cs b/src/VirtualClient/VirtualClient.Monitors/Lspci/LspciMonitor.cs
index 0e25fabdd3..a76ac051a1 100644
--- a/src/VirtualClient/VirtualClient.Monitors/Lspci/LspciMonitor.cs
+++ b/src/VirtualClient/VirtualClient.Monitors/Lspci/LspciMonitor.cs
@@ -81,7 +81,7 @@ private async Task ListPciAsync(EventContext telemetryContext, CancellationToken
string command = (this.Platform == PlatformID.Unix) ? "lspci" : "lspci.exe";
string commandArguments = "-vvv";
- if (this.MonitorIterations != -1 && iteration >= this.MonitorIterations)
+ if (this.MonitorIterationCount != -1 && iteration >= this.MonitorIterationCount)
{
// Default is set to -1 for infinite loop.
break;
diff --git a/website/docs/guides/0011-profiles.md b/website/docs/guides/0011-profiles.md
index 9d4316fd3d..1145380edd 100644
--- a/website/docs/guides/0011-profiles.md
+++ b/website/docs/guides/0011-profiles.md
@@ -153,7 +153,7 @@ the system. The following table describes the set of well-known parameters that
"CommandLine": "--protected-mode no --io-threads {ServerThreadCount} --maxmemory-policy noeviction --ignore-warnings ARM64-COW-BUG --save",
"BindToCores": true,
"Port": "$.Parameters.ServerPort",
- "ServerInstances": "{LogicalProcessorCount}",
+ "ServerInstanceCount": "{LogicalProcessorCount}",
"ServerThreadCount": "$.Parameters.ServerThreadCount",
"Role": "Server"
}
@@ -247,12 +247,12 @@ the system. The following table describes the set of well-known parameters that
"Parameters": {
"Scenario": "Server",
"PackageName": "memcached",
- "CommandLine": "-p {Port} -t 4 -m {ServerMemory} -c {ServerMaxConnections}",
+ "CommandLine": "-p {Port} -t 4 -m {ServerMemory} -c {MaxServerConnectionCount}",
"BindToCores": true,
"Port": "$.Parameters.ServerPort",
"Username": "$.Parameters.Username",
"ServerThreadCount": 4,
- "ServerMaxConnections": "$.Parameters.ServerMaxConnections",
+ "MaxServerConnectionCount": "$.Parameters.MaxServerConnectionCount",
"ServerMemory": "{calculate({SystemMemoryMegabytes} / 2)}",
"Role": "Server"
}
@@ -783,7 +783,7 @@ completes. The The `SequentialExecution` component will complete when all compon
### ParallelLoopExecution
Executes all child components **in parallel**, and **repeats** this execution for a specified duration. Each component runs in its
-own loop, independently. Each component first completes `MinimumIterations` iterations, even if that takes longer than `Duration`.
+own loop, independently. Each component first completes `MinimumIterationCount` iterations, even if that takes longer than `Duration`.
After that, iterations repeat until `Duration` elapses, at which point any in-flight iteration is cancelled.
#### Supported Parameters
@@ -791,14 +791,14 @@ After that, iterations repeat until `Duration` elapses, at which point any in-fl
| Parameter | Purpose | Default Value |
|--------------------|-------------------------------------------------------------|---------------|
| Duration | Maximum time to run the parallel loop (hh:mm:ss format). | -1 (no limit) |
-| MinimumIterations | Number of iterations each child component must complete, even if `Duration` elapses. Set this value to 0 to allow `Duration` to cancel the first iteration. | 1 |
+| MinimumIterationCount | Number of iterations each child component must complete, even if `Duration` elapses. Set this value to 0 to allow `Duration` to cancel the first iteration. | 1 |
```json
{
"Type": "ParallelLoopExecution",
"Parameters": {
"Duration": "00:10:00",
- "MinimumIterations": 3
+ "MinimumIterationCount": 3
},
"Components": [
{
diff --git a/website/docs/workloads/dotnetruntime/dotnetruntime-profiles.md b/website/docs/workloads/dotnetruntime/dotnetruntime-profiles.md
index e1f5143710..ce22a19993 100644
--- a/website/docs/workloads/dotnetruntime/dotnetruntime-profiles.md
+++ b/website/docs/workloads/dotnetruntime/dotnetruntime-profiles.md
@@ -30,8 +30,8 @@ This profile is designed by the Intel team as part of Cloud R1 Workload to ident
| Parameter | Purpose | Default value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
- | NumberOfJvmInstances | Optional. This specifies the number of JVM(Java Virtual Machine) application instances to run. | 1
- | NumberOfWarehouses | Optional. This specifies the number of warehouses that we can have. | 8
+ | JvmInstanceCount | Optional. This specifies the number of JVM(Java Virtual Machine) application instances to run. | 1
+ | WarehouseCount | Optional. This specifies the number of warehouses that we can have. | 8
| RampUpSeconds | Optional. This specifies the time in seconds that the workload will ramp up/warm up. | 60
| MeasurementSeconds | Optional. This specifies the time in seconds that the workload will run. | 3600
| FixedThroughput | Optional. This specifies the target throughput. The workload will try to target the specified throughput. | 16000 |
@@ -52,6 +52,6 @@ This profile is designed by the Intel team as part of Cloud R1 Workload to ident
VirtualClient.exe --profile=PERF-CPU-DOTNETRUNTIME.json --system=Juno --timeout=1440 --packageStore="{BlobConnectionString|SAS Uri}"
# Increase the scale factors.
- VirtualClient.exe --profile=PERF-CPU-DOTNETRUNTIME.json --system=Juno --timeout=1440 --packageStore="{BlobConnectionString|SAS Uri}" --parameters=NumberOfJvmInstances=2
- VirtualClient.exe --profile=PERF-CPU-DOTNETRUNTIME.json --system=Juno --timeout=1440 --packageStore="{BlobConnectionString|SAS Uri}" --parameters=NumberOfJvmInstances=2,,,NumberOfWarehouses=16
+ VirtualClient.exe --profile=PERF-CPU-DOTNETRUNTIME.json --system=Juno --timeout=1440 --packageStore="{BlobConnectionString|SAS Uri}" --parameters=JvmInstanceCount=2
+ VirtualClient.exe --profile=PERF-CPU-DOTNETRUNTIME.json --system=Juno --timeout=1440 --packageStore="{BlobConnectionString|SAS Uri}" --parameters=JvmInstanceCount=2,,,WarehouseCount=16
```
\ No newline at end of file
diff --git a/website/docs/workloads/hplinpack/hplinpack-profiles.md b/website/docs/workloads/hplinpack/hplinpack-profiles.md
index 9da3f5dba1..e5eadef8d7 100644
--- a/website/docs/workloads/hplinpack/hplinpack-profiles.md
+++ b/website/docs/workloads/hplinpack/hplinpack-profiles.md
@@ -35,7 +35,7 @@ This profile runs HPLinpack workload on the system without any specific performa
| BlockSizeNB | The partitioning blocking factor | 256 |
| CompilerVersion | Version of the GCC compiler to use. | Default version of GCC for the Linux distro. |
| CCFLAGS | GCC compiler flags | - Intel/AMD Systems: -O3 -march=native
- ARM Systems: -O3 -march=armv8-a
|
- | NumberOfProcesses | The number of processes to launch in parallel. | # logical processors |
+ | ProcessCount | The number of processes to launch in parallel. | # logical processors |
| ProblemSizeN | The order of coefficient matrix of set of linear equations that we want to solve | Calculated to use approximately 80% of available memory on the system. |
There are two other input values for HPLinpack. They are
@@ -95,7 +95,7 @@ This profile runs HPLinpack workload with AMD performance libraries.
| BlockSizeNB | The partitioning blocking factor | 256 |
| CompilerVersion | Version of the GCC compiler to use. | Default version of GCC for the Linux distro. |
| CCFLAGS | GCC compiler flags | -O3 -march=native |
- | NumberOfProcesses | The number of processes to launch in parallel. | # logical processors |
+ | ProcessCount | The number of processes to launch in parallel. | # logical processors |
| PerformanceLibraryVersion | The version of the performance libraries you would like to use. Supported versions for AMD include: 4.2.0, 5.0.0, 5.1.0 | 5.1.0 |
| ProblemSizeN | The order of coefficient matrix of set of linear equations that we want to solve | Calculated to use approximately 80% of available memory on the system. |
@@ -145,7 +145,7 @@ This profile runs HPLinpack workload with ARM performance libraries.
| BlockSizeNB | The partitioning blocking factor | 256 |
| CompilerVersion | Version of the GCC compiler to use. | Default version of GCC for the Linux distro. |
| CCFLAGS | GCC compiler flags | -O3 -march=armv8-a |
- | NumberOfProcesses | The number of processes to launch in parallel. | # logical processors |
+ | ProcessCount | The number of processes to launch in parallel. | # logical processors |
| PerformanceLibraryVersion | The version of the performance libraries you would like to use. Supported versions for ARM include: 23.04.1, 24.10, 25.04.1, 26.01.1 | 26.01.1 |
| ProblemSizeN | The order of coefficient matrix of set of linear equations that we want to solve | Calculated to use approximately 80% of available memory on the system. |
@@ -195,7 +195,7 @@ This profile runs HPLinpack workload with Intel performance libraries.
| BlockSizeNB | The partitioning blocking factor | 256 |
| CompilerVersion | Version of the GCC compiler to use. | Default version of GCC for the Linux distro. |
| CCFLAGS | GCC compiler flags | -O3 -march=native |
- | NumberOfProcesses | The number of processes to launch in parallel. | # logical processors |
+ | ProcessCount | The number of processes to launch in parallel. | # logical processors |
| PerformanceLibraryVersion | The version of the performance libraries you would like to use. Supported versions for Intel include: 2024.2.2.17, 2025.1.0.803 | 2024.2.2.17 |
| ProblemSizeN | The order of coefficient matrix of set of linear equations that we want to solve | Calculated to use approximately 80% of available memory on the system. |
diff --git a/website/docs/workloads/memcached/memcached-profiles.md b/website/docs/workloads/memcached/memcached-profiles.md
index 121ee0d50d..3b64eb4360 100644
--- a/website/docs/workloads/memcached/memcached-profiles.md
+++ b/website/docs/workloads/memcached/memcached-profiles.md
@@ -76,11 +76,11 @@ Runs the Memtier workload against to generate various network traffic patterns a
| Parameter | Purpose | Default Value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| Username | Required when Virtual Client itself is launched by any process running as 'root' (e.g. a daemon).
Defines a specific username under which to run the Memcached server. | The user account for the process that launches Virtual Client. |
- | ClientInstances | Optional. Defines the number of distinct client instances that to execute requests against the server concurrently. | 1 |
+ | ClientInstanceCount | Optional. Defines the number of distinct client instances that to execute requests against the server concurrently. | 1 |
| EmitAggregateMetrics | Optional. "True" to emit aggregate/rollup metrics from all individual Memtier client/Redis server request streams. The profile executes a Redis server per logical processor on the system and can thus emit a lot of metrics. As such emitting the metrics as aggregates of all Redis server processes may be desirable. | false |
| EmitRawMetrics | Optional. "True" to emit the raw metrics from each individual Memtier client/Redis server request stream. This is the default option.. | true |
| Duration | Optional. Defines the length of time to execute the Memtier benchmark operations against the Memcached server for each scenario in the profile. | 2 mins |
- | ServerMaxConnections | Optional. The Maxium number of connections the Memcached server will allow. This allows the user to adjust alongside the number of client instances for higher scale situations. | |
+ | MaxServerConnectionCount | Optional. The maximum number of connections the Memcached server will allow. This allows the user to adjust alongside the number of client instances for higher scale situations. | |
| ServerPort | Optional. The initial port on which the Memcached server will listen for traffic. | 6379 |
* **Component Parameters**
@@ -94,13 +94,13 @@ Runs the Memtier workload against to generate various network traffic patterns a
| PackageName | The name of the package that contains the Memcached server binaries/scripts. | |
| Port | The initial port on which the Memcached servers will listen for traffic. Additional ports will be used for each 1 server instance defined in a sequental manner (e.g. 6379, 6380, 6381) | |
| ServerThreadCount | The number of threads to use by the Memcached server to handle operations. | 4 |
- | ServerMaxConnections | The maximum number of connections the Memcached server will allow in total. | 16384 |
+ | MaxServerConnectionCount | The maximum number of connections the Memcached server will allow in total. | 16384 |
| Username | Required when Virtual Client itself is launched by any process running as 'root' (e.g. a daemon).
Defines a specific username under which to run the Memcached server. | The user account for the process that launches Virtual Client. |
| Client Role Parameter | Purpose | Default Value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| Scenario | Scenario used to define the purpose of the action in the profile. This can be used to specify exact actions to run or exclude from the profile. | |
- | ClientInstances | Defines the number of concurrent Memtier processes to start for execution of requests against the Memcached server. Note that each client instance will open 1 connection against the server for each --thread and --clients definition (e.g. --threads 16 --clients 16 == 256 connections). Ensure the Memcached server OS limits exceed this number of connections (e.g. ulimit -Sn on Linux). | 1 |
+ | ClientInstanceCount | Defines the number of concurrent Memtier processes to start for execution of requests against the Memcached server. Note that each client instance will open 1 connection against the server for each --thread and --clients definition (e.g. --threads 16 --clients 16 == 256 connections). Ensure the Memcached server OS limits exceed this number of connections (e.g. ulimit -Sn on Linux). | 1 |
| EmitAggregateMetrics | Optional. "True" to emit aggregate/rollup metrics from all individual Memtier client/Redis server request streams. The profile executes a Redis server per logical processor on the system and can thus emit a lot of metrics. As such emitting the metrics as aggregates of all Redis server processes may be desirable. | false |
| EmitRawMetrics | Optional. "True" to emit the raw metrics from each individual Memtier client/Redis server request stream. This is the default option.. | true |
| CommandLine | The command line to use for executing the Memtier workload against the Memcached server. Note that the --port and --server options will be added automatically by the executor. For the --key-pattern option, 'S' means sequential distribution, 'R' means uniform random distribution and 'G' means Gaussian distribution of object. | |
diff --git a/website/docs/workloads/network-ping/network-ping-profiles.md b/website/docs/workloads/network-ping/network-ping-profiles.md
index 3f73f1570f..47a4c49a2d 100644
--- a/website/docs/workloads/network-ping/network-ping-profiles.md
+++ b/website/docs/workloads/network-ping/network-ping-profiles.md
@@ -34,8 +34,8 @@ respond to network ping requests.
| Parameter | Purpose | Default Value |
|----------------|---------|---------------|
| IPAddress | Required. The IP address or DNS host name of the target endpoint to which to send network pings and measure round trip response times. DNS host names are resolved once per action, preferring IPv4 when available. Loopback address can be used: 127.0.0.1. | null |
- | Duration | Optional. The duration for which the network ping test will run. This can be a valid timespan (e.g. 00:10:00 for 10 minutes) or a simple numeric value representing total seconds (e.g. 600). When specified, it overrides PingIterations. | null (uses PingIterations) |
- | PingIterations | Optional. The number of individual network pings that will be conducted. This is used when Duration is not specified. | 300 |
+ | Duration | Optional. The duration for which the network ping test will run. This can be a valid timespan (e.g. 00:10:00 for 10 minutes) or a simple numeric value representing total seconds (e.g. 600). When specified, it overrides PingIterationCount. | null (uses PingIterationCount) |
+ | PingIterationCount | Optional. The number of individual network pings that will be conducted. This is used when Duration is not specified. | 300 |
* **Profile Runtimes**
See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile
@@ -56,5 +56,5 @@ respond to network ping requests.
VirtualClient.exe --profile=PERF-NETWORK-PING.json --system=Demo --timeout=1440 --parameters=IPAddress=1.2.3.4,,,Duration=00:10:00
# Execute the workload profile with custom ping iterations
- VirtualClient.exe --profile=PERF-NETWORK-PING.json --system=Demo --timeout=1440 --parameters=IPAddress=1.2.3.4,,,PingIterations=500
+ VirtualClient.exe --profile=PERF-NETWORK-PING.json --system=Demo --timeout=1440 --parameters=IPAddress=1.2.3.4,,,PingIterationCount=500
```
\ No newline at end of file
diff --git a/website/docs/workloads/nginx/nginx-profiles.md b/website/docs/workloads/nginx/nginx-profiles.md
index 87ada20a6a..66b034e4d8 100644
--- a/website/docs/workloads/nginx/nginx-profiles.md
+++ b/website/docs/workloads/nginx/nginx-profiles.md
@@ -28,7 +28,7 @@ workload that requires two separate systems/VMs (a Client and a Server) connecte
| Timeout | Optional. The maximum time to wait for the workload to complete. | 00:30:00 |
| FileSizeInKB | Optional. The size of the file (in KB) served by the NGINX server for each request. | 1 |
| EmitLatencySpectrum | Optional. Whether to emit the full latency spectrum in the results. | false |
- | Workers | Optional. The number of NGINX worker processes. If null, the default NGINX configuration is used. | null |
+ | WorkerCount | Optional. The number of NGINX worker processes. If null, the default NGINX configuration is used. | null |
| CommandArguments | Optional. The command line arguments to pass to the Wrk toolset. | |
* **Profile Components**
@@ -78,7 +78,7 @@ differs from wrk in that it applies a constant throughput/rate to produce accura
| Timeout | Optional. The maximum time to wait for the workload to complete. | 00:20:00 |
| FileSizeInKB | Optional. The size of the file (in KB) served by the NGINX server for each request. | 1 |
| EmitLatencySpectrum | Optional. Whether to emit the full latency spectrum in the results. | false |
- | Workers | Optional. The number of NGINX worker processes. If null, the default NGINX configuration is used. | null |
+ | WorkerCount | Optional. The number of NGINX worker processes. If null, the default NGINX configuration is used. | null |
| Rate | Optional. The constant request rate (requests/sec) applied by Wrk2. | 1000 |
| CommandArguments | Optional. The command line arguments to pass to the Wrk2 toolset. | |
@@ -134,7 +134,7 @@ This profile requires three nodes for the roles Client, Reverse Proxy, and Serve
| Timeout | Optional. The maximum time to wait for the workload to complete. | 00:30:00 |
| FileSizeInKB | Optional. The size of the file (in KB) served by the NGINX server for each request. | 1 |
| EmitLatencySpectrum | Optional. Whether to emit the full latency spectrum in the results. | false |
- | Workers | Optional. The number of NGINX worker processes. If null, the default NGINX configuration is used. | null |
+ | WorkerCount | Optional. The number of NGINX worker processes. If null, the default NGINX configuration is used. | null |
| CommandArguments | Optional. The command line arguments to pass to the Wrk toolset. | |
* **Profile Components**
@@ -193,7 +193,7 @@ This profile requires three nodes for the roles Client, Reverse Proxy, and Serve
| Timeout | Optional. The maximum time to wait for the workload to complete. | 00:20:00 |
| FileSizeInKB | Optional. The size of the file (in KB) served by the NGINX server for each request. | 1 |
| EmitLatencySpectrum | Optional. Whether to emit the full latency spectrum in the results. | false |
- | Workers | Optional. The number of NGINX worker processes. If null, the default NGINX configuration is used. | null |
+ | WorkerCount | Optional. The number of NGINX worker processes. If null, the default NGINX configuration is used. | null |
| Rate | Optional. The constant request rate (requests/sec) applied by Wrk2. | 1000 |
| CommandArguments | Optional. The command line arguments to pass to the Wrk2 toolset. | |
diff --git a/website/docs/workloads/openfoam/openfoam-profiles.md b/website/docs/workloads/openfoam/openfoam-profiles.md
index e454ce6c23..f6bcf111a9 100644
--- a/website/docs/workloads/openfoam/openfoam-profiles.md
+++ b/website/docs/workloads/openfoam/openfoam-profiles.md
@@ -37,7 +37,7 @@ Runs the OpenFOAM workload which measures performance in terms of iterations per
| Parameter | Purpose | Default Value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
- | Iterations | Optional. Number of iterations for which particular simulation will be run. | 500 |
+ | IterationCount | Optional. Number of iterations for which particular simulation will be run. | 500 |
* **Profile Runtimes**
See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile
@@ -49,7 +49,7 @@ Runs the OpenFOAM workload which measures performance in terms of iterations per
``` bash
./VirtualClient --profile=PERF-OPENFOAM.json
- ./VirtualClient --profile=PERF-OPENFOAM.json --parameters=Iterations=10
+ ./VirtualClient --profile=PERF-OPENFOAM.json --parameters=IterationCount=10
./VirtualClient --profile=PERF-OPENFOAM.json --scenarios=airFoil2D,elbow,motorBike
```
\ No newline at end of file
diff --git a/website/docs/workloads/postgresql/postgresql-profiles.md b/website/docs/workloads/postgresql/postgresql-profiles.md
index 0c897bb258..0ff4170cf2 100644
--- a/website/docs/workloads/postgresql/postgresql-profiles.md
+++ b/website/docs/workloads/postgresql/postgresql-profiles.md
@@ -66,7 +66,7 @@ The TPCC scenario uses HammerDB to create and populate a PostgreSQL database wit
"Workload": "tpcc",
"SQLServer": "postgresql",
"PackageName": "hammerdb",
- "VirtualUsers": "{calculate({LogicalCoreCount})}",
+ "VirtualUserCount": "{calculate({LogicalCoreCount})}",
"WarehouseCount": "{calculate({SystemMemoryMegabytes} * 15 / 800)}",
"Port": "$.Parameters.Port",
"Role": "Server"
@@ -91,7 +91,7 @@ The TPCH scenario uses HammerDB to create and populate a PostgreSQL database wit
"Workload": "tpch",
"SQLServer": "postgresql",
"PackageName": "hammerdb",
- "VirtualUsers": "{calculate({LogicalCoreCount})}",
+ "VirtualUserCount": "{calculate({LogicalCoreCount})}",
"ScaleFactor": "10",
"Port": "$.Parameters.Port",
"Duration": "$.Parameters.Duration",
@@ -156,7 +156,7 @@ Runs the PostgreSQL workload against the HammerDB tool which generates analytica
| Duration | Optional. Duration for the workload execution. | "00:20:00" |
| Workload | Required. Either "tpcc" or "tpch" | N/A |
| SQLServer | Required. Normally "postgresql" | N/A |
- | VirtualUsers | Optional. Number of virtual users (threads) for the workload setup | vCPU |
+ | VirtualUserCount | Optional. Number of virtual users (threads) for the workload setup | vCPU |
| WarehouseCount | Optional. Number of warehouses created (TPCC only). | mem*15/800 |
| ScaleFactor | Optional. Scale factor for TPCH workload. | 10 |
| SharedMemoryBuffer | Optional. PostgreSQL shared memory buffer size. | mem*85/100 |
diff --git a/website/docs/workloads/redis/redis-profiles.md b/website/docs/workloads/redis/redis-profiles.md
index 8490c9e6a5..9394b4c334 100644
--- a/website/docs/workloads/redis/redis-profiles.md
+++ b/website/docs/workloads/redis/redis-profiles.md
@@ -80,10 +80,10 @@ We have two profiles for Redis.One supports redis with TLS and one without TLS.
| Parameter | Purpose | Default Value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| Duration | Optional. Defines the length of time to execute the Memtier benchmark operations against the Redis servers for each scenario in the profile. | 2 mins |
- | ClientInstances | Optional. Defines the number of distinct client instances that to execute requests against each Redis server concurrently. | 1 |
+ | ClientInstanceCount | Optional. Defines the number of distinct client instances that to execute requests against each Redis server concurrently. | 1 |
| EmitAggregateMetrics | Optional. "True" to emit aggregate/rollup metrics from all individual Memtier client/Redis server request streams. The profile executes a Redis server per logical processor on the system and can thus emit a lot of metrics. As such emitting the metrics as aggregates of all Redis server processes may be desirable. | false |
| EmitRawMetrics | Optional. "True" to emit the raw metrics from each individual Memtier client/Redis server request stream. This is the default option.. | true |
- | ServerInstances | Optional. Defines the number of distinct Redis server instances to run concurrently. This allows the user to adjust alongside the number of client instances for higher scale situations. | # logical processors |
+ | ServerInstanceCount | Optional. Defines the number of distinct Redis server instances to run concurrently. This allows the user to adjust alongside the number of client instances for higher scale situations. | # logical processors |
| ServerThreadCount | Optional. The number of threads to use by the Redis server to handle operations. | 4 |
| ServerPort | Optional. The initial port on which the Redis servers will listen for traffic. Additional ports will be used for each 1 server instance defined in a sequential manner (e.g. 6379, 6380, 6381) | 6379 |
| IsTLSEnabled | Optional. It defines if Redis server runs with TLS or not. "True" for TLS, "False" for no TLS| False |
@@ -98,7 +98,7 @@ We have two profiles for Redis.One supports redis with TLS and one without TLS.
| CommandLine | The command line to use for executing the Redis server. | |
| PackageName | The name of the package that contains the Redis server binaries/scripts. | |
| Port | The initial port on which the Redis servers will listen for traffic. Additional ports will be used for each 1 server instance defined in a sequental manner (e.g. 6379, 6380, 6381) | |
- | ServerInstances | The number of distinct Redis server instances to run concurrently. | # logical processors |
+ | ServerInstanceCount | The number of distinct Redis server instances to run concurrently. | # logical processors |
| ServerThreadCount | The number of threads to use by the Redis server to handle operations. | 4 |
| Username | Required when Virtual Client itself is launched by any process running as 'root' (e.g. a daemon)
Defines a specific username under which to run the Redis server. | The user account for the process that launches Virtual Client. |
| IsTLSEnabled | It defines if Redis server runs with TLS or not. "True" for TLS, "False" for no TLS| False |
@@ -107,7 +107,7 @@ We have two profiles for Redis.One supports redis with TLS and one without TLS.
| Client Role Parameter | Purpose | Default Value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| Scenario | Scenario used to define the purpose of the action in the profile. This can be used to specify exact actions to run or exclude from the profile. | |
- | ClientInstances | Defines the number of concurrent Memtier processes to start for execution of requests against the Memcached server. Note that each client instance will open 1 connection against the server for each --thread and --clients definition (e.g. --threads 16 --clients 16 == 256 connections). Ensure the Memcached server OS limits exceed this number of connections (e.g. ulimit -Sn on Linux). | 8 |
+ | ClientInstanceCount | Defines the number of concurrent Memtier processes to start for execution of requests against the Memcached server. Note that each client instance will open 1 connection against the server for each --thread and --clients definition (e.g. --threads 16 --clients 16 == 256 connections). Ensure the Memcached server OS limits exceed this number of connections (e.g. ulimit -Sn on Linux). | 8 |
| CommandLine | The command line to use for executing the Memtier workload against the Memcached server. Note that the --port and --server options will be added automatically by the executor. For the --key-pattern option, 'S' means sequential distribution, 'R' means uniform random distribution and 'G' means Gaussian distribution of object. | |
| EmitAggregateMetrics | Optional. "True" to emit aggregate/rollup metrics from all individual Memtier client/Redis server request streams. The profile executes a Redis server per logical processor on the system and can thus emit a lot of metrics. As such emitting the metrics as aggregates of all Redis server processes may be desirable. | false |
| EmitRawMetrics | Optional. "True" to emit the raw metrics from each individual Memtier client/Redis server request stream. This is the default option. | true |
diff --git a/website/docs/workloads/speccpu/speccpu-profiles.md b/website/docs/workloads/speccpu/speccpu-profiles.md
index 4480cf1e9a..c4e945e651 100644
--- a/website/docs/workloads/speccpu/speccpu-profiles.md
+++ b/website/docs/workloads/speccpu/speccpu-profiles.md
@@ -39,11 +39,11 @@ for evaluating the performance of the CPU for processing calculations.
| Parameter | Purpose | Default value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| CompilerVersion | Optional. The version of the compiler to use. | 13 |
- | Iterations | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
+ | IterationCount | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
| Benchmarks | Optional. The benchmark suite or list of benchmarks to run. | fprate |
| RunPeak | Optional. True to run the workload 'Peak' scenario, False to run the workload 'Base' scenario. | false (Base) |
- | Threads | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
- | Copies | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
+ | ThreadCount | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
+ | CopyCount | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
| BaseOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Base' scenario | - X64 systems: -g -O2 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O2 -march=armv8.2-a -flto -frecord-gcc-switches
|
| PeakOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Peak' scenario | - X64 systems: -g -O3 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O3 -march=armv8.2-a -flto -frecord-gcc-switches
|
@@ -95,11 +95,11 @@ for evaluating the performance of the CPU for processing calculations.
| Parameter | Purpose | Default value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| CompilerVersion | Optional. The version of the compiler to use. | 13 |
- | Iterations | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
+ | IterationCount | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
| Benchmarks | Optional. The benchmark suite or list of benchmarks to run. | fpspeed |
| RunPeak | Optional. True to run the workload 'Peak' scenario, False to run the workload 'Base' scenario. | false (Base) |
- | Threads | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
- | Copies | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
+ | ThreadCount | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
+ | CopyCount | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
| BaseOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Base' scenario | - X64 systems: -g -O2 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O2 -march=armv8.2-a -flto -frecord-gcc-switches
|
| PeakOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Peak' scenario | - X64 systems: -g -O3 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O3 -march=armv8.2-a -flto -frecord-gcc-switches
|
@@ -150,11 +150,11 @@ for evaluating the performance of the CPU for processing calculations.
| Parameter | Purpose | Default value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| CompilerVersion | Optional. The version of the compiler to use. | 13 |
- | Iterations | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
+ | IterationCount | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
| Benchmarks | Optional. The benchmark suite or list of benchmarks to run. | intrate |
| RunPeak | Optional. True to run the workload 'Peak' scenario, False to run the workload 'Base' scenario. | false (Base) |
- | Threads | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
- | Copies | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
+ | ThreadCount | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
+ | CopyCount | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
| BaseOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Base' scenario | - X64 systems: -g -O2 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O2 -march=armv8.2-a -flto -frecord-gcc-switches
|
| PeakOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Peak' scenario | - X64 systems: -g -O3 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O3 -march=armv8.2-a -flto -frecord-gcc-switches
|
@@ -205,11 +205,11 @@ for evaluating the performance of the CPU for processing calculations.
| Parameter | Purpose | Default value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| CompilerVersion | Optional. The version of the compiler to use. | 13 |
- | Iterations | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
+ | IterationCount | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
| Benchmarks | Optional. The benchmark suite or list of benchmarks to run. | intspeed |
| RunPeak | Optional. True to run the workload 'Peak' scenario, False to run the workload 'Base' scenario. | false (Base) |
- | Threads | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
- | Copies | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
+ | ThreadCount | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
+ | CopyCount | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
| BaseOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Base' scenario | - X64 systems: -g -O2 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O2 -march=armv8.2-a -flto -frecord-gcc-switches
|
| PeakOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Peak' scenario | - X64 systems: -g -O3 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O3 -march=armv8.2-a -flto -frecord-gcc-switches
|
@@ -260,11 +260,11 @@ for evaluating the performance of the CPU for processing calculations.
| Parameter | Purpose | Default value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| CompilerVersion | Optional. The version of the compiler to use. | 13 |
- | Iterations | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
+ | IterationCount | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
| Benchmarks | Optional. The benchmark suite or list of benchmarks to run. | fprate |
| RunPeak | Optional. True to run the workload 'Peak' scenario, False to run the workload 'Base' scenario. | false (Base) |
- | Threads | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
- | Copies | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
+ | ThreadCount | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
+ | CopyCount | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
| BaseOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Base' scenario | - X64 systems: -g -O2 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O2 -march=armv8.2-a -flto -frecord-gcc-switches
|
| PeakOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Peak' scenario | - X64 systems: -g -O3 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O3 -march=armv8.2-a -flto -frecord-gcc-switches
|
@@ -311,11 +311,11 @@ for evaluating the performance of the CPU for processing calculations.
| Parameter | Purpose | Default value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| CompilerVersion | Optional. The version of the compiler to use. | 13 |
- | Iterations | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
+ | IterationCount | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
| Benchmarks | Optional. The benchmark suite or list of benchmarks to run. | fpspeed |
| RunPeak | Optional. True to run the workload 'Peak' scenario, False to run the workload 'Base' scenario. | false (Base) |
- | Threads | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
- | Copies | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
+ | ThreadCount | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
+ | CopyCount | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
| BaseOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Base' scenario | - X64 systems: -g -O2 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O2 -march=armv8.2-a -flto -frecord-gcc-switches
|
| PeakOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Peak' scenario | - X64 systems: -g -O3 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O3 -march=armv8.2-a -flto -frecord-gcc-switches
|
@@ -361,11 +361,11 @@ for evaluating the performance of the CPU for processing calculations.
| Parameter | Purpose | Default value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| CompilerVersion | Optional. The version of the compiler to use. | 13 |
- | Iterations | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
+ | IterationCount | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
| Benchmarks | Optional. The benchmark suite or list of benchmarks to run. | intrate |
| RunPeak | Optional. True to run the workload 'Peak' scenario, False to run the workload 'Base' scenario. | false (Base) |
- | Threads | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
- | Copies | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
+ | ThreadCount | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
+ | CopyCount | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
| BaseOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Base' scenario | - X64 systems: -g -O2 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O2 -march=armv8.2-a -flto -frecord-gcc-switches
|
| PeakOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Peak' scenario | - X64 systems: -g -O3 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O3 -march=armv8.2-a -flto -frecord-gcc-switches
|
@@ -411,11 +411,11 @@ for evaluating the performance of the CPU for processing calculations.
| Parameter | Purpose | Default value |
|---------------------------|---------------------------------------------------------------------------------|---------------|
| CompilerVersion | Optional. The version of the compiler to use. | 13 |
- | Iterations | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
+ | IterationCount | Optional. The number of iterations for speccpu to run the benchmark/suite. | 2 |
| Benchmarks | Optional. The benchmark suite or list of benchmarks to run. | intspeed |
| RunPeak | Optional. True to run the workload 'Peak' scenario, False to run the workload 'Base' scenario. | false (Base) |
- | Threads | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
- | Copies | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
+ | ThreadCount | Optional. Determines the number of threads to use for running the benchmark. | # logical processors |
+ | CopyCount | Optional. Determines the number of copies of the benchmark to run concurrently. | # logical processors |
| BaseOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Base' scenario | - X64 systems: -g -O2 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O2 -march=armv8.2-a -flto -frecord-gcc-switches
|
| PeakOptimizationFlags | Optional. Optimization flags to pass to the GCC compiler when running the 'Peak' scenario | - X64 systems: -g -O3 -march=x86-64-v3 -flto -frecord-gcc-switches
- ARM64 systems: -g -O3 -march=armv8.2-a -flto -frecord-gcc-switches
|
diff --git a/website/docs/workloads/sysbench/sysbench-addendum.md b/website/docs/workloads/sysbench/sysbench-addendum.md
index 79839c4285..cc813e025b 100644
--- a/website/docs/workloads/sysbench/sysbench-addendum.md
+++ b/website/docs/workloads/sysbench/sysbench-addendum.md
@@ -60,7 +60,7 @@ the database on one or multiple disks, Sysbench will go ahead and place the tabl
### Parameters
-* **Threads**
+* **ThreadCount**
The Sysbench workload generator prepares a list of statements to run on MySQL. MySQL can only accept so many prepared statements. We already max out this variable in a
scenario in the MySQLConfiguation dependency, but even when setting the max_prepared_stmt_count to a large number, Sysbench can throw a 'too many connections' error. This has shown
to be the case even on VMs with high core counts and equipped with the ability for high thread counts. User caution is advised for thread counts > 176; the VC team has only successfully
diff --git a/website/docs/workloads/sysbench/sysbench-profiles.md b/website/docs/workloads/sysbench/sysbench-profiles.md
index 8acb0e2bb4..93214a4669 100644
--- a/website/docs/workloads/sysbench/sysbench-profiles.md
+++ b/website/docs/workloads/sysbench/sysbench-profiles.md
@@ -75,7 +75,7 @@ scenario is Balanced.
"BenchmarkName": "OLTP",
"DatabaseName": "sbtest",
"DatabaseScenario": "Configure",
- "Threads": "8",
+ "ThreadCount": "8",
"NumTables": "16",
"RecordCount": "500",
"Duration": "00:20:00",
@@ -233,7 +233,7 @@ There are a lot of moving parts to this workload that allows for both out-of-box
"DatabaseName": "$.Parameters.DatabaseName",
"DatabaseScenario": "$.Parameters.DatabaseScenario",
"PackageName": "sysbench",
- "Threads": "$.Parameters.Threads",
+ "ThreadCount": "$.Parameters.ThreadCount",
"RecordCount": "$.Parameters.RecordCount",
"TableCount": "$.Parameters.TableCount",
"Role": "Client"
@@ -258,7 +258,7 @@ There are a lot of moving parts to this workload that allows for both out-of-box
"Duration": "$.Parameters.Duration",
"Workload": "oltp_read_only",
"PackageName": "sysbench",
- "Threads": "$.Parameters.Threads",
+ "ThreadCount": "$.Parameters.ThreadCount",
"RecordCount": "$.Parameters.RecordCount",
"TableCount": "$.Parameters.TableCount",
"Role": "Client"
@@ -303,7 +303,7 @@ Runs a system-intensive workload using the Sysbench Benchmark to test the bandwi
| Parameter | Purpose |Default |
|---------------------------|-------------------------------------------------------------------------------------------------------------------------|-------------|
- | Threads | Optional. Number of threads to use during workload execution. | vCPU * 8 |
+ | ThreadCount | Optional. Number of threads to use during workload execution. | vCPU * 8 |
| RecordCount | Optional. Number of records per table in the database (OLTP only). | 10^(log2(vCPU) + 2) |
| NumTables | Optional. Number of tables created in the database. | 10 |
@@ -359,7 +359,7 @@ Runs a system-intensive workload using the Sysbench Benchmark to test the bandwi
| Parameter | Purpose |Default |
|---------------------------|-------------------------------------------------------------------------------------------------------------------------|-------------|
- | Threads | Optional. Number of threads to use during workload execution. | vCPU * 8 |
+ | ThreadCount | Optional. Number of threads to use during workload execution. | vCPU * 8 |
| WarehouseCount | Optional. Number of warehouses per table in the database. | 100 |
| NumTables | Optional. Number of tables created in the database. | 10 |