Skip to content

Commit

Permalink
rptest: add perf regression test for TS reads
Browse files Browse the repository at this point in the history
  • Loading branch information
ballard26 committed Oct 19, 2023
1 parent 2eee48d commit aee09fe
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 1 deletion.
53 changes: 53 additions & 0 deletions tests/rptest/perf/ts_read_openmessaging_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Copyright 2023 Redpanda Data, Inc.
#
# Use of this software is governed by the Business Source License
# included in the file licenses/BSL.md
#
# As of the Change Date specified in that file, in accordance with
# the Business Source License, use of this software will be governed
# by the Apache License, Version 2.0

from rptest.tests.redpanda_test import RedpandaTest
from rptest.services.cluster import cluster
from rptest.services.openmessaging_benchmark import OpenMessagingBenchmark
from ducktape.mark import parametrize
from rptest.services.redpanda import SISettings


class TSReadOpenmessagingTest(RedpandaTest):
BENCHMARK_WAIT_TIME_MIN = 15

def __init__(self, ctx):
extra_rp_conf = {
"retention_local_target_bytes_default": 16 * 1_000_000 # 16 MB
}
si_settings = SISettings(
test_context=ctx,
log_segment_size=16 * 1_000_000, # 16 MB
cloud_storage_cache_chunk_size=8 * 1_000_000, # 8 MB
cloud_storage_spillover_manifest_max_segments=10,
)
self._ctx = ctx
super(TSReadOpenmessagingTest,
self).__init__(test_context=ctx,
num_brokers=3,
si_settings=si_settings,
extra_rp_conf=extra_rp_conf)

@cluster(num_nodes=6)
@parametrize(driver_idx="ACK_ALL_GROUP_LINGER_1MS_IDEM_MAX_IN_FLIGHT",
workload_idx="RELEASE_CERT_SMOKE_LOAD_625k_BACKLOG")
def test_perf(self, driver_idx, workload_idx):
"""
This adds TS reads to the OMB perf regression tests
"""

assert self.redpanda.dedicated_nodes

benchmark = OpenMessagingBenchmark(self._ctx, self.redpanda,
driver_idx, workload_idx)
benchmark.start()
benchmark_time_min = benchmark.benchmark_time(
) + TSReadOpenmessagingTest.BENCHMARK_WAIT_TIME_MIN
benchmark.wait(timeout_sec=benchmark_time_min * 60)
benchmark.check_succeed()
17 changes: 16 additions & 1 deletion tests/rptest/services/openmessaging_benchmark_configs.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,19 @@ def validate_metrics(metrics, validator):
"warmup_duration_minutes": 5,
}

RELEASE_CERT_SMOKE_LOAD_625k_BACKLOG = {
"name": "SmokeLoad625kReleaseCert",
"topics": 1,
"partitions_per_topic": 100,
"subscriptions_per_topic": 1,
"consumer_per_subscription": 8,
"producers_per_topic": 16,
"producer_rate": 625000,
"consumer_backlog_size_GB": 10,
"test_duration_minutes": 5,
"warmup_duration_minutes": 5,
}

# ------- Workload configurations end--------

# We have another level of indirection from name -> driver/workload
Expand Down Expand Up @@ -280,5 +293,7 @@ def validate_metrics(metrics, validator):
"TOPIC1_PART100_1KB_4PROD_1250K_RATE":
(TOPIC1_PART100_1KB_4PROD_1250K_RATE, PROD_ENV_VALIDATOR),
"RELEASE_CERT_SMOKE_LOAD_625k":
(RELEASE_CERT_SMOKE_LOAD_625k, RELEASE_SMOKE_TEST_VALIDATOR)
(RELEASE_CERT_SMOKE_LOAD_625k, RELEASE_SMOKE_TEST_VALIDATOR),
"RELEASE_CERT_SMOKE_LOAD_625k_BACKLOG":
(RELEASE_CERT_SMOKE_LOAD_625k_BACKLOG, RELEASE_SMOKE_TEST_VALIDATOR)
}

0 comments on commit aee09fe

Please sign in to comment.