mix malachi.loadtest (malachi v0.8.13)

View Source

Multi-core Elixir load generator for a running Malachi server.

One BEAM process per connection, so N connections use every scheduler (unlike a single-threaded client). Connects to an already-running server over the binary wire protocol and drives load.

mix malachi.loadtest --scenario produce --connections 512 --batch 10 --duration 10

Options

  • --scenario produce | fetch | mixed | stream | user | acl (default produce)

  • --connections concurrent connections (128)
  • --duration measured seconds (10), --warmup seconds excluded (2)
  • --batch records per produce (10), --record-size bytes (256), --keys cardinality (1000)
  • --pipeline in-flight requests per connection, produce only (1 = closed-loop)
  • --max records per fetch/push (100), --window stream credit (100)
  • --prepopulate records to seed before fetch/stream/mixed (10000 for those)
  • --topic (auto), --topics distinct topics to fan out over (1); N > 1 spreads load across data-plane shards
  • --host (127.0.0.1); accepts a comma-separated list for a cluster (connections round-robin across the hosts), --port (4040)
  • auth: --user (admin) --pass (admin123), or --token, or --tls/--cacert/--cert/--key
  • --json emit the report as JSON