You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: apps/loadgen/README.md
+45-17Lines changed: 45 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# loadgen
2
2
3
-
Standalone load generator for ev-node stress testing. Talks to a [spamoor-daemon](https://github.com/ethpandaops/spamoor) sidecar via HTTP API. Runs an in-process scheduler with configurable regular and burst workloads.
3
+
Standalone load generator for ev-node stress testing. Talks to a [spamoor-daemon](https://github.com/ethpandaops/spamoor) sidecar via HTTP API.
Regular workloads fire immediately at startup, then repeat at `--interval`. Per-run tx count = `tx-per-day / (24h / interval)`, overriding each matrix entry's `BENCH_COUNT_PER_SPAMMER`.
28
+
29
+
Bursts are randomly spaced throughout a rolling 24h window. Set `--burst-per-day=0` (the default) to disable bursts entirely.
|`--interval`|`BENCH_INTERVAL`|`1h`| regular workload frequency |
31
37
|`--burst-tx-count`|`BENCH_BURST_TX_COUNT`|`500000`| txs per burst |
32
-
|`--burst-per-day`|`BENCH_BURST_PER_DAY`|`2`| bursts per day, randomly spaced |
38
+
|`--burst-per-day`|`BENCH_BURST_PER_DAY`|`0`| bursts per day, randomly spaced (0 = disabled)|
33
39
|`--regular-matrix`|`BENCH_REGULAR_MATRIX`|`/home/ev/baseline.json`| path to regular matrix JSON |
34
40
|`--burst-matrix`|`BENCH_BURST_MATRIX`|`/home/ev/burst.json`| path to burst matrix JSON |
35
41
36
-
Global flag: `--spamoor-url` (or `BENCH_SPAMOOR_URL` env, default `http://spamoor-daemon:8080`)
42
+
### CLI mode (one-shot commands)
43
+
44
+
#### `run` — execute a matrix file
45
+
46
+
Runs all entries from a matrix JSON file with probability filtering and sync waiting, then exits.
47
+
48
+
```sh
49
+
ev-loadgen run matrices/baseline.json --spamoor-url=http://localhost:8080
50
+
```
37
51
38
-
###Scheduling
52
+
#### `burst` — trigger a single burst
39
53
40
-
-**Regular**: fires immediately at startup, then repeats at `--interval`. Per-run tx count = `tx-per-day / (24h / interval)`. Overrides each matrix entry's `BENCH_COUNT_PER_SPAMMER`.
41
-
-**Burst**: at startup + each midnight UTC, generates N random times across the day. Each burst overrides `BENCH_COUNT_PER_SPAMMER` = `burst-tx-count / NumSpammers`.
42
-
-**Serialization**: a mutex prevents concurrent spamoor access. If burst fires during regular (or vice versa), it waits for the lock.
@@ -109,10 +137,10 @@ Each entry specifies a spamoor scenario, tx counts, and optional probability:
109
137
| Field | Description |
110
138
|---|---|
111
139
|`scenario`| spamoor scenario name (`eoatx`, `gasburnertx`, `erc20tx`, `uniswap-swaps`, etc.) |
112
-
|`probability`| 0.0–1.0, chance of running per invocation (omit = always run) |
140
+
|`probability`| 0.0-1.0, chance of running per invocation (omit = always run) |
113
141
|`timeout`| max duration per entry (default `15m`) |
114
142
115
-
When using `start`, the `BENCH_COUNT_PER_SPAMMER`value in the matrix is overridden by the computed per-run count. The matrix value is still used by the `run` command.
143
+
When using `start` or `burst`, `BENCH_COUNT_PER_SPAMMER` is overridden by the computed per-run count. The matrix value is used as-is by `run`.
0 commit comments