perftest

command
v0.0.0-...-ec15cf2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

README

Performance Test

go build ./cmd/perftest
./perftest -seed 12345 -image complement-synapse:latest -output synapse.json -name 'synapse 1.54'

This contains a binary which can run a series of tests on a homeserver implementation and uses docker stats to compare:

  • CPU usage
  • Memory usage
  • Network I/O
  • Block I/O

when performing these tests. Currently only 1 test is provided which:

  • Registers N users. Does not snapshot anything as cpu/memory/disk/time is intentionally high for things like bcrypt.
  • Creates M rooms concurrently. Tests how fast room creation is.
  • Joins X users to Y rooms according to a normal distribution. Tests how fast room joins are.
  • Sends messages randomly into these rooms. Tests how fast message sending is.
  • Syncs all users. Tests how fast initial syncs can be.
  • Changes the display name of all users.
  • Does an incremental sync on all users. Tests how fast notifier code is.

This is designed to simulate a small local-only homeserver with a few large rooms with lots of users and a few small rooms. The seed can be fixed to ensure deterministic results.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL