A set of tools written in Go for profiling Mattermost under heavy load.
Install the binaries:
go get github.com/mattermost/mattermost-load-test/cmd/ltops
go get github.com/mattermost/mattermost-load-test/cmd/loadtest
go get github.com/mattermost/mattermost-load-test/cmd/ltparse
Run ltops help
to verify the installation and get started with the available commands.
Various profiling strategies are currently supported:
- AWS cluster using Terraform (recommended)
- Kubernetes cluster
- Manual loadtesting against an existing cluster
The best way to profile the mattermost-server is to set up an AWS cluster using Terraform using the ltops
tool. Use this setup to qualify the performance of a given Mattermost release, or measure the effect of an experimental change to the mattermost-server. Note that while other cloud providers are on the roadmap, only AWS is supported at present.
Feel free to experiment with profiling a Mattermost Kubernetes cluster using the ltops
tool, but recognize that this is still in beta. There may also be some tooling differences between Kubernetes and the more stable Terraform setup.
The loadtest
tool may be run manually against an existing cluster, regardless of how that cluster is deployed. Note that care is required to tune an arbitrary cluster to perform well under load. This method of profiling is also suitable for basic localhost
profiling, especially when developing against mattermost-load-test itself.
Follow the Mattermost developer setup instructions, then clone the repository and build for yourself:
go get github.com/mattermost/mattermost-load-test
cd $(go env GOPATH)/src/mattermost/mattermost-load-test
make install