Scale Mattermost up to 15000 users#
Available on Enterprise plans
self-hosted deployments
This page describes the Mattermost reference architecture designed for the load of up to 15000 concurrent users. Unsure which reference architecture to use? See the scaling for enterprise documentation for details.
High Availability: Required
Database Configuration: writer, reader
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 |
2 |
4/8 |
c7i.xlarge |
RDS Writer |
1 |
4/32 |
db.r7g.xlarge |
RDS Reader |
1 |
4/32 |
db.r7g.xlarge |
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 15000-person team with medium usage (with a safety factor of 2x) would require between 1.8TB 1 and 9TB 2 of free space per annum.
1 15000 users * 5 MB * 12 months * 2x safety factor
2 15000 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.