Snapshot of verae-nats-cluster (optimal NATS config study)
This commit is contained in:
commit
c8825ff377
184 changed files with 10626 additions and 0 deletions
49
BENCH.md
Normal file
49
BENCH.md
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
# NATS cluster message speed
|
||||||
|
|
||||||
|
Run **`20260912T045131Z`** (UTC). Client: LXC **510** `verae-px-worker` (`10.10.10.20`), not a nats-* server. Servers: `nats-a/b/c` on `10.10.10.21–23` (`vmbr1` only).
|
||||||
|
|
||||||
|
Client URL:
|
||||||
|
|
||||||
|
```text
|
||||||
|
nats://10.10.10.21:4222,nats://10.10.10.22:4222,nats://10.10.10.23:4222
|
||||||
|
```
|
||||||
|
|
||||||
|
## Method
|
||||||
|
|
||||||
|
- **Core NATS** is fire-and-forget pub/sub (`nats bench`). No disk, no replica ack.
|
||||||
|
- **JetStream** uses **file** storage and **replicas=3** (same as product streams). The unique stream `benchstream` is deleted between JS loads.
|
||||||
|
- Throughput is **msgs/sec** from nats CLI **0.1.6** (`--no-progress --csv`). Its min/avg/max are publisher **rate spread**, not delay.
|
||||||
|
- **Ping** delay: one publisher, sequential publish-then-wait. This is one-message round-trip through the cluster.
|
||||||
|
- **Flood** delay: N publishers dump the whole batch, then the subscriber drains. This is **queueing under burst**, not wire RTT.
|
||||||
|
- Probe: `scripts/latency.mjs` (two connections, header timestamp).
|
||||||
|
|
||||||
|
## Throughput
|
||||||
|
|
||||||
|
| Run | Mode | Aggregate msgs/s | Pub msgs/s | Pub MB/s | Sub msgs/s | Sub MB/s |
|
||||||
|
|-----|------|------------------|------------|----------|------------|----------|
|
||||||
|
| `core-1p1s-50k-128` | core pub/sub | 1,200,836 | 791,094 | 96.57 | 747,461 | 91.24 |
|
||||||
|
| `core-4p4s-100k-128` | core pub/sub | 1,521,256 | 316,312 | 38.61 | 1,299,634 | 158.65 |
|
||||||
|
| `core-4p4s-50k-1k` | core pub/sub | 630,460 | 247,747 | 241.94 | 510,216 | 498.26 |
|
||||||
|
| `core-8p8s-200k-128` | core pub/sub | 2,007,937 | 333,957 | 40.77 | 1,790,736 | 218.60 |
|
||||||
|
| `js-1p-20k-128-r3` | jetstream r=3 file | — | 16,155 | 1.97 | — | — |
|
||||||
|
| `js-2p2s-20k-128-r3` | jetstream r=3 file | 21,861 | 10,965 | 1.34 | 10,942 | 1.34 |
|
||||||
|
| `js-4p-20k-1k-r3` | jetstream r=3 file | — | 13,493 | 13.18 | — | — |
|
||||||
|
| `js-4p-50k-128-r3` | jetstream r=3 file | — | 16,607 | 2.03 | — | — |
|
||||||
|
|
||||||
|
## Round-trip delay
|
||||||
|
|
||||||
|
| Run | Kind | Count | Pubs | Size | min | avg | p50 | p90 | p99 | max |
|
||||||
|
|-----|------|-------|------|------|-----|-----|-----|-----|-----|-----|
|
||||||
|
| `lat-ping-1k-128` | ping (sequential RTT) | 1000 | 1 | 128 B | 0.254ms | 0.307ms | 0.286ms | 0.332ms | 0.734ms | 2.763ms |
|
||||||
|
| `lat-1p-5k-128` | flood (burst queueing) | 5000 | 1 | 128 B | 149.279ms | 238.626ms | 248.752ms | 274.314ms | 279.398ms | 279.740ms |
|
||||||
|
| `lat-4p-5k-1k` | flood (burst queueing) | 5000 | 4 | 1024 B | 155.101ms | 211.706ms | 217.579ms | 223.268ms | 227.798ms | 228.370ms |
|
||||||
|
| `lat-4p-10k-128` | flood (burst queueing) | 10000 | 4 | 128 B | 174.174ms | 263.186ms | 266.672ms | 299.073ms | 304.233ms | 304.475ms |
|
||||||
|
| `lat-8p-20k-128` | flood (burst queueing) | 20000 | 8 | 128 B | 304.586ms | 453.749ms | 466.296ms | 499.924ms | 505.112ms | 505.620ms |
|
||||||
|
|
||||||
|
## What the numbers mean
|
||||||
|
|
||||||
|
Product job/event/archive traffic is **JetStream r=3 file**. On this three-LXC stand that is about **16k durable 128 B pubs/s** (about **13k** at 1 KiB). Core NATS is an upper bound for non-durable fan-out: about **0.7–2.0M msgs/s** aggregate at 128 B, or **~630k msgs/s (~616 MB/s)** at 1 KiB with 4 publishers.
|
||||||
|
|
||||||
|
A quiet request-reply is **~0.3 ms** average, **p99 < 1 ms**. Flood rows in the **150–500 ms** band are the subscriber catching up after a burst, which is what a job-events mailbox sees if publishers outrun consumers.
|
||||||
|
|
||||||
|
Re-run on NS1: `bash scripts/bench.sh`. Raw logs/CSVs are under `results/<utc>/`.
|
||||||
7
NATS.md
Normal file
7
NATS.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# NATS — verae-nats-cluster
|
||||||
|
|
||||||
|
This repo **is** the three-node JetStream cluster. Listeners are the guest private IPs on `vmbr1` (`10.10.10.21–23:4222` and `:6222`). HTTP monitor is loopback `:8222` inside each guest.
|
||||||
|
|
||||||
|
Zapier cloud, browsers, and `vmbr0` never get a NATS socket.
|
||||||
|
|
||||||
|
Throughput and delay at several loads: [BENCH.md](BENCH.md).
|
||||||
76
README.md
Normal file
76
README.md
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
# verae-nats-cluster
|
||||||
|
|
||||||
|
Three **distinct Proxmox LXC** guests running **NATS JetStream** as a cluster, on the private bridge only. This is the test stand before the same layout moves to separate hardware.
|
||||||
|
|
||||||
|
**Forgejo:** https://git.georgelambert.org/marchon/verae-nats-cluster
|
||||||
|
**SSH:** `ssh://git@git.georgelambert.org:2223/marchon/verae-nats-cluster.git`
|
||||||
|
|
||||||
|
| Guest | VMID | `vmbr1` IP | Client | Cluster | Monitor |
|
||||||
|
|-------|------|------------|--------|---------|---------|
|
||||||
|
| nats-a | 511 | 10.10.10.21 | `:4222` | `:6222` | `127.0.0.1:8222` |
|
||||||
|
| nats-b | 512 | 10.10.10.22 | `:4222` | `:6222` | `127.0.0.1:8222` |
|
||||||
|
| nats-c | 513 | 10.10.10.23 | `:4222` | `:6222` | `127.0.0.1:8222` |
|
||||||
|
|
||||||
|
Cluster name: `verae`. Client URL:
|
||||||
|
|
||||||
|
```text
|
||||||
|
nats://10.10.10.21:4222,nats://10.10.10.22:4222,nats://10.10.10.23:4222
|
||||||
|
```
|
||||||
|
|
||||||
|
**Not** on `vmbr0`. **Not** `0.0.0.0`. Host lab NATS on `127.0.0.1:4222` is left running so current keep/fleet/middleware stay up until you cut over.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# on NS1 (the Proxmox host)
|
||||||
|
git clone ssh://git@git.georgelambert.org:2223/marchon/verae-nats-cluster.git
|
||||||
|
cd verae-nats-cluster
|
||||||
|
bash scripts/create-cluster.sh
|
||||||
|
bash scripts/status.sh
|
||||||
|
bash scripts/test.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Test-env cut-over (keep/fleet/middleware on NS1):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1) create product streams (replicas=3)
|
||||||
|
bash scripts/ensure-streams.sh
|
||||||
|
# 2) fleet overlay nats.url + services/*.json already list the three URLs
|
||||||
|
# 3) restart fleet and keep with NATS_URL from client.env
|
||||||
|
```
|
||||||
|
|
||||||
|
`JETSTREAM_REPLICAS=3` on middleware. Host `127.0.0.1:4222` can stay up unused. Zapier cloud never talks to NATS.
|
||||||
|
|
||||||
|
nkeys/mTLS: `verae-nats-accounts` still has the INTERNAL/LEAF sketch. Do **not** enable accounts on this cluster until every client passes credentials in `NATS_URL`. Private `vmbr1` is the current isolation.
|
||||||
|
|
||||||
|
## Message speed (throughput + delay)
|
||||||
|
|
||||||
|
From a **client that is not a nats-* server** (LXC 510 `verae-px-worker`):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# on NS1 (hypervisor). Bench client is LXC 510.
|
||||||
|
bash scripts/bench.sh
|
||||||
|
|
||||||
|
# Full study that must run ON NS1 (orchestrator + charts + HTML/PDF):
|
||||||
|
bash scripts/study-on-ns1.sh
|
||||||
|
|
||||||
|
# Maximize cores/RAM + tmpfs JetStream, same ladder, restore ZFS after:
|
||||||
|
bash scripts/maximize-ns1-study.sh
|
||||||
|
|
||||||
|
# Exhaustive factorial (r=1/r=3, file/memory, reconnect, UDP, MQTT) + combined report:
|
||||||
|
bash scripts/exhaustive-ns1-study.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
That writes `results/<utc>/` and copies a summary to [BENCH.md](BENCH.md). Full write-up with charts (HTML + PDF) is in the progress repo: [nats-cluster-bench](https://zapier.georgelambert.org/packages/zapier-decisions/reports/nats-cluster-bench.pdf). Core NATS is fire-and-forget; JetStream rows use **file** storage and **replicas=3**. Ping delay is sequential RTT; flood delay is queueing under burst.
|
||||||
|
|
||||||
|
Latest run (`20260912T045131Z`):
|
||||||
|
|
||||||
|
| Kind | Load | Result |
|
||||||
|
|------|------|--------|
|
||||||
|
| Core 1p1s 50k×128 B | pub/sub | ~1.20M msgs/s aggregate |
|
||||||
|
| Core 8p8s 200k×128 B | pub/sub | ~2.01M msgs/s aggregate |
|
||||||
|
| Core 4p4s 50k×1 KiB | pub/sub | ~630k msgs/s (~616 MB/s aggregate) |
|
||||||
|
| JetStream r=3 file | 1–4 pubs, 128 B | ~16k durable pubs/s |
|
||||||
|
| JetStream r=3 file | 4 pubs, 1 KiB | ~13.5k durable pubs/s |
|
||||||
|
| Ping 1k×128 B | sequential RTT | avg 0.307 ms, p99 0.734 ms |
|
||||||
|
| Flood 8p 20k×128 B | burst queueing | avg 454 ms |
|
||||||
|
|
||||||
|
Hardware move: same three configs, three boxes, private NIC only — change IPs in `cluster.env` and `conf/nats.conf.tmpl`.
|
||||||
5
SUMMARY.md
Normal file
5
SUMMARY.md
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# verae-nats-cluster
|
||||||
|
|
||||||
|
Proxmox LXC 511–513 (`nats-a/b/c`) form a JetStream cluster on `vmbr1` for HA testing before dedicated hardware.
|
||||||
|
|
||||||
|
Message speed (client LXC 510 vs the three nodes): see [BENCH.md](BENCH.md). Product streams are JetStream **file + replicas=3** (~16k durable 128 B pubs/s on this stand). Core NATS is ~1–2M msgs/s at 128 B. Sequential RTT ~0.3 ms; flood queueing is hundreds of ms.
|
||||||
3
client.env
Normal file
3
client.env
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Test-environment client URL. Private vmbr1 only. Lab loopback stays until cut-over.
|
||||||
|
export NATS_URL="${NATS_URL:-nats://10.10.10.21:4222,nats://10.10.10.22:4222,nats://10.10.10.23:4222}"
|
||||||
|
export JETSTREAM_REPLICAS="${JETSTREAM_REPLICAS:-3}"
|
||||||
19
cluster.env
Normal file
19
cluster.env
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Distinct Proxmox LXC guests on NS1 vmbr1. Not the host loopback NATS.
|
||||||
|
BRIDGE="${BRIDGE:-vmbr1}"
|
||||||
|
GW="${GW:-10.10.10.1}"
|
||||||
|
MEMORY="${MEMORY:-16384}"
|
||||||
|
CORES="${CORES:-8}"
|
||||||
|
DISK="${DISK:-8}"
|
||||||
|
STORAGE="${STORAGE:-SSD2}"
|
||||||
|
TEMPLATE="${TEMPLATE:-/var/lib/vz/template/cache/ubuntu-24.04-standard_24.04-2_amd64.tar.zst}"
|
||||||
|
DNS="${DNS:-8.8.8.8}"
|
||||||
|
USER_NAME="${USER_NAME:-marchon}"
|
||||||
|
NATS_VER="${NATS_VER:-2.10.26}"
|
||||||
|
CLUSTER_NAME="${CLUSTER_NAME:-verae}"
|
||||||
|
|
||||||
|
# vmid hostname ipv4
|
||||||
|
NODES="${NODES:-
|
||||||
|
511 nats-a 10.10.10.21
|
||||||
|
512 nats-b 10.10.10.22
|
||||||
|
513 nats-c 10.10.10.23
|
||||||
|
}"
|
||||||
19
conf/nats.conf.tmpl
Normal file
19
conf/nats.conf.tmpl
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# JetStream cluster node. Bind the private guest IP only — never vmbr0 / 0.0.0.0.
|
||||||
|
server_name: {{NAME}}
|
||||||
|
host: {{IP}}
|
||||||
|
port: 4222
|
||||||
|
http: 127.0.0.1:8222
|
||||||
|
|
||||||
|
jetstream {
|
||||||
|
store_dir: /var/lib/nats/jetstream
|
||||||
|
max_mem: 8G
|
||||||
|
max_file: 4G
|
||||||
|
}
|
||||||
|
|
||||||
|
cluster {
|
||||||
|
name: {{CLUSTER}}
|
||||||
|
listen: {{IP}}:6222
|
||||||
|
routes: [
|
||||||
|
{{ROUTES}}
|
||||||
|
]
|
||||||
|
}
|
||||||
12
package.json
Normal file
12
package.json
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"name": "verae-nats-cluster",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"description": "Three-node NATS JetStream cluster on distinct Proxmox LXC guests (vmbr1 only)",
|
||||||
|
"scripts": {
|
||||||
|
"create": "bash scripts/create-cluster.sh",
|
||||||
|
"test": "bash scripts/test.sh",
|
||||||
|
"status": "bash scripts/status.sh",
|
||||||
|
"bench": "bash scripts/bench.sh"
|
||||||
|
}
|
||||||
|
}
|
||||||
10
results/.gitignore
vendored
Normal file
10
results/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
*
|
||||||
|
!.gitignore
|
||||||
|
!20260912T045131Z/
|
||||||
|
!20260912T045131Z/**
|
||||||
|
!20260912T051237Z/
|
||||||
|
!20260912T051237Z/**
|
||||||
|
!20260912T053120Z/
|
||||||
|
!20260912T053120Z/**
|
||||||
|
!20260912T055851Z/
|
||||||
|
!20260912T055851Z/**
|
||||||
49
results/20260912T045131Z/BENCH.md
Normal file
49
results/20260912T045131Z/BENCH.md
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
# NATS cluster message speed
|
||||||
|
|
||||||
|
Run **`20260912T045131Z`** (UTC). Client: LXC **510** `verae-px-worker` (`10.10.10.20`), not a nats-* server. Servers: `nats-a/b/c` on `10.10.10.21–23` (`vmbr1` only).
|
||||||
|
|
||||||
|
Client URL:
|
||||||
|
|
||||||
|
```text
|
||||||
|
nats://10.10.10.21:4222,nats://10.10.10.22:4222,nats://10.10.10.23:4222
|
||||||
|
```
|
||||||
|
|
||||||
|
## Method
|
||||||
|
|
||||||
|
- **Core NATS** is fire-and-forget pub/sub (`nats bench`). No disk, no replica ack.
|
||||||
|
- **JetStream** uses **file** storage and **replicas=3** (same as product streams). The unique stream `benchstream` is deleted between JS loads.
|
||||||
|
- Throughput is **msgs/sec** from nats CLI **0.1.6** (`--no-progress --csv`). Its min/avg/max are publisher **rate spread**, not delay.
|
||||||
|
- **Ping** delay: one publisher, sequential publish-then-wait. This is one-message round-trip through the cluster.
|
||||||
|
- **Flood** delay: N publishers dump the whole batch, then the subscriber drains. This is **queueing under burst**, not wire RTT.
|
||||||
|
- Probe: `scripts/latency.mjs` (two connections, header timestamp).
|
||||||
|
|
||||||
|
## Throughput
|
||||||
|
|
||||||
|
| Run | Mode | Aggregate msgs/s | Pub msgs/s | Pub MB/s | Sub msgs/s | Sub MB/s |
|
||||||
|
|-----|------|------------------|------------|----------|------------|----------|
|
||||||
|
| `core-1p1s-50k-128` | core pub/sub | 1,200,836 | 791,094 | 96.57 | 747,461 | 91.24 |
|
||||||
|
| `core-4p4s-100k-128` | core pub/sub | 1,521,256 | 316,312 | 38.61 | 1,299,634 | 158.65 |
|
||||||
|
| `core-4p4s-50k-1k` | core pub/sub | 630,460 | 247,747 | 241.94 | 510,216 | 498.26 |
|
||||||
|
| `core-8p8s-200k-128` | core pub/sub | 2,007,937 | 333,957 | 40.77 | 1,790,736 | 218.60 |
|
||||||
|
| `js-1p-20k-128-r3` | jetstream r=3 file | — | 16,155 | 1.97 | — | — |
|
||||||
|
| `js-2p2s-20k-128-r3` | jetstream r=3 file | 21,861 | 10,965 | 1.34 | 10,942 | 1.34 |
|
||||||
|
| `js-4p-20k-1k-r3` | jetstream r=3 file | — | 13,493 | 13.18 | — | — |
|
||||||
|
| `js-4p-50k-128-r3` | jetstream r=3 file | — | 16,607 | 2.03 | — | — |
|
||||||
|
|
||||||
|
## Round-trip delay
|
||||||
|
|
||||||
|
| Run | Kind | Count | Pubs | Size | min | avg | p50 | p90 | p99 | max |
|
||||||
|
|-----|------|-------|------|------|-----|-----|-----|-----|-----|-----|
|
||||||
|
| `lat-ping-1k-128` | ping (sequential RTT) | 1000 | 1 | 128 B | 0.254ms | 0.307ms | 0.286ms | 0.332ms | 0.734ms | 2.763ms |
|
||||||
|
| `lat-1p-5k-128` | flood (burst queueing) | 5000 | 1 | 128 B | 149.279ms | 238.626ms | 248.752ms | 274.314ms | 279.398ms | 279.740ms |
|
||||||
|
| `lat-4p-5k-1k` | flood (burst queueing) | 5000 | 4 | 1024 B | 155.101ms | 211.706ms | 217.579ms | 223.268ms | 227.798ms | 228.370ms |
|
||||||
|
| `lat-4p-10k-128` | flood (burst queueing) | 10000 | 4 | 128 B | 174.174ms | 263.186ms | 266.672ms | 299.073ms | 304.233ms | 304.475ms |
|
||||||
|
| `lat-8p-20k-128` | flood (burst queueing) | 20000 | 8 | 128 B | 304.586ms | 453.749ms | 466.296ms | 499.924ms | 505.112ms | 505.620ms |
|
||||||
|
|
||||||
|
## What the numbers mean
|
||||||
|
|
||||||
|
Product job/event/archive traffic is **JetStream r=3 file**. On this three-LXC stand that is about **16k durable 128 B pubs/s** (about **13k** at 1 KiB). Core NATS is an upper bound for non-durable fan-out: about **0.7–2.0M msgs/s** aggregate at 128 B, or **~630k msgs/s (~616 MB/s)** at 1 KiB with 4 publishers.
|
||||||
|
|
||||||
|
A quiet request-reply is **~0.3 ms** average, **p99 < 1 ms**. Flood rows in the **150–500 ms** band are the subscriber catching up after a burst, which is what a job-events mailbox sees if publishers outrun consumers.
|
||||||
|
|
||||||
|
Re-run on NS1: `bash scripts/bench.sh`. Raw logs/CSVs are under `results/<utc>/`.
|
||||||
3
results/20260912T045131Z/core-1p1s-50k-128.csv
Normal file
3
results/20260912T045131Z/core-1p1s-50k-128.csv
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#RunID,ClientID,MsgCount,MsgBytes,MsgsPerSec,BytesPerSec,DurationSecs
|
||||||
|
8e1ExxrZ9OtHTkwXsOfzes,S0,50000,6400000,747461,95675134.125326,0.066893
|
||||||
|
8e1ExxrZ9OtHTkwXsOfzes,P0,50000,6400000,791094,101260059.613379,0.063204
|
||||||
|
7
results/20260912T045131Z/core-1p1s-50k-128.txt
Normal file
7
results/20260912T045131Z/core-1p1s-50k-128.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
=== core-1p1s-50k-128 ===
|
||||||
|
|
||||||
|
NATS Pub/Sub stats: 1,200,836 msgs/sec ~ 146.59 MB/sec
|
||||||
|
Pub stats: 791,094 msgs/sec ~ 96.57 MB/sec
|
||||||
|
Sub stats: 747,461 msgs/sec ~ 91.24 MB/sec
|
||||||
|
|
||||||
|
Saved metric data in csv file /tmp/bench.csv
|
||||||
9
results/20260912T045131Z/core-4p4s-100k-128.csv
Normal file
9
results/20260912T045131Z/core-4p4s-100k-128.csv
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#RunID,ClientID,MsgCount,MsgBytes,MsgsPerSec,BytesPerSec,DurationSecs
|
||||||
|
d1csC8CbCBLYlUMAUVZxpb,S0,100000,12800000,377317,48296660.364795,0.265029
|
||||||
|
d1csC8CbCBLYlUMAUVZxpb,S1,100000,12800000,351445,44985056.104940,0.284539
|
||||||
|
d1csC8CbCBLYlUMAUVZxpb,S2,100000,12800000,372973,47740617.289389,0.268116
|
||||||
|
d1csC8CbCBLYlUMAUVZxpb,S3,100000,12800000,324908,41588310.877432,0.307779
|
||||||
|
d1csC8CbCBLYlUMAUVZxpb,P0,25000,3200000,524453,67129988.054428,0.047669
|
||||||
|
d1csC8CbCBLYlUMAUVZxpb,P1,25000,3200000,324337,41515233.366208,0.077080
|
||||||
|
d1csC8CbCBLYlUMAUVZxpb,P2,25000,3200000,103170,13205778.771206,0.242318
|
||||||
|
d1csC8CbCBLYlUMAUVZxpb,P3,25000,3200000,79260,10145297.784464,0.315417
|
||||||
|
17
results/20260912T045131Z/core-4p4s-100k-128.txt
Normal file
17
results/20260912T045131Z/core-4p4s-100k-128.txt
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
=== core-4p4s-100k-128 ===
|
||||||
|
|
||||||
|
NATS Pub/Sub stats: 1,521,256 msgs/sec ~ 185.70 MB/sec
|
||||||
|
Pub stats: 316,312 msgs/sec ~ 38.61 MB/sec
|
||||||
|
[1] 524,453 msgs/sec ~ 64.02 MB/sec (25000 msgs)
|
||||||
|
[2] 324,337 msgs/sec ~ 39.59 MB/sec (25000 msgs)
|
||||||
|
[3] 103,170 msgs/sec ~ 12.59 MB/sec (25000 msgs)
|
||||||
|
[4] 79,260 msgs/sec ~ 9.68 MB/sec (25000 msgs)
|
||||||
|
min 79,260 | avg 257,805 | max 524,453 | stddev 181,189 msgs
|
||||||
|
Sub stats: 1,299,634 msgs/sec ~ 158.65 MB/sec
|
||||||
|
[1] 377,317 msgs/sec ~ 46.06 MB/sec (100000 msgs)
|
||||||
|
[2] 351,445 msgs/sec ~ 42.90 MB/sec (100000 msgs)
|
||||||
|
[3] 372,973 msgs/sec ~ 45.53 MB/sec (100000 msgs)
|
||||||
|
[4] 324,908 msgs/sec ~ 39.66 MB/sec (100000 msgs)
|
||||||
|
min 324,908 | avg 356,660 | max 377,317 | stddev 20,785 msgs
|
||||||
|
|
||||||
|
Saved metric data in csv file /tmp/bench.csv
|
||||||
9
results/20260912T045131Z/core-4p4s-50k-1k.csv
Normal file
9
results/20260912T045131Z/core-4p4s-50k-1k.csv
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#RunID,ClientID,MsgCount,MsgBytes,MsgsPerSec,BytesPerSec,DurationSecs
|
||||||
|
LXVQ7kvd26BIwiMRRfbr7Z,S0,50000,51200000,169213,173274762.582948,0.295484
|
||||||
|
LXVQ7kvd26BIwiMRRfbr7Z,S1,50000,51200000,150273,153880103.181538,0.332727
|
||||||
|
LXVQ7kvd26BIwiMRRfbr7Z,S2,50000,51200000,142138,145550108.197459,0.351769
|
||||||
|
LXVQ7kvd26BIwiMRRfbr7Z,S3,50000,51200000,132134,135306220.651698,0.378401
|
||||||
|
LXVQ7kvd26BIwiMRRfbr7Z,P0,12500,12800000,176262,180492467.210335,0.070917
|
||||||
|
LXVQ7kvd26BIwiMRRfbr7Z,P1,12500,12800000,132211,135384883.941361,0.094545
|
||||||
|
LXVQ7kvd26BIwiMRRfbr7Z,P2,12500,12800000,70678,72375041.084851,0.176857
|
||||||
|
LXVQ7kvd26BIwiMRRfbr7Z,P3,12500,12800000,61936,63423297.033934,0.201819
|
||||||
|
17
results/20260912T045131Z/core-4p4s-50k-1k.txt
Normal file
17
results/20260912T045131Z/core-4p4s-50k-1k.txt
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
=== core-4p4s-50k-1k ===
|
||||||
|
|
||||||
|
NATS Pub/Sub stats: 630,460 msgs/sec ~ 615.68 MB/sec
|
||||||
|
Pub stats: 247,747 msgs/sec ~ 241.94 MB/sec
|
||||||
|
[1] 176,262 msgs/sec ~ 172.13 MB/sec (12500 msgs)
|
||||||
|
[2] 132,211 msgs/sec ~ 129.11 MB/sec (12500 msgs)
|
||||||
|
[3] 70,678 msgs/sec ~ 69.02 MB/sec (12500 msgs)
|
||||||
|
[4] 61,936 msgs/sec ~ 60.49 MB/sec (12500 msgs)
|
||||||
|
min 61,936 | avg 110,271 | max 176,262 | stddev 46,744 msgs
|
||||||
|
Sub stats: 510,216 msgs/sec ~ 498.26 MB/sec
|
||||||
|
[1] 169,213 msgs/sec ~ 165.25 MB/sec (50000 msgs)
|
||||||
|
[2] 150,273 msgs/sec ~ 146.75 MB/sec (50000 msgs)
|
||||||
|
[3] 142,138 msgs/sec ~ 138.81 MB/sec (50000 msgs)
|
||||||
|
[4] 132,134 msgs/sec ~ 129.04 MB/sec (50000 msgs)
|
||||||
|
min 132,134 | avg 148,439 | max 169,213 | stddev 13,605 msgs
|
||||||
|
|
||||||
|
Saved metric data in csv file /tmp/bench.csv
|
||||||
17
results/20260912T045131Z/core-8p8s-200k-128.csv
Normal file
17
results/20260912T045131Z/core-8p8s-200k-128.csv
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
#RunID,ClientID,MsgCount,MsgBytes,MsgsPerSec,BytesPerSec,DurationSecs
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,S0,200000,25600000,349350,44716843.071789,0.572491
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,S1,200000,25600000,248162,31764858.924451,0.805922
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,S2,200000,25600000,244206,31258460.045739,0.818978
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,S3,200000,25600000,243405,31155913.818220,0.821674
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,S4,200000,25600000,230550,29510438.641581,0.867490
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,S5,200000,25600000,231495,29631384.363172,0.863949
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,S6,200000,25600000,229528,29379679.692357,0.871351
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,S7,200000,25600000,223842,28651789.197519,0.893487
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,P0,25000,3200000,152536,19524693.902374,0.163895
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,P1,25000,3200000,84526,10819333.375159,0.295767
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,P2,25000,3200000,82017,10498223.303653,0.304813
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,P3,25000,3200000,57214,7323427.896669,0.436954
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,P4,25000,3200000,53879,6896566.453658,0.463999
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,P5,25000,3200000,51420,6581852.801766,0.486185
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,P6,25000,3200000,48572,6217303.262856,0.514693
|
||||||
|
HuvulruPjjaqnoHWeFCH2I,P7,25000,3200000,41744,5343333.685114,0.598877
|
||||||
|
25
results/20260912T045131Z/core-8p8s-200k-128.txt
Normal file
25
results/20260912T045131Z/core-8p8s-200k-128.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
=== core-8p8s-200k-128 ===
|
||||||
|
|
||||||
|
NATS Pub/Sub stats: 2,007,937 msgs/sec ~ 245.11 MB/sec
|
||||||
|
Pub stats: 333,957 msgs/sec ~ 40.77 MB/sec
|
||||||
|
[1] 152,536 msgs/sec ~ 18.62 MB/sec (25000 msgs)
|
||||||
|
[2] 84,526 msgs/sec ~ 10.32 MB/sec (25000 msgs)
|
||||||
|
[3] 82,017 msgs/sec ~ 10.01 MB/sec (25000 msgs)
|
||||||
|
[4] 57,214 msgs/sec ~ 6.98 MB/sec (25000 msgs)
|
||||||
|
[5] 53,879 msgs/sec ~ 6.58 MB/sec (25000 msgs)
|
||||||
|
[6] 51,420 msgs/sec ~ 6.28 MB/sec (25000 msgs)
|
||||||
|
[7] 48,572 msgs/sec ~ 5.93 MB/sec (25000 msgs)
|
||||||
|
[8] 41,744 msgs/sec ~ 5.10 MB/sec (25000 msgs)
|
||||||
|
min 41,744 | avg 71,488 | max 152,536 | stddev 33,867 msgs
|
||||||
|
Sub stats: 1,790,736 msgs/sec ~ 218.60 MB/sec
|
||||||
|
[1] 349,350 msgs/sec ~ 42.65 MB/sec (200000 msgs)
|
||||||
|
[2] 248,162 msgs/sec ~ 30.29 MB/sec (200000 msgs)
|
||||||
|
[3] 244,206 msgs/sec ~ 29.81 MB/sec (200000 msgs)
|
||||||
|
[4] 243,405 msgs/sec ~ 29.71 MB/sec (200000 msgs)
|
||||||
|
[5] 230,550 msgs/sec ~ 28.14 MB/sec (200000 msgs)
|
||||||
|
[6] 231,495 msgs/sec ~ 28.26 MB/sec (200000 msgs)
|
||||||
|
[7] 229,528 msgs/sec ~ 28.02 MB/sec (200000 msgs)
|
||||||
|
[8] 223,842 msgs/sec ~ 27.32 MB/sec (200000 msgs)
|
||||||
|
min 223,842 | avg 250,067 | max 349,350 | stddev 38,364 msgs
|
||||||
|
|
||||||
|
Saved metric data in csv file /tmp/bench.csv
|
||||||
2
results/20260912T045131Z/js-1p-20k-128-r3.csv
Normal file
2
results/20260912T045131Z/js-1p-20k-128-r3.csv
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#RunID,ClientID,MsgCount,MsgBytes,MsgsPerSec,BytesPerSec,DurationSecs
|
||||||
|
S0xQOJuOM4PlwAHoh5Bj7f,P0,40000,2560000,16155,2067883.858001,1.237981
|
||||||
|
5
results/20260912T045131Z/js-1p-20k-128-r3.txt
Normal file
5
results/20260912T045131Z/js-1p-20k-128-r3.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
=== js-1p-20k-128-r3 ===
|
||||||
|
|
||||||
|
Pub stats: 16,155 msgs/sec ~ 1.97 MB/sec
|
||||||
|
|
||||||
|
Saved metric data in csv file /tmp/bench.csv
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue