From 66c501f5b8633dbaf268af0183558595ad2dde17 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 495ee2782b..3b6e400535 100644 --- a/pageserver/src/bin/pageserver.rs +++ b/pageserver/src/bin/pageserver.rs @@ -576,6 +576,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 3c7a1115df..76a812af97 100644 --- a/pageserver/src/task_mgr.rs +++ b/pageserver/src/task_mgr.rs @@ -292,6 +292,8 @@ pub enum TaskKind { DebugTool, + BackgroundRuntimeTurnaroundMeasure, + #[cfg(test)] UnitTest, }