scripts: fix flag usage and phase4 crash-loop process kill

This commit is contained in:
abbycin 2026-03-04 08:01:16 +08:00
parent 46b5a07679
commit 7d1615b36c
5 changed files with 144 additions and 39 deletions

View File

@ -52,7 +52,7 @@ for workload in "${workloads[@]}"; do
--prefill-keys "${prefill_keys}" \ --prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \ --warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \ --measure-secs "${measure_secs}" \
--shared-keyspace true \ --shared-keyspace \
--read-path "${read_path}" \ --read-path "${read_path}" \
--result-file "${result_file}" --result-file "${result_file}"
done done

View File

@ -84,7 +84,7 @@ run_case() {
--prefill-keys "${prefill_keys}" \ --prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \ --warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \ --measure-secs "${measure_secs}" \
--shared-keyspace true \ --shared-keyspace \
--read-path "${read_path}" \ --read-path "${read_path}" \
--result-file "${result_file}" --result-file "${result_file}"
else else

View File

@ -102,7 +102,7 @@ run_case() {
--prefill-keys "${prefill_keys}" \ --prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \ --warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \ --measure-secs "${measure_secs}" \
--shared-keyspace true \ --shared-keyspace \
--read-path "${read_path}" \ --read-path "${read_path}" \
--result-file "${result_file}" --result-file "${result_file}"
else else

View File

@ -60,7 +60,7 @@ run_case() {
--prefill-keys "${prefill_keys}" \ --prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \ --warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \ --measure-secs "${measure_secs}" \
--shared-keyspace true \ --shared-keyspace \
--read-path "${read_path}" \ --read-path "${read_path}" \
--durability "${durability}" \ --durability "${durability}" \
--result-file "${result_file}" --result-file "${result_file}"

View File

@ -55,43 +55,149 @@ run_cmd() {
local skip_prefill="$3" local skip_prefill="$3"
if [ "${engine}" = "mace" ]; then if [ "${engine}" = "mace" ]; then
local cleanup_flag if [ "${skip_prefill}" = "1" ]; then
cleanup_flag="false" "${root_dir}/target/release/kv_bench" \
"${root_dir}/target/release/kv_bench" \ --path "${db_path}" \
--path "${db_path}" \ --workload "${workload}" \
--workload "${workload}" \ --threads "${threads}" \
--threads "${threads}" \ --key-size "${key_size}" \
--key-size "${key_size}" \ --value-size "${value_size}" \
--value-size "${value_size}" \ --prefill-keys "${prefill_keys}" \
--prefill-keys "${prefill_keys}" \ --warmup-secs "${warmup_secs}" \
--warmup-secs "${warmup_secs}" \ --measure-secs "${measure_secs}" \
--measure-secs "${measure_secs}" \ --shared-keyspace \
--shared-keyspace true \ --read-path "${read_path}" \
--read-path "${read_path}" \ --durability "${durability}" \
--durability "${durability}" \ --reuse-path \
--cleanup "${cleanup_flag}" \ --skip-prefill \
--reuse-path \ --result-file "${result_file}"
$( [ "${skip_prefill}" = "1" ] && printf '%s' "--skip-prefill" ) \ else
--result-file "${result_file}" "${root_dir}/target/release/kv_bench" \
--path "${db_path}" \
--workload "${workload}" \
--threads "${threads}" \
--key-size "${key_size}" \
--value-size "${value_size}" \
--prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \
--shared-keyspace \
--read-path "${read_path}" \
--durability "${durability}" \
--reuse-path \
--result-file "${result_file}"
fi
else else
"${root_dir}/rocksdb/build/release/rocksdb_bench" \ if [ "${skip_prefill}" = "1" ]; then
--path "${db_path}" \ "${root_dir}/rocksdb/build/release/rocksdb_bench" \
--workload "${workload}" \ --path "${db_path}" \
--threads "${threads}" \ --workload "${workload}" \
--key-size "${key_size}" \ --threads "${threads}" \
--value-size "${value_size}" \ --key-size "${key_size}" \
--prefill-keys "${prefill_keys}" \ --value-size "${value_size}" \
--warmup-secs "${warmup_secs}" \ --prefill-keys "${prefill_keys}" \
--measure-secs "${measure_secs}" \ --warmup-secs "${warmup_secs}" \
--read-path "${read_path}" \ --measure-secs "${measure_secs}" \
--durability "${durability}" \ --read-path "${read_path}" \
--no-cleanup \ --durability "${durability}" \
--reuse-path \ --no-cleanup \
$( [ "${skip_prefill}" = "1" ] && printf '%s' "--skip-prefill" ) \ --reuse-path \
--result-file "${result_file}" --skip-prefill \
--result-file "${result_file}"
else
"${root_dir}/rocksdb/build/release/rocksdb_bench" \
--path "${db_path}" \
--workload "${workload}" \
--threads "${threads}" \
--key-size "${key_size}" \
--value-size "${value_size}" \
--prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \
--read-path "${read_path}" \
--durability "${durability}" \
--no-cleanup \
--reuse-path \
--result-file "${result_file}"
fi
fi fi
} }
start_run_bg() {
local workload="$1"
local measure_secs="$2"
local skip_prefill="$3"
if [ "${engine}" = "mace" ]; then
if [ "${skip_prefill}" = "1" ]; then
"${root_dir}/target/release/kv_bench" \
--path "${db_path}" \
--workload "${workload}" \
--threads "${threads}" \
--key-size "${key_size}" \
--value-size "${value_size}" \
--prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \
--shared-keyspace \
--read-path "${read_path}" \
--durability "${durability}" \
--reuse-path \
--skip-prefill \
--result-file "${result_file}" &
else
"${root_dir}/target/release/kv_bench" \
--path "${db_path}" \
--workload "${workload}" \
--threads "${threads}" \
--key-size "${key_size}" \
--value-size "${value_size}" \
--prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \
--shared-keyspace \
--read-path "${read_path}" \
--durability "${durability}" \
--reuse-path \
--result-file "${result_file}" &
fi
else
if [ "${skip_prefill}" = "1" ]; then
"${root_dir}/rocksdb/build/release/rocksdb_bench" \
--path "${db_path}" \
--workload "${workload}" \
--threads "${threads}" \
--key-size "${key_size}" \
--value-size "${value_size}" \
--prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \
--read-path "${read_path}" \
--durability "${durability}" \
--no-cleanup \
--reuse-path \
--skip-prefill \
--result-file "${result_file}" &
else
"${root_dir}/rocksdb/build/release/rocksdb_bench" \
--path "${db_path}" \
--workload "${workload}" \
--threads "${threads}" \
--key-size "${key_size}" \
--value-size "${value_size}" \
--prefill-keys "${prefill_keys}" \
--warmup-secs "${warmup_secs}" \
--measure-secs "${measure_secs}" \
--read-path "${read_path}" \
--durability "${durability}" \
--no-cleanup \
--reuse-path \
--result-file "${result_file}" &
fi
fi
runner_pid=$!
}
if [ ! -f "${restart_file}" ]; then if [ ! -f "${restart_file}" ]; then
printf "cycle,start_epoch,kill_sent,worker_exit,restart_status,restart_ready_ms\n" > "${restart_file}" printf "cycle,start_epoch,kill_sent,worker_exit,restart_status,restart_ready_ms\n" > "${restart_file}"
fi fi
@ -107,8 +213,7 @@ while [ "$(date +%s)" -lt "${end_epoch}" ]; do
printf "[phase4][%s] cycle=%s start=%s\n" "${engine}" "${cycle}" "${cycle_start}" printf "[phase4][%s] cycle=%s start=%s\n" "${engine}" "${cycle}" "${cycle_start}"
# long run in background; kill after interval # long run in background; kill after interval
(run_cmd "${workload_main}" "${run_measure_secs}" 1) & start_run_bg "${workload_main}" "${run_measure_secs}" 1
runner_pid=$!
sleep "${crash_interval_secs}" sleep "${crash_interval_secs}"