-
Notifications
You must be signed in to change notification settings - Fork 497
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
pageserver: periodically log slow ongoing getpage requests (#10906)
## Problem We don't have good observability for "stuck" getpage requests. Resolves neondatabase/cloud#23808. ## Summary of changes Log a periodic warning (every 30 seconds) if GetPage request execution is slow to complete, to aid in debugging stuck GetPage requests. This does not cover response flushing (we have separate logging for that), nor reading the request from the socket and batching it (expected to be insignificant and not straightforward to handle with the current protocol). This costs 95 nanoseconds on the happy path when awaiting a `tokio::task::yield_now()`: ``` warn_slow/enabled=false time: [45.716 ns 46.116 ns 46.687 ns] warn_slow/enabled=true time: [141.53 ns 141.83 ns 142.18 ns] ```
- Loading branch information
1 parent
0b9b391
commit 9b42d1c
Showing
6 changed files
with
139 additions
and
16 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
## Utils Benchmarks | ||
|
||
To run benchmarks: | ||
|
||
```sh | ||
# All benchmarks. | ||
cargo bench --package utils | ||
|
||
# Specific file. | ||
cargo bench --package utils --bench benchmarks | ||
|
||
# Specific benchmark. | ||
cargo bench --package utils --bench benchmarks warn_slow/enabled=true | ||
|
||
# List available benchmarks. | ||
cargo bench --package utils --benches -- --list | ||
|
||
# Generate flamegraph profiles using pprof-rs, profiling for 10 seconds. | ||
# Output in target/criterion/*/profile/flamegraph.svg. | ||
cargo bench --package utils --bench benchmarks warn_slow/enabled=true --profile-time 10 | ||
``` | ||
|
||
Additional charts and statistics are available in `target/criterion/report/index.html`. | ||
|
||
Benchmarks are automatically compared against the previous run. To compare against other runs, see | ||
`--baseline` and `--save-baseline`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9b42d1c
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1378 tests run: 1340 passed, 2 failed, 36 skipped (full report)
Failures on Postgres 17
test_neon_cli_basics
: release-x86-64-without-lfc, release-arm64-without-lfcFlaky tests (2)
Postgres 17
test_migration_to_cold_secondary
: release-x86-64-without-lfctest_multiple_subscription_branching
: release-arm64-without-lfcTest coverage report is not available
9b42d1c at 2025-02-21T02:47:18.610Z :recycle: