From c09a008f4b9b09e17fc87ca2546c240228583767 Mon Sep 17 00:00:00 2001 From: Thomas Plisson Date: Tue, 8 Apr 2025 15:47:58 +0200 Subject: [PATCH 1/2] EVM: primitives benchmark script --- etherlink/scripts/benchmark_primitives.sh | 51 +++++++++++++++++++++++ etherlink/scripts/split_replay.sh | 2 +- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100755 etherlink/scripts/benchmark_primitives.sh diff --git a/etherlink/scripts/benchmark_primitives.sh b/etherlink/scripts/benchmark_primitives.sh new file mode 100755 index 000000000000..4e9a32ee13c4 --- /dev/null +++ b/etherlink/scripts/benchmark_primitives.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +set -euo pipefail + +usage() { + echo "usage: $0 [--clean]" + exit 1 +} + +if [ $# -eq 3 ]; then + clean_tmp=false +elif [ $# -eq 4 ] && [ "$4" == "--clean" ]; then + clean_tmp=true +else + usage +fi + +cores=$1 +subset=$2 +graph_output_file=$3 + +log=$(mktemp) +tmp_root_dir="" + +cleanup() { + rm -f "$log" + if $clean_tmp && [[ -n "$tmp_root_dir" && -d "$tmp_root_dir" ]]; then + if rm -rf "$tmp_root_dir"; then + echo "Temporary files have been removed" + else + echo "error: failed to delete $tmp_root_dir" >&2 + fi + fi +} + +trap cleanup INT TERM EXIT + +dune exec -- etherlink/bin_benchmark_producer/main.exe --keep-temp -t "$subset" | tee "$log" + +tmp_files_path=$(grep -oE '/[^ ]+/tezt-[0-9]+/[0-9]+' "$log") +last_block=$(grep -oE 'Block [0-9]+' "$log" | awk '{print $2}' | tail -1) + +if [[ -z "$tmp_files_path" || -z "$last_block" ]]; then + echo "error: failed to extract tmp_files_path or last_block from log" + exit 1 +fi + +tmp_root_dir=$(dirname "$tmp_files_path") + +./etherlink/scripts/split_replay.sh 1 "$last_block" "$tmp_files_path/sandbox_evm_node1" "$cores" +./etherlink/scripts/create_graph.sh "$tmp_files_path/sandbox_evm_node1/kernel_logs" "$graph_output_file" diff --git a/etherlink/scripts/split_replay.sh b/etherlink/scripts/split_replay.sh index ecbc921bc207..fb0d5de9999f 100755 --- a/etherlink/scripts/split_replay.sh +++ b/etherlink/scripts/split_replay.sh @@ -40,7 +40,7 @@ for i in $(seq 0 $((num_splits - 1))); do ./octez-evm-node replay blueprints from "$from" to "$to" \ --data-dir "$data_dir" \ - --profile export & + --profile minimal & pids+=($!) -- GitLab From 73066286e7e8c3b29a9f64e12a17490b638db7b1 Mon Sep 17 00:00:00 2001 From: Thomas Plisson Date: Mon, 14 Apr 2025 14:27:18 +0200 Subject: [PATCH 2/2] EVM: correct benchmark producer's max_gas_per_tx reference value --- etherlink/bin_benchmark_producer/producer.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etherlink/bin_benchmark_producer/producer.ml b/etherlink/bin_benchmark_producer/producer.ml index b7130b92f253..cea024af9cf1 100644 --- a/etherlink/bin_benchmark_producer/producer.ml +++ b/etherlink/bin_benchmark_producer/producer.ml @@ -23,8 +23,8 @@ let register ~title ~registered ~tx_per_call = Constant.smart_rollup_installer; ] @@ fun () -> - (* max_gas_per_tx must be equivalent to kernel_latest/kernel/src/block.rs max_gas_per_reboot *) - let max_gas_per_tx = 30_000_000 * 4 / 3 in + (* max_gas_per_tx must be equivalent to bin_node/lib_dev/durable_storage.ml maximum_gas_per_transaction *) + let max_gas_per_tx = 30_000_000 in (* da_fee_per_byte must be equivalent to kernel_latest/kernel/src/fees.rs DA_FEE_PER_BYTE *) let da_fee_per_byte = Wei.to_wei_z Z.(of_int 4 * pow (of_int 10) 12) in (* gas_price must be big yumyum value kekw *) -- GitLab