diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml
index 95d973f33..589865101 100644
--- a/.github/workflows/benchmarks.yml
+++ b/.github/workflows/benchmarks.yml
@@ -37,7 +37,7 @@ env:
jobs:
jmh:
name: "Mininal JMH Benchmarks"
- runs-on: "ubuntu-latest"
+ runs-on: "ubuntu-26.04-arm"
timeout-minutes: 30
permissions:
contents: read
diff --git a/performance/pom.xml b/performance/pom.xml
index 7f25f9a27..f8b25498f 100644
--- a/performance/pom.xml
+++ b/performance/pom.xml
@@ -17,7 +17,7 @@
2.0.17
0.9.8-SNAPSHOT
1.37
- 2.0.2
+ 2.0.5
3.1.0
3.6.0
diff --git a/performance/src/main/java/com/clickhouse/benchmark/BenchmarkRunner.java b/performance/src/main/java/com/clickhouse/benchmark/BenchmarkRunner.java
index 81fee5556..e34b1520b 100644
--- a/performance/src/main/java/com/clickhouse/benchmark/BenchmarkRunner.java
+++ b/performance/src/main/java/com/clickhouse/benchmark/BenchmarkRunner.java
@@ -66,7 +66,7 @@ public static void main(String[] args) throws Exception {
.warmupIterations(1)
.warmupTime(TimeValue.seconds(5))
.measurementIterations(measurementIterations)
- .jvmArgs("-Xms8g", "-Xmx8g")
+ .jvmArgs("-Xms8g", "-Xmx8g", "-XX:+AlwaysPreTouch", "-XX:-UseBiasedLocking")
.measurementTime(TimeValue.seconds(measurementTime))
.resultFormat(ResultFormatType.JSON)
.output(outputFile)
diff --git a/performance/src/main/java/com/clickhouse/benchmark/TestEnvironment.java b/performance/src/main/java/com/clickhouse/benchmark/TestEnvironment.java
index 0f0d6a4eb..8b2936ff1 100644
--- a/performance/src/main/java/com/clickhouse/benchmark/TestEnvironment.java
+++ b/performance/src/main/java/com/clickhouse/benchmark/TestEnvironment.java
@@ -74,6 +74,7 @@ public static ClickHouseNode getServer() {
return serverNode;
}
+ private static final long MEM_LIMIT = (long) (24 * Math.pow(1024.0D, 3.0D));
//Initialization and Teardown methods
public static void setupEnvironment() {
@@ -88,6 +89,13 @@ public static void setupEnvironment() {
.withPassword("testing_password")
.withEnv("CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT", "1")
.withExposedPorts(8123, 8443)
+ .withCreateContainerCmdModifier(cmd -> {
+ cmd.getHostConfig()
+ .withMemorySwap(0L)
+ .withMemory(MEM_LIMIT)
+ .withCpuCount(2L);
+ })
+ .withUrlParam("max_threads", "2")
.waitingFor(Wait.forHttp("/ping").forPort(8123).forStatusCode(200).withStartupTimeout(Duration.of(600, SECONDS)));
container.start();
}