|
| 1 | +Scale Mattermost up to 200000 users |
| 2 | +==================================== |
| 3 | + |
| 4 | +.. include:: ../_static/badges/ent-selfhosted.rst |
| 5 | + :start-after: :nosearch: |
| 6 | + |
| 7 | +This page describes the Mattermost reference architecture designed for the load of up to 200000 concurrent users. Unsure which reference architecture to use? See the :doc:`scaling for enterprise </scale/scaling-for-enterprise>` documentation for details. |
| 8 | + |
| 9 | +- **High Availability**: Required |
| 10 | +- **Database Configuration**: writer, multiple readers |
| 11 | + |
| 12 | +.. note:: |
| 13 | + - 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. |
| 14 | + - From Mattermost v10.4, Mattermost Enterprise customers can configure `Redis <https://redis.io/>`_ (Remote Dictionary Server) as an alternative cache backend. Using Redis can help ensure that Mattermost remains performant and efficient, even under heavy usage. See the :ref:`Redis cache backend <configure/environment-configuration-settings:redis cache backend>` configuration settings documentation for details. |
| 15 | + - While the following Elasticsearch specifications may be more than sufficient for some use cases, we have not extensively tested configurations with lower resource allocations for this user scale. If cost optimization is a priority, admins may choose to experiment with smaller configurations, but we recommend starting with the tested specifications to ensure system stability and performance. Keep in mind that under-provisioning can lead to degraded user experience and additional troubleshooting effort. |
| 16 | + |
| 17 | +Requirements |
| 18 | +------------ |
| 19 | + |
| 20 | ++------------------------+-----------+----------------+-----------------------+ |
| 21 | +| **Resource Type** | **Nodes** | **vCPU/ | **AWS Instance** | |
| 22 | +| | | Memory (GiB)** | | |
| 23 | ++========================+===========+================+=======================+ |
| 24 | +| Mattermost Application | 14 | 16/32 | c7i.4xlarge | |
| 25 | ++------------------------+-----------+----------------+-----------------------+ |
| 26 | +| RDS Writer | 1 | 16/128 | db.r7g.4xlarge | |
| 27 | ++------------------------+-----------+----------------+-----------------------+ |
| 28 | +| RDS Reader | 6 | 16/128 | db.r7g.4xlarge | |
| 29 | ++------------------------+-----------+----------------+-----------------------+ |
| 30 | +| Elasticsearch cluster | 4 | 8/64 | r6g.2xlarge.search | |
| 31 | ++------------------------+-----------+----------------+-----------------------+ |
| 32 | +| Proxy | 4 | 32/128 | m6in.8xlarge | |
| 33 | ++------------------------+-----------+----------------+-----------------------+ |
| 34 | +| Redis | 1 | 8/32 | cache.m7g.2xlarge | |
| 35 | ++------------------------+-----------+----------------+-----------------------+ |
| 36 | + |
| 37 | +Lifetime storage |
| 38 | +---------------- |
| 39 | + |
| 40 | +.. include:: ../scale/lifetime-storage.rst |
| 41 | + :start-after: :nosearch: |
| 42 | + |
| 43 | +Estimated storage per user, per month |
| 44 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 45 | + |
| 46 | +.. include:: ../scale/estimated-storage-per-user-per-month.rst |
| 47 | + :start-after: :nosearch: |
| 48 | + |
| 49 | +Example |
| 50 | +~~~~~~~ |
| 51 | + |
| 52 | +A 200000-person team with medium usage (with a safety factor of 2x) would require between 21.12TB :sup:`1` and 105.6TB :sup:`2` of free space per annum. |
| 53 | + |
| 54 | +:sup:`1` 200000 users * 5 MB * 12 months * 2x safety factor |
| 55 | + |
| 56 | +:sup:`2` 200000 users * 25 MB * 12 months * 2x safety factor |
| 57 | + |
| 58 | +We strongly recommend that you review storage utilization at least quarterly to ensure adequate free space is available. |
| 59 | + |
| 60 | +Additional considerations |
| 61 | +------------------------- |
| 62 | + |
| 63 | +.. include:: ../scale/additional-ha-considerations.rst |
| 64 | + :start-after: :nosearch: |
0 commit comments