A load testing tool for the Bigtable storage backend. Bypasses the HTTP layer
and writes objects directly via BigTableBackend, printing live latency
percentiles every second.
Always run in release mode:
cargo run --release -p bigtable-bench -- [OPTIONS]
| Flag | Default | Description |
|---|---|---|
-c |
10 |
Concurrent put requests |
--p50 |
2KiB |
Median object size (p50) |
--p99 |
385KiB |
99th-percentile object size (p99) |
-p |
1 |
Bigtable gRPC connection pool size |
-a |
— | Emulator address (omit for real GCP) |
--project |
testing |
GCP project ID |
--instance |
objectstore |
Bigtable instance name |
--table |
objectstore |
Bigtable table name |
Start the Bigtable emulator via devservices, then point at it with -a:
devservices up --mode=full
./target/release/bigtable-bench -a localhost:8090
Authenticate with gcloud and pass your project:
gcloud auth login
./target/release/bigtable-bench --project <project>
Adjust --instance and --table if your instance or table name differs from
the default (objectstore).
The production Docker image uses gcr.io/distroless/cc-debian12:nonroot, which
has no shell. For interactive testing inside a container, change the base image
to gcr.io/distroless/cc-debian12:debug-nonroot, which includes a busybox
shell and allows you to exec into the container and run the binary manually.