valkey + gitea + long build

This commit is contained in:
2026-05-17 21:01:07 +02:00
parent a06a3b58c0
commit 6516c46078
21 changed files with 3731 additions and 0 deletions
+135
View File
@@ -0,0 +1,135 @@
# Valkey HA chaos/soak config — spicy edition.
#
# 13 workers per container. With Zerops scaling to 10 replicas, that's
# ~130 concurrent connections × short intervals = serious load on
# HAProxy, Sentinel, and the Valkey master.
#
# Each $ZEROPS_Number replica gets its own DB and its own channel suffix
# (handled in main.go::applyZeropsOverrides), so the 10 containers don't
# step on each other's keyspace or pub/sub traffic.
#
# Topology:
# 6379 = read/write plaintext (master)
# 6380 = read/write TLS (master)
# 7000 = read-only plaintext (replicas via HAProxy)
# 7001 = read-only TLS (replicas via HAProxy)
#
# Roughly half the workers run over TLS so each ingress path gets
# exercised under load.
#
# Workload mix:
# - 1× readwriter (write + read-after-write on master)
# - 2× pure writer (separate TCP sessions — stress the master)
# - 1× master-side reader (does master serve GETs under load?)
# - 4× replica-side reader (stress replicas + verify replication catches up)
# - 2× publisher on two distinct channels (one slow, one tight)
# - 2× master-side subscriber (one per channel)
# - 1× replica-side subscriber (topology probe — should receive 0 msgs)
workers:
# ---- write path (3 connections) ----------------------------------------
- name: rw-main
role: readwriter
host: valkeyha.zerops
port: 6379
db: 0
interval: 20ms
- name: rw-burst-1
role: writer
host: valkeyha.zerops
port: 6380
tls: true
interval: 3ms
- name: rw-burst-2
role: writer
host: valkeyha.zerops
port: 6379
interval: 3ms
# ---- master-side reader (sanity that master also serves reads) ---------
- name: ro-master
role: reader
host: valkeyha.zerops
port: 6380
tls: true
interval: 5ms
# ---- replica-side reader fan-out (4 connections) -----------------------
- name: ro-1
role: reader
host: valkeyha.zerops
port: 7000
interval: 2ms
- name: ro-2
role: reader
host: valkeyha.zerops
port: 7001
tls: true
interval: 2ms
- name: ro-3
role: reader
host: valkeyha.zerops
port: 7000
interval: 3ms
- name: ro-4
role: reader
host: valkeyha.zerops
port: 7001
tls: true
interval: 3ms
# ---- pub/sub: two channels at different cadences -----------------------
- name: pub-bus
role: publisher
host: valkeyha.zerops
port: 6379
channel: "vk:chaos:bus"
interval: 5ms
- name: pub-fast
role: publisher
host: valkeyha.zerops
port: 6380
tls: true
channel: "vk:chaos:fast"
interval: 2ms
- name: sub-bus
role: subscriber
host: valkeyha.zerops
port: 6380
tls: true
channel: "vk:chaos:bus"
- name: sub-fast
role: subscriber
host: valkeyha.zerops
port: 6379
channel: "vk:chaos:fast"
# ---- memory bloater ----------------------------------------------------
# Writes 8 KB of random bytes to a fresh key every 10ms with NO TTL.
# ~800 KB/sec per container × 10 containers = ~8 MB/sec growth on the
# master. Watch used_memory climb. Keys land under vk:chaos:bloat:<seq>
# so they don't pollute the durability ledger. To reset, FLUSHDB the
# affected DB (or each per-replica DB if running in Zerops).
# - name: bloat-1
# role: bloater
# host: valkeyha.zerops
# port: 6379
# interval: 10ms
# valueBytes: 8192
# ---- topology probe ----------------------------------------------------
# Subscriber on the read-only VIP. Valkey 7.2 + Sentinel does not
# replicate pub/sub from master to replicas, so this should stay at
# msgs=0 the entire run. If it ever ticks up, replication semantics
# changed.
- name: sub-replica
role: subscriber
host: valkeyha.zerops
port: 7001
tls: true
channel: "vk:chaos:bus"