Back to Mattermost

Scale Mattermost up to 2000 users

docs/main/administration-guide/scale/scale-to-2000-users.mdx

11.10.03.7 KB
Original Source

import Inc0_lifetime_storage from './lifetime-storage.mdx'; import Inc1_estimated_storage_per_user_per_month from './estimated-storage-per-user-per-month.mdx'; import Inc2_additional_ha_considerations from './additional-ha-considerations.mdx';

<PlanAvailability slug="ent-plus" />

This page describes the Mattermost reference architecture designed for a minimum load of 100 concurrent users and up to 2000 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.

</Note>

Requirements

<style> .scale-requirements-table &#123; width: 100% !important; table-layout: fixed !important; border-collapse: collapse; font-size: 0.9em; overflow-wrap: break-word !important; word-wrap: break-word !important; &#125; .scale-requirements-table th, .scale-requirements-table td &#123; border: 1px solid #ddd; padding: 8px; vertical-align: top; word-wrap: break-word !important; overflow-wrap: break-word !important; &#125; .scale-requirements-table th &#123; background-color: #f8f9fa; font-weight: bold; text-align: left; &#125; .scale-requirements-table th:nth-child(1) &#123; width: 25%; &#125; .scale-requirements-table th:nth-child(2) &#123; width: 10%; &#125; .scale-requirements-table th:nth-child(3) &#123; width: 18%; &#125; .scale-requirements-table th:nth-child(4) &#123; width: 23%; &#125; .scale-requirements-table th:nth-child(5) &#123; width: 24%; &#125; /* Dark mode support */ body:not([data-custom-theme="light"]) .scale-requirements-table &#123; background-color: #2d3748; &#125; body:not([data-custom-theme="light"]) .scale-requirements-table th &#123; background-color: #4a5568 !important; color: #fff; border-color: #718096 !important; &#125; body:not([data-custom-theme="light"]) .scale-requirements-table td &#123; color: #e2e8f0; border-color: #718096 !important; &#125; /* Mobile responsiveness */ @media (max-width: 768px) &#123; .scale-requirements-table &#123; font-size: 0.8em; &#125; .scale-requirements-table th, .scale-requirements-table td &#123; padding: 6px 4px; &#125; &#125; </style> <table class="scale-requirements-table"> <thead> <tr> <th>Resource Type</th> <th>Nodes</th> <th>vCPU/ Memory (GiB)</th> <th>AWS Instance</th> <th>Azure Instance</th> </tr> </thead> <tbody> <tr> <td>Mattermost Application</td> <td>2</td> <td>2/4</td> <td>c7i.large</td> <td>F2s v2</td> </tr> <tr> <td>RDS Writer</td> <td>1</td> <td>2/16</td> <td>db.r7g.large</td> <td>E2as v6</td> </tr> <tr> <td>RDS Reader</td> <td>1</td> <td>2/16</td> <td>db.r7g.large</td> <td>E2as v6</td> </tr> <tr> <td>Elasticsearch Node</td> <td>2</td> <td>4/32</td> <td>r6g.xlarge.search</td> <td>E4ads v6</td> </tr> <tr> <td>Proxy</td> <td>1</td> <td>16/64</td> <td>m7i.4xlarge</td> <td>D16s v6</td> </tr> </tbody> </table>

Lifetime storage

<Inc0_lifetime_storage />

Estimated storage per user, per month

<Inc1_estimated_storage_per_user_per_month />

Example

A 2000-person team with medium usage (with a safety factor of 2x) would require between 120GB <sup>1</sup> and 600GB <sup>2</sup> of free space per annum.

<sup>1</sup> 2000 users * 5 MB * 12 months * 2x safety factor

<sup>2</sup> 2000 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

<Inc2_additional_ha_considerations />