Measures accounts hash calculation time (#32385)

This commit is contained in:
Brooks 2023-07-05 15:53:36 -04:00 committed by GitHub
parent bad5197cb0
commit d08ce116b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 12 deletions

View File

@ -7608,6 +7608,7 @@ impl AccountsDb {
flavor: CalcAccountsHashFlavor,
accounts_hash_cache_path: PathBuf,
) -> Result<(AccountsHashEnum, u64), AccountsHashVerificationError> {
let total_time = Measure::start("");
let _guard = self.active_stats.activate(ActiveStatItem::Hash);
stats.oldest_root = storages.range().start;
@ -7673,7 +7674,7 @@ impl AccountsDb {
AccountsHashEnum::Incremental(IncrementalAccountsHash(accounts_hash))
}
};
info!("calculate_accounts_hash_from_storages: slot: {slot}, {accounts_hash:?}, capitalization: {capitalization}");
info!("calculate_accounts_hash_from_storages: slot: {slot}, {accounts_hash:?}, capitalization: {capitalization},{total_time}");
Ok((accounts_hash, capitalization))
};
@ -7682,6 +7683,7 @@ impl AccountsDb {
} else {
scan_and_hash()
};
stats.total_us = total_time.end_as_us();
stats.log();
result
}

View File

@ -138,6 +138,7 @@ pub type StorageSizeQuartileStats = [usize; 6];
#[derive(Debug, Default)]
pub struct HashStats {
pub total_us: u64,
pub mark_time_us: u64,
pub cache_hash_data_us: u64,
pub scan_time_total_us: u64,
@ -190,18 +191,10 @@ impl HashStats {
};
}
pub fn log(&mut self) {
// NOTE: Purposely do *not* include `sort_time_total_us` in `total_time_us`, since it is
// overlapping parallel scans, which is not the wallclock time.
let total_time_us = self.mark_time_us
+ self.cache_hash_data_us
+ self.scan_time_total_us
+ self.zeros_time_total_us
+ self.hash_time_total_us
+ self.collect_snapshots_us
+ self.storage_sort_us;
pub fn log(&self) {
datapoint_info!(
"calculate_accounts_hash_from_storages",
("total_us", self.total_us, i64),
("mark_time_us", self.mark_time_us, i64),
("cache_hash_data_us", self.cache_hash_data_us, i64),
("accounts_scan_us", self.scan_time_total_us, i64),
@ -236,7 +229,6 @@ impl HashStats {
),
("storage_size_max", self.storage_size_quartiles[4], i64),
("storage_size_avg", self.storage_size_quartiles[5], i64),
("total_us", total_time_us, i64),
(
"roots_older_than_epoch",
self.roots_older_than_epoch.load(Ordering::Relaxed),