From 112008519c33b8dc70511459bb5d032aff0c25fe Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Thu, 31 Aug 2023 07:49:30 +0000 Subject: [PATCH] HACK: BACKGROUND_RUNTIME webserver to measure response time using `wrk` --- pageserver/src/bin/pageserver.rs | 25 +++++++++++++++++++++++++ pageserver/src/task_mgr.rs | 2 ++ 2 files changed, 27 insertions(+) diff --git a/pageserver/src/bin/pageserver.rs b/pageserver/src/bin/pageserver.rs index 7e2b376212..d2122f71f3 100644 --- a/pageserver/src/bin/pageserver.rs +++ b/pageserver/src/bin/pageserver.rs @@ -580,6 +580,31 @@ fn start_pageserver( ); } + task_mgr::spawn( + BACKGROUND_RUNTIME.handle(), + TaskKind::BackgroundRuntimeTurnaroundMeasure, + None, + None, + "background runtime turnaround measure", + true, + async move { + let server = hyper::Server::try_bind(&"0.0.0.0:2342".parse().unwrap()).expect("bind"); + let server = server + .serve(hyper::service::make_service_fn(|_| async move { + Ok::<_, std::convert::Infallible>(hyper::service::service_fn( + move |_: hyper::Request| async move { + Ok::<_, std::convert::Infallible>(hyper::Response::new( + hyper::Body::from(format!("alive")), + )) + }, + )) + })) + .with_graceful_shutdown(task_mgr::shutdown_watcher()); + server.await?; + Ok(()) + }, + ); + let mut shutdown_pageserver = Some(shutdown_pageserver.drop_guard()); // All started up! Now just sit and wait for shutdown signal. diff --git a/pageserver/src/task_mgr.rs b/pageserver/src/task_mgr.rs index 017322ffb2..b3924887b4 100644 --- a/pageserver/src/task_mgr.rs +++ b/pageserver/src/task_mgr.rs @@ -293,6 +293,8 @@ pub enum TaskKind { DebugTool, + BackgroundRuntimeTurnaroundMeasure, + #[cfg(test)] UnitTest, }