From c9be9acd1410e3a0d539f8778e054cfc7841aa87 Mon Sep 17 00:00:00 2001 From: carllin Date: Fri, 20 Sep 2019 08:03:00 -0700 Subject: [PATCH] log snapshot time (#5996) --- core/src/bank_forks.rs | 6 +++++- core/src/snapshot_utils.rs | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/src/bank_forks.rs b/core/src/bank_forks.rs index 96a38cc83..bd9f737fd 100644 --- a/core/src/bank_forks.rs +++ b/core/src/bank_forks.rs @@ -203,7 +203,7 @@ impl BankForks { // Cleanup outdated snapshots self.purge_old_snapshots(); snapshot_time.stop(); - inc_new_counter_info!("total-snapshot-setup-ms", snapshot_time.as_ms() as usize); + inc_new_counter_info!("total-snapshot-ms", snapshot_time.as_ms() as usize); } } @@ -254,7 +254,11 @@ impl BankForks { .get(root) .cloned() .expect("root must exist in BankForks"); + + let mut add_snapshot_time = Measure::start("add-snapshot-ms"); snapshot_utils::add_snapshot(&config.snapshot_path, &bank, slots_since_snapshot)?; + add_snapshot_time.stop(); + inc_new_counter_info!("add-snapshot-ms", add_snapshot_time.as_ms() as usize); // Package the relevant snapshots let slot_snapshot_paths = snapshot_utils::get_snapshot_paths(&config.snapshot_path); diff --git a/core/src/snapshot_utils.rs b/core/src/snapshot_utils.rs index 662ded2ad..0366572d7 100644 --- a/core/src/snapshot_utils.rs +++ b/core/src/snapshot_utils.rs @@ -5,6 +5,7 @@ use crate::snapshot_package::{TAR_ACCOUNTS_DIR, TAR_SNAPSHOTS_DIR}; use bincode::{deserialize_from, serialize_into}; use bzip2::bufread::BzDecoder; use fs_extra::dir::CopyOptions; +use solana_measure::measure::Measure; use solana_runtime::bank::Bank; use solana_runtime::status_cache::SlotDelta; use solana_sdk::transaction; @@ -160,12 +161,19 @@ pub fn add_snapshot>( // Create the snapshot serialize_into(&mut snapshot_stream, &*bank).map_err(|e| get_io_error(&e.to_string()))?; serialize_into(&mut snapshot_stream, &bank.rc).map_err(|e| get_io_error(&e.to_string()))?; + + let mut status_cache_serialize = Measure::start("status_cache_serialize-ms"); // write the status cache serialize_into( &mut status_cache_stream, &bank.src.slot_deltas(slots_since_snapshot), ) .map_err(|_| get_io_error("serialize bank status cache error"))?; + status_cache_serialize.stop(); + inc_new_counter_info!( + "serialize-status-cache-ms", + status_cache_serialize.as_ms() as usize + ); info!( "successfully created snapshot {}, path: {:?} status_cache: {:?}",