From ce8a178829e6645e6db11a07d48c1ffcc1f9a5e5 Mon Sep 17 00:00:00 2001 From: aya Date: Fri, 26 Sep 2025 10:52:12 +0300 Subject: [PATCH] Apply changes to existing scripts --- .../store/store_cpu_stress.sh | 69 +++++++++---------- ...store_scenario6.sh => store_scenario_6.sh} | 14 ++-- 2 files changed, 38 insertions(+), 45 deletions(-) rename scripts/Lite_protocol_scripts/store/{store_scenario6.sh => store_scenario_6.sh} (90%) diff --git a/scripts/Lite_protocol_scripts/store/store_cpu_stress.sh b/scripts/Lite_protocol_scripts/store/store_cpu_stress.sh index 05536c0f..ecd0546e 100755 --- a/scripts/Lite_protocol_scripts/store/store_cpu_stress.sh +++ b/scripts/Lite_protocol_scripts/store/store_cpu_stress.sh @@ -1,52 +1,45 @@ #!/bin/bash set -e -# ========================= -# IDs (same style) -# ========================= export SCENARIO_ID="cpu_store_stress" export TEST_NAME="${SCENARIO_ID}_$(date +%Y%m%d_%H%M%S)" echo "[${TEST_NAME}] start" -# ========================= -# Images (match your scripts) -# ========================= -export LPT_IMAGE="harbor.status.im/wakuorg/liteprotocoltester:latest" - -# ========================= -# Compose-required vars -# ========================= export GF_SECURITY_ADMIN_USER="admin" export GF_SECURITY_ADMIN_PASSWORD="admin" export NODEKEY="${NODEKEY:-}" export STORAGE_SIZE="${STORAGE_SIZE:-}" -# ========================= -# Resource knobs -# ========================= -export SERVICENODE_CPU_CORES="0-1" -export POSTGRES_CPU_CORES="2-3" -export SERVICE_MEM_LIMIT="2g" -export POSTGRES_MEM_LIMIT="2g" -export POSTGRES_SHM_SIZE="1g" +export NWAKU_IMAGE="wakuorg/nwaku:latest" +export NUM_NWAKU_NODES=15 +export RLN_ENABLED=false -# ========================= -# Topic / shard -# ========================= +# Service node +export SERVICENODE_METRICS_PORT=8008 +export SERVICENODE_HTTP_PORT=8644 +export SERVICENODE_REST_PORT=8645 + +export POSTGRES_EXPORTER_PORT=9187 +export PROMETHEUS_PORT=9090 +export GRAFANA_PORT=3001 + +export SERVICENODE_CPU_CORES="0-1" +export SERVICENODE_MEM_LIMIT=512m +export POSTGRES_CPU_CORES="0-3" +export POSTGRES_MEM_LIMIT=2g +export POSTGRES_SHM=1g + +export LPT_IMAGE="harbor.status.im/wakuorg/liteprotocoltester:latest" + +# Topic / shard export CLUSTER_ID=66 export SHARD=0 export PUBSUB_TOPIC="/waku/2/rs/${CLUSTER_ID}/${SHARD}" -export CONTENT_TOPIC="/sonda/2/polls/proto" -# ========================= -# REST endpoints -# ========================= -export RELAY_NODE_REST_ADDRESS="http://127.0.0.1:8645" -export STORE_NODE_REST_ADDRESS="http://127.0.0.1:8644" +export RELAY_NODE_REST_ADDRESS="http://127.0.0.1:${SERVICENODE_REST_PORT}" +export STORE_NODE_REST_ADDRESS="http://127.0.0.1:${SERVICENODE_HTTP_PORT}" -# ========================= # Phase 0 — bring up simulator -# ========================= echo "[${TEST_NAME}] Phase 0: bring up simulator" cd ./waku-simulator docker compose up -d @@ -76,24 +69,24 @@ docker run -d --rm --name lpt_cpu \ --network host ${LPT_IMAGE} # ========================= -# Phase 2 — Sonda (exact style from your scripts) -# build image + write env + run with --env-file +# Phase 2 # ========================= echo "[${TEST_NAME}] Phase 2: build and start Sonda" -cd ../sonda +cd ./sonda docker build -t local-perf-sonda -f ./Dockerfile.sonda . cat < perf-test.env -RELAY_NODE_REST_ADDRESS=http://127.0.0.1:8645 -STORE_NODE_REST_ADDRESS=http://127.0.0.1:8644 +RELAY_NODE_REST_ADDRESS=${RELAY_NODE_REST_ADDRESS} +STORE_NODE_REST_ADDRESS=${STORE_NODE_REST_ADDRESS} QUERY_DELAY=0.5 STORE_NODES=/ip4/10.2.0.101/tcp/60001/p2p/16Uiu2HAkyte8uj451tGkbww4Mjcg6DRnmAHxNeWyF4zp23RbpG3n -CLUSTER_ID=66 -SHARD=0 +CLUSTER_ID=${CLUSTER_ID} +SHARD=${SHARD} +PUBSUB_TOPIC=/waku/2/rs/${CLUSTER_ID}/${SHARD} EOF docker run --env-file perf-test.env -l sonda -d --network host local-perf-sonda -cd ../waku-lite/waku-protocol-perf-test +cd .. echo "[${TEST_NAME}] hold 12m" sleep 720 diff --git a/scripts/Lite_protocol_scripts/store/store_scenario6.sh b/scripts/Lite_protocol_scripts/store/store_scenario_6.sh similarity index 90% rename from scripts/Lite_protocol_scripts/store/store_scenario6.sh rename to scripts/Lite_protocol_scripts/store/store_scenario_6.sh index c193fa20..d80ca99b 100755 --- a/scripts/Lite_protocol_scripts/store/store_scenario6.sh +++ b/scripts/Lite_protocol_scripts/store/store_scenario_6.sh @@ -9,10 +9,10 @@ echo "[${TEST_NAME}] start" # Images (pin for comparability) export NWAKU_IMAGE="wakuorg/nwaku:stable" export LPT_IMAGE="wakuorg/liteprotocoltester:latest" -export SONDA_IMAGE="wakuorg/sonda:latest" # change if you host it elsewhere +export SONDA_IMAGE="wakuorg/sonda:latest" # Service/DB resources (CPU bottleneck on service) -export SERVICENODE_CPU_CORES=0 # single core to amplify CPU load +export SERVICENODE_CPU_CORES=0 export POSTGRES_CPU_CORES=1-3 export SERVICE_MEM_LIMIT="2g" export POSTGRES_MEM_LIMIT="2g" @@ -43,12 +43,12 @@ sleep 30 # ---------- Phase 1: CPU write hammer (small msgs, high rate) ---------- # Small payloads + high publisher count => per-message CPU (encode/verify/route) dominates. export NUM_PUBLISHER_NODES=24 -export NUM_RECEIVER_NODES=8 # keep some receivers to drive end-to-end -export MESSAGE_INTERVAL_MILLIS=8 # ~125 msg/s per publisher (adjust if too hot) -export MIN_MESSAGE_SIZE=256 # bytes -export MAX_MESSAGE_SIZE=1024 # bytes +export NUM_RECEIVER_NODES=8 +export MESSAGE_INTERVAL_MILLIS=8 +export MIN_MESSAGE_SIZE=256 +export MAX_MESSAGE_SIZE=1024 export START_PUBLISHING_AFTER=10 -export NUM_MESSAGES=0 # unlimited +export NUM_MESSAGES=0 echo "[${TEST_NAME}] phase1 writers: ${NUM_PUBLISHER_NODES} pubs @ ${MESSAGE_INTERVAL_MILLIS}ms, 256-1024B" docker run -d --rm --name lpt_cpu \