Apply changes to existing scripts

This commit is contained in:
aya 2025-09-26 10:52:12 +03:00
parent 88340197ca
commit ce8a178829
2 changed files with 38 additions and 45 deletions

View File

@ -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 <<EOF > 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

View File

@ -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 \