Snapshot of verae-nats-cluster (optimal NATS config study)

This commit is contained in:
George Lambert 2026-09-12 02:06:10 -04:00
commit 8639ca27ee
184 changed files with 10626 additions and 0 deletions

49
BENCH.md Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View file

@ -0,0 +1,10 @@
*
!.gitignore
!20260912T045131Z/
!20260912T045131Z/**
!20260912T051237Z/
!20260912T051237Z/**
!20260912T053120Z/
!20260912T053120Z/**
!20260912T055851Z/
!20260912T055851Z/**

View 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>/`.

View 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
1 #RunID ClientID MsgCount MsgBytes MsgsPerSec BytesPerSec DurationSecs
2 8e1ExxrZ9OtHTkwXsOfzes S0 50000 6400000 747461 95675134.125326 0.066893
3 8e1ExxrZ9OtHTkwXsOfzes P0 50000 6400000 791094 101260059.613379 0.063204

View 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

View 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
1 #RunID ClientID MsgCount MsgBytes MsgsPerSec BytesPerSec DurationSecs
2 d1csC8CbCBLYlUMAUVZxpb S0 100000 12800000 377317 48296660.364795 0.265029
3 d1csC8CbCBLYlUMAUVZxpb S1 100000 12800000 351445 44985056.104940 0.284539
4 d1csC8CbCBLYlUMAUVZxpb S2 100000 12800000 372973 47740617.289389 0.268116
5 d1csC8CbCBLYlUMAUVZxpb S3 100000 12800000 324908 41588310.877432 0.307779
6 d1csC8CbCBLYlUMAUVZxpb P0 25000 3200000 524453 67129988.054428 0.047669
7 d1csC8CbCBLYlUMAUVZxpb P1 25000 3200000 324337 41515233.366208 0.077080
8 d1csC8CbCBLYlUMAUVZxpb P2 25000 3200000 103170 13205778.771206 0.242318
9 d1csC8CbCBLYlUMAUVZxpb P3 25000 3200000 79260 10145297.784464 0.315417

View 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

View 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
1 #RunID ClientID MsgCount MsgBytes MsgsPerSec BytesPerSec DurationSecs
2 LXVQ7kvd26BIwiMRRfbr7Z S0 50000 51200000 169213 173274762.582948 0.295484
3 LXVQ7kvd26BIwiMRRfbr7Z S1 50000 51200000 150273 153880103.181538 0.332727
4 LXVQ7kvd26BIwiMRRfbr7Z S2 50000 51200000 142138 145550108.197459 0.351769
5 LXVQ7kvd26BIwiMRRfbr7Z S3 50000 51200000 132134 135306220.651698 0.378401
6 LXVQ7kvd26BIwiMRRfbr7Z P0 12500 12800000 176262 180492467.210335 0.070917
7 LXVQ7kvd26BIwiMRRfbr7Z P1 12500 12800000 132211 135384883.941361 0.094545
8 LXVQ7kvd26BIwiMRRfbr7Z P2 12500 12800000 70678 72375041.084851 0.176857
9 LXVQ7kvd26BIwiMRRfbr7Z P3 12500 12800000 61936 63423297.033934 0.201819

View 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

View 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
1 #RunID ClientID MsgCount MsgBytes MsgsPerSec BytesPerSec DurationSecs
2 HuvulruPjjaqnoHWeFCH2I S0 200000 25600000 349350 44716843.071789 0.572491
3 HuvulruPjjaqnoHWeFCH2I S1 200000 25600000 248162 31764858.924451 0.805922
4 HuvulruPjjaqnoHWeFCH2I S2 200000 25600000 244206 31258460.045739 0.818978
5 HuvulruPjjaqnoHWeFCH2I S3 200000 25600000 243405 31155913.818220 0.821674
6 HuvulruPjjaqnoHWeFCH2I S4 200000 25600000 230550 29510438.641581 0.867490
7 HuvulruPjjaqnoHWeFCH2I S5 200000 25600000 231495 29631384.363172 0.863949
8 HuvulruPjjaqnoHWeFCH2I S6 200000 25600000 229528 29379679.692357 0.871351
9 HuvulruPjjaqnoHWeFCH2I S7 200000 25600000 223842 28651789.197519 0.893487
10 HuvulruPjjaqnoHWeFCH2I P0 25000 3200000 152536 19524693.902374 0.163895
11 HuvulruPjjaqnoHWeFCH2I P1 25000 3200000 84526 10819333.375159 0.295767
12 HuvulruPjjaqnoHWeFCH2I P2 25000 3200000 82017 10498223.303653 0.304813
13 HuvulruPjjaqnoHWeFCH2I P3 25000 3200000 57214 7323427.896669 0.436954
14 HuvulruPjjaqnoHWeFCH2I P4 25000 3200000 53879 6896566.453658 0.463999
15 HuvulruPjjaqnoHWeFCH2I P5 25000 3200000 51420 6581852.801766 0.486185
16 HuvulruPjjaqnoHWeFCH2I P6 25000 3200000 48572 6217303.262856 0.514693
17 HuvulruPjjaqnoHWeFCH2I P7 25000 3200000 41744 5343333.685114 0.598877

View 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

View file

@ -0,0 +1,2 @@
#RunID,ClientID,MsgCount,MsgBytes,MsgsPerSec,BytesPerSec,DurationSecs
S0xQOJuOM4PlwAHoh5Bj7f,P0,40000,2560000,16155,2067883.858001,1.237981
1 #RunID ClientID MsgCount MsgBytes MsgsPerSec BytesPerSec DurationSecs
2 S0xQOJuOM4PlwAHoh5Bj7f P0 40000 2560000 16155 2067883.858001 1.237981

View 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