mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-29 11:25:43 +00:00
subsystem-bench: Prepare CI output (#3158)
1. Benchmark results are collected in a single struct. 2. The output of the results is prettified. 3. The result struct used to save the output as a yaml and store it in artifacts in a CI job. ``` $ cargo run -p polkadot-subsystem-bench --release -- test-sequence --path polkadot/node/subsystem-bench/examples/availability_read.yaml | tee output.txt $ cat output.txt polkadot/node/subsystem-bench/examples/availability_read.yaml #1 Network usage, KiB total per block Received from peers 510796.000 170265.333 Sent to peers 221.000 73.667 CPU usage, s total per block availability-recovery 38.671 12.890 Test environment 0.255 0.085 polkadot/node/subsystem-bench/examples/availability_read.yaml #2 Network usage, KiB total per block Received from peers 413633.000 137877.667 Sent to peers 353.000 117.667 CPU usage, s total per block availability-recovery 52.630 17.543 Test environment 0.271 0.090 polkadot/node/subsystem-bench/examples/availability_read.yaml #3 Network usage, KiB total per block Received from peers 424379.000 141459.667 Sent to peers 703.000 234.333 CPU usage, s total per block availability-recovery 51.128 17.043 Test environment 0.502 0.167 ``` ``` $ cargo run -p polkadot-subsystem-bench --release -- --ci test-sequence --path polkadot/node/subsystem-bench/examples/availability_read.yaml | tee output.txt $ cat output.txt - benchmark_name: 'polkadot/node/subsystem-bench/examples/availability_read.yaml #1' network: - resource: Received from peers total: 509011.0 per_block: 169670.33333333334 - resource: Sent to peers total: 220.0 per_block: 73.33333333333333 cpu: - resource: availability-recovery total: 31.845848445 per_block: 10.615282815 - resource: Test environment total: 0.23582828799999941 per_block: 0.07860942933333313 - benchmark_name: 'polkadot/node/subsystem-bench/examples/availability_read.yaml #2' network: - resource: Received from peers total: 411738.0 per_block: 137246.0 - resource: Sent to peers total: 351.0 per_block: 117.0 cpu: - resource: availability-recovery total: 18.93596025099999 per_block: 6.31198675033333 - resource: Test environment total: 0.2541994199999979 per_block: 0.0847331399999993 - benchmark_name: 'polkadot/node/subsystem-bench/examples/availability_read.yaml #3' network: - resource: Received from peers total: 424548.0 per_block: 141516.0 - resource: Sent to peers total: 703.0 per_block: 234.33333333333334 cpu: - resource: availability-recovery total: 16.54178526900001 per_block: 5.513928423000003 - resource: Test environment total: 0.43960946299999537 per_block: 0.14653648766666513 ``` --------- Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
This commit is contained in:
@@ -13,7 +13,10 @@
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
|
||||
use crate::{core::mock::ChainApiState, TestEnvironment};
|
||||
use crate::{
|
||||
core::{environment::BenchmarkUsage, mock::ChainApiState},
|
||||
TestEnvironment,
|
||||
};
|
||||
use av_store::NetworkAvailabilityState;
|
||||
use bitvec::bitvec;
|
||||
use colored::Colorize;
|
||||
@@ -430,7 +433,11 @@ impl TestState {
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn benchmark_availability_read(env: &mut TestEnvironment, mut state: TestState) {
|
||||
pub async fn benchmark_availability_read(
|
||||
benchmark_name: &str,
|
||||
env: &mut TestEnvironment,
|
||||
mut state: TestState,
|
||||
) -> BenchmarkUsage {
|
||||
let config = env.config().clone();
|
||||
|
||||
env.import_block(new_block_import_info(Hash::repeat_byte(1), 1)).await;
|
||||
@@ -490,12 +497,15 @@ pub async fn benchmark_availability_read(env: &mut TestEnvironment, mut state: T
|
||||
format!("{} ms", test_start.elapsed().as_millis() / env.config().num_blocks as u128).red()
|
||||
);
|
||||
|
||||
env.display_network_usage();
|
||||
env.display_cpu_usage(&["availability-recovery"]);
|
||||
env.stop().await;
|
||||
env.collect_resource_usage(benchmark_name, &["availability-recovery"])
|
||||
}
|
||||
|
||||
pub async fn benchmark_availability_write(env: &mut TestEnvironment, mut state: TestState) {
|
||||
pub async fn benchmark_availability_write(
|
||||
benchmark_name: &str,
|
||||
env: &mut TestEnvironment,
|
||||
mut state: TestState,
|
||||
) -> BenchmarkUsage {
|
||||
let config = env.config().clone();
|
||||
|
||||
env.metrics().set_n_validators(config.n_validators);
|
||||
@@ -648,15 +658,11 @@ pub async fn benchmark_availability_write(env: &mut TestEnvironment, mut state:
|
||||
format!("{} ms", test_start.elapsed().as_millis() / env.config().num_blocks as u128).red()
|
||||
);
|
||||
|
||||
env.display_network_usage();
|
||||
|
||||
env.display_cpu_usage(&[
|
||||
"availability-distribution",
|
||||
"bitfield-distribution",
|
||||
"availability-store",
|
||||
]);
|
||||
|
||||
env.stop().await;
|
||||
env.collect_resource_usage(
|
||||
benchmark_name,
|
||||
&["availability-distribution", "bitfield-distribution", "availability-store"],
|
||||
)
|
||||
}
|
||||
|
||||
pub fn peer_bitfield_message_v2(
|
||||
|
||||
Reference in New Issue
Block a user