Measures accounts hash calculation time (#32385)
This commit is contained in:
parent
bad5197cb0
commit
d08ce116b3
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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),
|
||||
|
|
Loading…
Reference in New Issue