mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-08 05:52:55 +00:00
This PR adds a component-level benchmarking utility for pageserver. Its name is `pagebench`. The problem solved by `pagebench` is that we want to put Pageserver under high load. This isn't easily achieved with `pgbench` because it needs to go through a compute, which has signficant performance overhead compared to accessing Pageserver directly. Further, compute has its own performance optimizations (most importantly: caches). Instead of designing a compute-facing workload that defeats those internal optimizations, `pagebench` simply bypasses them by accessing pageserver directly. Supported benchmarks: * getpage@latest_lsn * basebackup * triggering logical size calculation This code has no automated users yet. A performance regression test for getpage@latest_lsn will be added in a later PR. part of https://github.com/neondatabase/neon/issues/5771
27 lines
697 B
TOML
27 lines
697 B
TOML
[package]
|
|
name = "pagebench"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
clap.workspace = true
|
|
futures.workspace = true
|
|
hdrhistogram.workspace = true
|
|
humantime.workspace = true
|
|
humantime-serde.workspace = true
|
|
rand.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
tracing.workspace = true
|
|
tokio.workspace = true
|
|
|
|
pageserver = { path = ".." }
|
|
pageserver_client.workspace = true
|
|
pageserver_api.workspace = true
|
|
utils = { path = "../../libs/utils/" }
|
|
workspace_hack = { version = "0.1", path = "../../workspace_hack" }
|