Scale Mattermost up to 100000 users#

plans-img Available on Enterprise plans

deployment-img self-hosted deployments

This page describes the Mattermost reference architecture designed for the load of up to 100000 concurrent users. Unsure which reference architecture to use? See the scaling for enterprise documentation for details.

  • High Availability: Required

  • Database Configuration: writer, multiple readers

Note

Usage of CPU, RAM, and storage space can vary significantly based on user behavior. These hardware recommendations are based on traditional deployments and may grow or shrink depending on how active your users are.

Requirements#

Resource Type

Nodes

vCPU/ Memory (GiB)

AWS Instance

Mattermost Application

6

16/32

c7i.4xlarge

RDS Writer

1

16/128

db.r7g.4xlarge

RDS Reader

5

16/128

db.r7g.4xlarge

Elasticsearch Node

2

4/32

r6g.xlarge.search

Proxy

1

16/64

m7i.4xlarge

Lifetime storage#

To forecast your own storage usage, begin with a Mattermost server approximately 600 MB to 800 MB in size including operating system and database, then add the multiplied product of:

  • Estimated storage per user per month (see below), multiplied by 12 months in a year

  • Estimated mean average number of users in a year

  • A 1-2x safety factor

Estimated storage per user, per month#

File usage per user varies significantly across industries. The below benchmarks are recommended:

  • Low usage teams (1-5 MB/user/month)

  • Primarily using text messages and links to communicate. Examples would include software development teams that heavily use web-based document creation and management tools, and therefore rarely upload files to the server.

  • Medium usage teams (5-25 MB/user/month)

  • Using a mix of text messages as well as shared documents and images to communicate. Examples might include business teams that may commonly drag and drop screenshots, PDFs and Microsoft Office documents into Mattermost for sharing and review.

  • High usage teams (25-100 MB/user/month)

  • Heaviest utilization comes from teams uploading a high number of large files into Mattermost on a regular basis. Examples include creative teams who share and store artwork and media with tags and commentary in a pipeline production process.

Example#

A 100000-person team with medium usage (with a safety factor of 2x) would require between 10.56TB 1 and 52.8TB 2 of free space per annum.

1 100000 users * 5 MB * 12 months * 2x safety factor

2 100000 users * 25 MB * 12 months * 2x safety factor

We strongly recommend that you review storage utilization at least quarterly to ensure adequate free space is available.

Additional considerations#

Elasticsearch provides enterprise-scale deployments with optimized search performance and prevents performance degradation and timeouts. Elasticsearch allows you to search large volumes of data quickly, in near real-time, by creating and managing an index of post data. Mattermost’s implementation uses Elasticsearch as a distributed, RESTful search engine supporting highly efficient database searches in a cluster environment. Visit the Mattermost Elasticsearch product documentation for deployment and configuration details.

Performance monitoring support enables a Mattermost server to track system health for large Enterprise deployments through integrations with Prometheus and Grafana. These integrations support data collection from several Mattermost servers, which is particularly useful if you’re running Mattermost in high availability mode. Once you’re tracking system health, you can set up performance alerts on your Grafana dashboard. Visit the Mattermost Performance Monitoring product documentation for installation details.