From d6156b4010cbe3b499ee0fcd59ac0df474595249 Mon Sep 17 00:00:00 2001 From: "Samuel Filho (WIPRO LIMITED)" Date: Thu, 21 Aug 2025 15:49:11 -0300 Subject: [PATCH 1/3] Equalize Sysbench parameters distribution in command arguments string to optimize and speed benchmark Kusto queries. --- .../Sysbench/SysbenchClientExecutor.cs | 14 ++------ .../Sysbench/SysbenchConfiguration.cs | 12 ++----- .../Sysbench/SysbenchExecutor.cs | 36 +++++++++++++++++++ 3 files changed, 41 insertions(+), 21 deletions(-) diff --git a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchClientExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchClientExecutor.cs index 9c891a8df0..859bfe62f9 100644 --- a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchClientExecutor.cs +++ b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchClientExecutor.cs @@ -203,11 +203,7 @@ private Task ExecuteWorkloadAsync(EventContext telemetryContext, CancellationTok private async Task RunOLTPWorkloadAsync(EventContext telemetryContext, CancellationToken cancellationToken) { - int tableCount = GetTableCount(this.DatabaseScenario, this.TableCount, this.Workload); - int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.Threads); - int recordCount = GetRecordCount(this.SystemManager, this.DatabaseScenario, this.RecordCount); - - this.sysbenchLoggingArguments = $"--dbName {this.DatabaseName} --databaseSystem {this.DatabaseSystem} --benchmark {this.Benchmark} --workload {this.Workload} --threadCount {threadCount} --tableCount {tableCount} --recordCount {recordCount} "; + this.sysbenchLoggingArguments = $"{this.BuildSysbenchLoggingOLTPBasicArguments()} --workload {this.Workload} "; this.sysbenchExecutionArguments = this.sysbenchLoggingArguments + $"--hostIpAddress {this.ServerIpAddress} --durationSecs {this.Duration.TotalSeconds} --password {this.SuperUserPassword}"; string script = $"{this.SysbenchPackagePath}/run-workload.py "; @@ -235,7 +231,7 @@ private async Task RunTPCCWorkloadAsync(EventContext telemetryContext, Cancellat int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.Threads); int warehouseCount = GetWarehouseCount(this.DatabaseScenario, this.WarehouseCount); - this.sysbenchLoggingArguments = $"--dbName {this.DatabaseName} --databaseSystem {this.DatabaseSystem} --benchmark {this.Benchmark} --workload tpcc --threadCount {threadCount} --tableCount {tableCount} --warehouses {warehouseCount} "; + this.sysbenchLoggingArguments = $"{this.BuildSysbenchLoggingTPCCBasicArguments()} --workload tpcc "; this.sysbenchExecutionArguments = this.sysbenchLoggingArguments + $"--hostIpAddress {this.ServerIpAddress} --durationSecs {this.Duration.TotalSeconds} --password {this.SuperUserPassword}"; string script = $"{this.SysbenchPackagePath}/run-workload.py "; @@ -284,11 +280,7 @@ private async Task TruncateMySQLDatabaseAsync(EventContext telemetryContext, Can private async Task PrepareOLTPMySQLDatabase(EventContext telemetryContext, CancellationToken cancellationToken) { - int tableCount = GetTableCount(this.DatabaseScenario, this.TableCount, this.Workload); - int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.Threads); - int recordCount = GetRecordCount(this.SystemManager, this.DatabaseScenario, this.RecordCount); - - this.sysbenchLoggingArguments = $"--dbName {this.DatabaseName} --databaseSystem {this.DatabaseSystem} --benchmark {this.Benchmark} --tableCount {tableCount} --recordCount {recordCount} --threadCount {threadCount}"; + this.sysbenchLoggingArguments = this.BuildSysbenchLoggingOLTPBasicArguments(); this.sysbenchPrepareArguments = $"{this.sysbenchLoggingArguments} --password {this.SuperUserPassword}"; string serverIp = (this.GetLayoutClientInstances(ClientRole.Server, false) ?? Enumerable.Empty()) diff --git a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchConfiguration.cs b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchConfiguration.cs index a21c0d5894..16e386e1d2 100644 --- a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchConfiguration.cs +++ b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchConfiguration.cs @@ -75,11 +75,7 @@ await this.Logger.LogMessageAsync($"{this.TypeName}.PopulateDatabase", telemetry private async Task PrepareOLTPMySQLDatabase(EventContext telemetryContext, CancellationToken cancellationToken) { - int tableCount = GetTableCount(this.DatabaseScenario, this.TableCount, this.Workload); - int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.Threads); - int recordCount = GetRecordCount(this.SystemManager, this.DatabaseScenario, this.RecordCount); - - string sysbenchLoggingArguments = $"--dbName {this.DatabaseName} --databaseSystem {this.DatabaseSystem} --benchmark {this.Benchmark} --tableCount {tableCount} --recordCount {recordCount} --threadCount {threadCount}"; + string sysbenchLoggingArguments = this.BuildSysbenchLoggingOLTPBasicArguments(); this.sysbenchPrepareArguments = $"{sysbenchLoggingArguments} --password {this.SuperUserPassword}"; string serverIp = "localhost"; @@ -107,11 +103,7 @@ private async Task PrepareOLTPMySQLDatabase(EventContext telemetryContext, Cance private async Task PrepareTPCCMySQLDatabase(EventContext telemetryContext, CancellationToken cancellationToken) { - int tableCount = GetTableCount(this.DatabaseScenario, this.TableCount, this.Workload); - int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.Threads); - int warehouseCount = GetWarehouseCount(this.DatabaseScenario, this.WarehouseCount); - - string sysbenchLoggingArguments = $"--dbName {this.DatabaseName} --databaseSystem {this.DatabaseSystem} --benchmark {this.Benchmark} --tableCount {tableCount} --warehouses {warehouseCount} --threadCount {threadCount}"; + string sysbenchLoggingArguments = this.BuildSysbenchLoggingTPCCBasicArguments(); this.sysbenchPrepareArguments = $"{sysbenchLoggingArguments} --password {this.SuperUserPassword}"; string arguments = $"{this.SysbenchPackagePath}/populate-database.py "; diff --git a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs index bd22c637d8..409666d7d2 100644 --- a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs +++ b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs @@ -426,6 +426,42 @@ protected void AddMetric(string arguments, IProcessProxy process, EventContext t } } + /// + /// Build the Sysbench Logging Basic Arguments, having the common parameters + /// dbName, databaseSystem, benchmark and tableCount. + /// + /// + protected string BuildSysbenchLoggingBasicArguments() + { + int tableCount = GetTableCount(this.Scenario, this.TableCount, this.Workload); + + return $"--dbName {this.DatabaseName} --databaseSystem {this.DatabaseSystem} --benchmark {this.Benchmark} --tableCount {tableCount}"; + } + + /// + /// Build the Sysbench Logging OLTP Basic Arguments, having the common parameters + /// dbName, databaseSystem, benchmark, tableCount, recordCount and threadCount. + /// + /// + protected string BuildSysbenchLoggingOLTPBasicArguments() + { + int recordCount = GetRecordCount(this.SystemManager, this.DatabaseScenario, this.RecordCount); + int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.Threads); + return $"{this.BuildSysbenchLoggingBasicArguments()} --recordCount {recordCount} --threadCount {threadCount}"; + } + + /// + /// Build the Sysbench Logging TPCC Basic Arguments, having the common parameters + /// dbName, databaseSystem, benchmark, tableCount, warehouses and threadCount. + /// + /// + protected string BuildSysbenchLoggingTPCCBasicArguments() + { + int warehouseCount = GetWarehouseCount(this.DatabaseScenario, this.WarehouseCount); + int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.Threads); + return $"{this.BuildSysbenchLoggingBasicArguments()} --warehouses {warehouseCount} --threadCount {threadCount}"; + } + private async Task CheckDistroSupportAsync(EventContext telemetryContext, CancellationToken cancellationToken) { if (this.Platform == PlatformID.Unix) From 6864c23fa209052a544e1051fa08fde6c85acad8 Mon Sep 17 00:00:00 2001 From: "Samuel Filho (WIPRO LIMITED)" Date: Thu, 21 Aug 2025 18:15:10 -0300 Subject: [PATCH 2/3] unit tests review --- .../Sysbench/SysbenchClientExecutorTests.cs | 14 +++++++------- .../Sysbench/SysbenchClientExecutor.cs | 4 ++-- .../Sysbench/SysbenchExecutor.cs | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchClientExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchClientExecutorTests.cs index 72273bf438..e06c93f532 100644 --- a/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchClientExecutorTests.cs +++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/Sysbench/SysbenchClientExecutorTests.cs @@ -90,7 +90,7 @@ public async Task SysbenchClientExecutorRunsTheExpectedWorkloadCommand() { SetupDefaultBehavior(); - string expectedCommand = @$"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_read_write --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; + string expectedCommand = @$"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_write --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; bool commandExecuted = false; this.fixture.ProcessManager.OnCreateProcess = (exe, arguments, workingDir) => @@ -136,7 +136,7 @@ public async Task SysbenchClientExecutorUsesDefinedParametersWhenRunningTheWorkl this.fixture.Parameters[nameof(SysbenchClientExecutor.TableCount)] = "40"; this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseScenario)] = "Configure"; - string expectedCommand = @$"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_read_write --threadCount 64 --tableCount 40 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; + string expectedCommand = @$"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 40 --recordCount 1000 --threadCount 64 --workload oltp_read_write --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; bool commandExecuted = false; this.fixture.ProcessManager.OnCreateProcess = (exe, arguments, workingDir) => @@ -179,7 +179,7 @@ public async Task SysbenchClientExecutorRunsTheExpectedBalancedScenario() this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseScenario)] = "Balanced"; - string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_read_write --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; + string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_write --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; bool commandExecuted = false; this.fixture.ProcessManager.OnCreateProcess = (exe, arguments, workingDir) => @@ -222,7 +222,7 @@ public async Task SysbenchClientExecutorRunsInMemoryScenario() this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseScenario)] = "InMemory"; - string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_read_write --threadCount 8 --tableCount 10 --recordCount 100000 --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; + string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 100000 --threadCount 8 --workload oltp_read_write --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; bool commandExecuted = false; this.fixture.ProcessManager.OnCreateProcess = (exe, arguments, workingDir) => @@ -265,7 +265,7 @@ public async Task SysbenchClientExecutorRunsTheExpectedTPCCWorkloadCommand() this.fixture.Parameters[nameof(SysbenchClientExecutor.Benchmark)] = "TPCC"; - string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark TPCC --workload tpcc --threadCount 8 --tableCount 10 --warehouses 100 --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; + string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark TPCC --tableCount 10 --warehouses 100 --threadCount 8 --workload tpcc --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; bool commandExecuted = false; this.fixture.ProcessManager.OnCreateProcess = (exe, arguments, workingDir) => @@ -308,7 +308,7 @@ public async Task SysbenchClientExecutorRunsTheExpectedPostgreSQLOLTPWorkloadCom this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseSystem)] = "PostgreSQL"; - string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_read_write --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; + string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_write --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; bool commandExecuted = false; this.fixture.ProcessManager.OnCreateProcess = (exe, arguments, workingDir) => @@ -352,7 +352,7 @@ public async Task SysbenchClientExecutorRunsTheExpectedPostgreSQLTPCCWorkloadCom this.fixture.Parameters[nameof(SysbenchClientExecutor.DatabaseSystem)] = "PostgreSQL"; this.fixture.Parameters[nameof(SysbenchClientExecutor.Benchmark)] = "TPCC"; - string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark TPCC --workload tpcc --threadCount 8 --tableCount 10 --warehouses 100 --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; + string expectedCommand = $"python3 {this.mockPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark TPCC --tableCount 10 --warehouses 100 --threadCount 8 --workload tpcc --hostIpAddress 1.2.3.5 --durationSecs 10 --password [A-Za-z0-9+/=]+"; bool commandExecuted = false; this.fixture.ProcessManager.OnCreateProcess = (exe, arguments, workingDir) => diff --git a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchClientExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchClientExecutor.cs index 859bfe62f9..8a0496a2a6 100644 --- a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchClientExecutor.cs +++ b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchClientExecutor.cs @@ -203,7 +203,7 @@ private Task ExecuteWorkloadAsync(EventContext telemetryContext, CancellationTok private async Task RunOLTPWorkloadAsync(EventContext telemetryContext, CancellationToken cancellationToken) { - this.sysbenchLoggingArguments = $"{this.BuildSysbenchLoggingOLTPBasicArguments()} --workload {this.Workload} "; + this.sysbenchLoggingArguments = $"{this.BuildSysbenchLoggingOLTPBasicArguments()} --workload {this.Workload} "; this.sysbenchExecutionArguments = this.sysbenchLoggingArguments + $"--hostIpAddress {this.ServerIpAddress} --durationSecs {this.Duration.TotalSeconds} --password {this.SuperUserPassword}"; string script = $"{this.SysbenchPackagePath}/run-workload.py "; @@ -231,7 +231,7 @@ private async Task RunTPCCWorkloadAsync(EventContext telemetryContext, Cancellat int threadCount = GetThreadCount(this.SystemManager, this.DatabaseScenario, this.Threads); int warehouseCount = GetWarehouseCount(this.DatabaseScenario, this.WarehouseCount); - this.sysbenchLoggingArguments = $"{this.BuildSysbenchLoggingTPCCBasicArguments()} --workload tpcc "; + this.sysbenchLoggingArguments = $"{this.BuildSysbenchLoggingTPCCBasicArguments()} --workload tpcc "; this.sysbenchExecutionArguments = this.sysbenchLoggingArguments + $"--hostIpAddress {this.ServerIpAddress} --durationSecs {this.Duration.TotalSeconds} --password {this.SuperUserPassword}"; string script = $"{this.SysbenchPackagePath}/run-workload.py "; diff --git a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs index 409666d7d2..482fc9d2b2 100644 --- a/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs +++ b/src/VirtualClient/VirtualClient.Actions/Sysbench/SysbenchExecutor.cs @@ -433,7 +433,7 @@ protected void AddMetric(string arguments, IProcessProxy process, EventContext t /// protected string BuildSysbenchLoggingBasicArguments() { - int tableCount = GetTableCount(this.Scenario, this.TableCount, this.Workload); + int tableCount = GetTableCount(this.DatabaseScenario, this.TableCount, this.Workload); return $"--dbName {this.DatabaseName} --databaseSystem {this.DatabaseSystem} --benchmark {this.Benchmark} --tableCount {tableCount}"; } From a2ae61cfcb65bff83e196335150fe83f5efd09a2 Mon Sep 17 00:00:00 2001 From: "Samuel Filho (WIPRO LIMITED)" Date: Thu, 21 Aug 2025 19:40:04 -0300 Subject: [PATCH 3/3] sysbench profile tests review --- .../SysbenchProfileTests.cs | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/VirtualClient/VirtualClient.Actions.FunctionalTests/SysbenchProfileTests.cs b/src/VirtualClient/VirtualClient.Actions.FunctionalTests/SysbenchProfileTests.cs index f917e95f9b..93db09060d 100644 --- a/src/VirtualClient/VirtualClient.Actions.FunctionalTests/SysbenchProfileTests.cs +++ b/src/VirtualClient/VirtualClient.Actions.FunctionalTests/SysbenchProfileTests.cs @@ -489,14 +489,14 @@ private IEnumerable GetProfileExpectedCommands(bool singleVM, string dat $"python3 {this.mySQLPackagePath}/distribute-database.py --dbName sbtest --directories \"/mnt_vc_0;/mnt_vc_1;/mnt_vc_2;\"", $"python3 {this.sysbenchPackagePath}/populate-database.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_read_write --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_read_only --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_delete --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_insert --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_update_index --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_update_non_index --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload select_random_points --threadCount 8 --tableCount 1 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload select_random_ranges --threadCount 8 --tableCount 1 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+" + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_write --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_only --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_delete --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_insert --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_update_index --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_update_non_index --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 1 --recordCount 1000 --threadCount 8 --workload select_random_points --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 1 --recordCount 1000 --threadCount 8 --workload select_random_ranges --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+" }; } else @@ -515,7 +515,7 @@ private IEnumerable GetProfileExpectedCommands(bool singleVM, string dat $"python3 {this.mySQLPackagePath}/distribute-database.py --dbName sbtest --directories \"/mnt_vc_0;/mnt_vc_1;/mnt_vc_2;\"", $"python3 {this.sysbenchPackagePath}/populate-database.py --dbName sbtest --databaseSystem MySQL --benchmark TPCC --tableCount 10 --warehouses 100 --threadCount 8 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark TPCC --workload tpcc --threadCount 8 --tableCount 10 --warehouses 100 --hostIpAddress 127.0.0.1 --durationSecs 1800 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark TPCC --tableCount 10 --warehouses 100 --threadCount 8 --workload tpcc --hostIpAddress 127.0.0.1 --durationSecs 1800 --password [A-Za-z0-9+/=]+", }; } } @@ -529,14 +529,14 @@ private IEnumerable GetProfileExpectedCommands(bool singleVM, string dat $"python3 {this.sysbenchPackagePath}/configure-workload-generator.py --distro Ubuntu --databaseSystem MySQL --packagePath {this.sysbenchPackagePath}", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_read_write --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_read_only --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_delete --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_insert --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_update_index --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload oltp_update_non_index --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload select_random_points --threadCount 8 --tableCount 1 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --workload select_random_ranges --threadCount 8 --tableCount 1 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+" + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_write --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_only --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_delete --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_insert --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_update_index --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_update_non_index --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 1 --recordCount 1000 --threadCount 8 --workload select_random_points --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 1 --recordCount 1000 --threadCount 8 --workload select_random_ranges --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+" }; } else @@ -545,7 +545,7 @@ private IEnumerable GetProfileExpectedCommands(bool singleVM, string dat { "apt install python3 --yes --quiet", $"python3 {this.sysbenchPackagePath}/configure-workload-generator.py --distro Ubuntu --databaseSystem MySQL --packagePath {this.sysbenchPackagePath}", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark TPCC --workload tpcc --threadCount 8 --tableCount 10 --warehouses 100 --hostIpAddress 1.2.3.5 --durationSecs 1800 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark TPCC --tableCount 10 --warehouses 100 --threadCount 8 --workload tpcc --hostIpAddress 1.2.3.5 --durationSecs 1800 --password [A-Za-z0-9+/=]+", }; } } @@ -572,14 +572,14 @@ private IEnumerable GetProfileExpectedCommands(bool singleVM, string dat $"python3 {this.postgreSQLPackagePath}/distribute-database.py --dbName sbtest --directories \"/mnt_vc_0;/mnt_vc_1;/mnt_vc_2;\" --password [A-Za-z0-9+/=]+", $"python3 {this.sysbenchPackagePath}/populate-database.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_read_write --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_read_only --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_delete --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_insert --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_update_index --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_update_non_index --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload select_random_points --threadCount 8 --tableCount 1 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload select_random_ranges --threadCount 8 --tableCount 1 --recordCount 1000 --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+" + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_write --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_only --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_delete --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_insert --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_update_index --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_update_non_index --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 1 --recordCount 1000 --threadCount 8 --workload select_random_points --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 1 --recordCount 1000 --threadCount 8 --workload select_random_ranges --hostIpAddress 127.0.0.1 --durationSecs 300 --password [A-Za-z0-9+/=]+" }; } else @@ -598,7 +598,7 @@ private IEnumerable GetProfileExpectedCommands(bool singleVM, string dat $"python3 {this.postgreSQLPackagePath}/distribute-database.py --dbName sbtest --directories \"/mnt_vc_0;/mnt_vc_1;/mnt_vc_2;\" --password [A-Za-z0-9+/=]+", $"python3 {this.sysbenchPackagePath}/populate-database.py --dbName sbtest --databaseSystem PostgreSQL --benchmark TPCC --tableCount 10 --warehouses 100 --threadCount 8 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark TPCC --workload tpcc --threadCount 8 --tableCount 10 --warehouses 100 --hostIpAddress 127.0.0.1 --durationSecs 1800 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark TPCC --tableCount 10 --warehouses 100 --threadCount 8 --workload tpcc --hostIpAddress 127.0.0.1 --durationSecs 1800 --password [A-Za-z0-9+/=]+", }; } } @@ -612,14 +612,14 @@ private IEnumerable GetProfileExpectedCommands(bool singleVM, string dat $"python3 {this.sysbenchPackagePath}/configure-workload-generator.py --distro Ubuntu --databaseSystem PostgreSQL --packagePath {this.sysbenchPackagePath}", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_read_write --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_read_only --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_delete --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_insert --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_update_index --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload oltp_update_non_index --threadCount 8 --tableCount 10 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload select_random_points --threadCount 8 --tableCount 1 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark OLTP --workload select_random_ranges --threadCount 8 --tableCount 1 --recordCount 1000 --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+" + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_write --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_read_only --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_delete --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_insert --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_update_index --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 10 --recordCount 1000 --threadCount 8 --workload oltp_update_non_index --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 1 --recordCount 1000 --threadCount 8 --workload select_random_points --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem MySQL --benchmark OLTP --tableCount 1 --recordCount 1000 --threadCount 8 --workload select_random_ranges --hostIpAddress 1.2.3.5 --durationSecs 300 --password [A-Za-z0-9+/=]+" }; } else @@ -628,7 +628,7 @@ private IEnumerable GetProfileExpectedCommands(bool singleVM, string dat { "apt install python3 --yes --quiet", $"python3 {this.sysbenchPackagePath}/configure-workload-generator.py --distro Ubuntu --databaseSystem PostgreSQL --packagePath {this.sysbenchPackagePath}", - $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark TPCC --workload tpcc --threadCount 8 --tableCount 10 --warehouses 100 --hostIpAddress 1.2.3.5 --durationSecs 1800 --password [A-Za-z0-9+/=]+", + $"python3 {this.sysbenchPackagePath}/run-workload.py --dbName sbtest --databaseSystem PostgreSQL --benchmark TPCC --tableCount 10 --warehouses 100 --threadCount 8 --workload tpcc --hostIpAddress 1.2.3.5 --durationSecs 1800 --password [A-Za-z0-9+/=]+", }; } }