From 499b4f7ebaa16d412554886de99ac33540d99fe0 Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Fri, 23 Apr 2021 18:02:58 +0300 Subject: [PATCH] Log garbage collection statistics --- pageserver/src/bin/pageserver.rs | 8 +++----- pageserver/src/page_cache.rs | 9 +++++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/pageserver/src/bin/pageserver.rs b/pageserver/src/bin/pageserver.rs index 5a0c7ab502..3d9cc9b891 100644 --- a/pageserver/src/bin/pageserver.rs +++ b/pageserver/src/bin/pageserver.rs @@ -19,8 +19,8 @@ use slog::Drain; use pageserver::{page_service, tui, zenith_repo_dir, PageServerConf}; -const DEFAULT_GC_HORIZON: u64 = 64 * 1024 * 1024; -const DEFAULT_GC_PERIOD_SEC: u64 = 10; +const DEFAULT_GC_HORIZON: u64 = 1024 * 1024 * 1024; +const DEFAULT_GC_PERIOD_SEC: u64 = 600; fn main() -> Result<()> { let arg_matches = App::new("Zenith page server") @@ -213,7 +213,7 @@ fn init_logging(conf: &PageServerConf) -> Result Result anyhow::Result> { let mut pcaches = PAGECACHES.lock().unwrap(); - match pcaches.get(&timelineid) { Some(pcache) => Ok(pcache.clone()), None => { @@ -403,6 +402,9 @@ impl PageCache { }, lsn: u64::MAX, }; + let now = Instant::now(); + let mut reconstructed = 0u64; + let mut truncated = 0u64; loop { maxbuf.clear(); maxkey.pack(&mut maxbuf); @@ -431,6 +433,7 @@ impl PageCache { trace!("Reconstruct most recent page {:?}", key); // force reconstruction of most recent page version self.reconstruct_page(key, content)?; + reconstructed += 1; } maxbuf.clear(); @@ -452,6 +455,7 @@ impl PageCache { let key = CacheKey::unpack(&mut minbuf); trace!("Reconstruct horizon page {:?}", key); self.reconstruct_page(key, content)?; + truncated += 1; } } } @@ -466,6 +470,7 @@ impl PageCache { break; } } + info!("Garbage collection completed in {:?}: {} pages reconstructed, {} version histories truncated", now.elapsed(), reconstructed, truncated); } } }