Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rpk self test #599

Merged
merged 7 commits into from
Jul 18, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

Starts one or more benchmark tests on one or more nodes of the cluster.

NOTE: Redpanda self-test runs benchmarks of disk and network hardware that consume significant system resources. Do not start self-test if large workloads are already running on the system.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct me if my understanding is wrong -- isn't the self test itself the one that consumes significant resources? This makes it sound like it's the disk/network hardware

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrased to make it more simple, and removed the specific tests to make it a bit more future proof.

Deflaimun marked this conversation as resolved.
Show resolved Hide resolved

Available tests to run:

* *Disk tests*
Expand All @@ -14,17 +16,17 @@ Available tests to run:
** Throughput test: 8192-bit messages
*** Unique pairs of Redpanda nodes each act as a client and a server.
*** The test pushes as much data over the wire, within the test parameters.
* *Cloud tests*
* *Cloud storage tests*
** Latency test: 1024-bit object.
** Depending on cluster read/write permissions (xref:reference:properties/object-storage-properties.adoc#cloud_storage_enable_remote_read[`cloud_storage_enable_remote_read`], xref:reference:properties/object-storage-properties.adoc#cloud_storage_enable_remote_write[`cloud_storage_enable_remote_write`]), a series of cloud storage operations are performed:
*** Upload an object to an object storage.
*** List objects in the object storage.
*** Download an object from the object storage.
*** Delete the original object from the object storage, if it was uploaded.

This command immediately returns on success, and the tests run asynchronously. The
user polls for results with the xref:./rpk-cluster-self-test-status.adoc[rpk cluster self-test status]
command.
This command prompts users for confirmation (unless the flag `--no-confirm` is specified), then returns a test identifier ID, and runs the tests.

To view the test status, poll xref:./rpk-cluster-self-test-status.adoc[rpk cluster self-test status]. Once the tests end, the cached results will be available with `rpk cluster self-test status`.

== Usage

Expand All @@ -39,21 +41,27 @@ rpk cluster self-test start [flags]
|===
|*Value* |*Type* |*Description*

|--disk-duration-ms |duration |uint The in milliseconds of individual
disk test runs (default 30000).
|--cloud-backoff-ms |uint | The backoff in milliseconds for a cloud storage request (default `100`).

|--cloud-timeout-ms |uint | The timeout in milliseconds for a cloud storage request (default `5000`).

|--disk-duration-ms |uint | The duration in milliseconds of individual
disk test runs (default `30000`).

|-h, --help |- |Help for start.

|--network-duration-ms |duration |uint The in milliseconds of individual
network test runs (default 30000).
|--network-duration-ms |uint | The duration in milliseconds of individual
network test runs (default `30000`).

|--no-confirm |- |Acknowledge warning prompt skipping read from stdin.

|--only-cloud-test |- |Runs only cloud storage benchmarks.

|--only-disk-test |- |Runs only the disk benchmarks.

|--only-network-test |- |Runs only network benchmarks.

|--participant-node-ids |- |ints IDs of nodes that the tests will run
|--participant-node-ids |uints |Comma-separated list of broker IDs that the tests will run
on. If not set, tests will run for all node IDs.

|--config |string |Redpanda or `rpk` config file; default search paths are `/var/lib/redpanda/.config/rpk/rpk.yaml`, `$PWD/redpanda.yaml`, and `/etc/redpanda/redpanda.yaml`.
Expand Down
Loading