From ac65f3599dcc60ba4bc1cb3b8ad2aa3fc9322732 Mon Sep 17 00:00:00 2001 From: "Carrie Warner (Mattermost)" <74422101+cwarnermm@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:13:51 -0400 Subject: [PATCH] Added v2 reference architecture details (#7397) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added v2 ref arch data * Rolled back changes to v1 guidance; added CPU/MEM for all * Update source/scale/scaling-for-enterprise.rst Co-authored-by: Alejandro García Montoro * Incorporated feedback, removed v1 refs & added page redirects * Corrected v1 page redirects --------- Co-authored-by: Alejandro García Montoro --- source/conf.py | 12 ++++ source/deploy/postgres-migration.rst | 2 +- source/guides/scale-mattermost.rst | 24 ++++---- source/scale/scale-to-1000-users.rst | 55 ----------------- source/scale/scale-to-100000-users.rst | 60 +++++++++++++++++++ source/scale/scale-to-15000-users.rst | 27 +++++---- ...o-100-users.rst => scale-to-200-users.rst} | 31 ++++++---- source/scale/scale-to-2000-users.rst | 60 +++++++++++++++++++ source/scale/scale-to-25000-users.rst | 55 ----------------- source/scale/scale-to-30000-users.rst | 60 +++++++++++++++++++ source/scale/scale-to-50000-users.rst | 25 ++++---- source/scale/scale-to-70000-users.rst | 55 ----------------- source/scale/scale-to-79000-users.rst | 55 ----------------- source/scale/scale-to-80000-users.rst | 60 +++++++++++++++++++ source/scale/scale-to-88000-users.rst | 55 ----------------- source/scale/scale-to-90000-users.rst | 60 +++++++++++++++++++ source/scale/scaling-for-enterprise.rst | 24 ++++---- 17 files changed, 387 insertions(+), 333 deletions(-) delete mode 100644 source/scale/scale-to-1000-users.rst create mode 100644 source/scale/scale-to-100000-users.rst rename source/scale/{scale-to-100-users.rst => scale-to-200-users.rst} (50%) create mode 100644 source/scale/scale-to-2000-users.rst delete mode 100644 source/scale/scale-to-25000-users.rst create mode 100644 source/scale/scale-to-30000-users.rst delete mode 100644 source/scale/scale-to-70000-users.rst delete mode 100644 source/scale/scale-to-79000-users.rst create mode 100644 source/scale/scale-to-80000-users.rst delete mode 100644 source/scale/scale-to-88000-users.rst create mode 100644 source/scale/scale-to-90000-users.rst diff --git a/source/conf.py b/source/conf.py index ce2ff913ddf..660f7a657d2 100644 --- a/source/conf.py +++ b/source/conf.py @@ -3347,6 +3347,18 @@ def setup(_: Sphinx): "https://docs.mattermost.com/scale/performance-monitoring-metrics.html#why-are-chart-labels-difficult-to-distinguish", "scale/high-availability-cluster.html": "https://docs.mattermost.com/scale/high-availability-cluster-based-deployment.html", +"scale/scale-to-100-users.html": + "https://docs.mattermost.com/scale/scale-to-200-users.html", +"scale/scale-to-1000-users.html": + "https://docs.mattermost.com/scale/scale-to-2000-users.html", +"scale/scale-to-25000-users.html": + "https://docs.mattermost.com/scale/scale-to-30000-users.html", +"scale/scale-to-70000-users.html": + "https://docs.mattermost.com/scale/scale-to-80000-users.html", +"scale/scale-to-79000-users.html": + "https://docs.mattermost.com/scale/scale-to-80000-users.html", +"scale/scale-to-88000-users.html": + "https://docs.mattermost.com/scale/scale-to-90000-users.html", # Upgrade redirects "upgrade/upgrading-mattermost-server.html#prepare-to-upgrade-to-the-latest-version": diff --git a/source/deploy/postgres-migration.rst b/source/deploy/postgres-migration.rst index ab4845e8233..53f86014a15 100644 --- a/source/deploy/postgres-migration.rst +++ b/source/deploy/postgres-migration.rst @@ -48,7 +48,7 @@ Troubleshooting --------------- Unsupported authentication for MySQL -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you are facing an error due to authentication with MySQL v8, it may be related to a `known issue `_ with pgloader. The fix is to set the default authentication method to ``mysql_native_password`` in your MySQL configuration. To do so, add the ``default-authentication-plugin=mysql_native_password`` value to your ``mysql.cnf`` file. Also, do not forget to update your user to use this authentication method. diff --git a/source/guides/scale-mattermost.rst b/source/guides/scale-mattermost.rst index f4f89d3582b..63989dcca99 100644 --- a/source/guides/scale-mattermost.rst +++ b/source/guides/scale-mattermost.rst @@ -7,14 +7,14 @@ Scale Mattermost :titlesonly: Scale for Enterprise - Scale up to 100 users - Scale up to 1000 users + Scale up to 200 users + Scale up to 2000 users Scale up to 15000 users - Scale up to 25000 users + Scale up to 30000 users Scale up to 50000 users - Scale up to 70000 users - Scale up to 79000 users - Scale up to 88000 users + Scale up to 80000 users + Scale up to 90000 users + Scale up to 100000 users High availability cluster-based deployment Elasticsearch Collect performance metrics @@ -27,14 +27,14 @@ Scale and monitor your Mattermost deployment. * :doc:`Scale for Enterprise ` - See the recommended reference architectures for your self-hosted Mattermost deployment. - * :doc:`Scale up to 100 users ` - Learn how to scale Mattermost to up to 100 users. - * :doc:`Scale up to 1000 users ` - Learn how to scale Mattermost to up to 1000 users. + * :doc:`Scale up to 200 users ` - Learn how to scale Mattermost to up to 200 users. + * :doc:`Scale up to 2000 users ` - Learn how to scale Mattermost to up to 2000 users. * :doc:`Scale up to 15000 users ` - Learn how to scale Mattermost to up to 15000 users. - * :doc:`Scale up to 25000 users ` - Learn how to scale Mattermost to up to 25000 users. + * :doc:`Scale up to 30000 users ` - Learn how to scale Mattermost to up to 30000 users. * :doc:`Scale up to 50000 users ` - Learn how to scale Mattermost to up to 50000 users. - * :doc:`Scale up to 70000 users ` - Learn how to scale Mattermost to up to 70000 users. - * :doc:`Scale up to 79000 users ` - Learn how to scale Mattermost to up to 79000 users. - * :doc:`Scale up to 88000 users ` - Learn how to scale Mattermost to up to 88000 users. + * :doc:`Scale up to 80000 users ` - Learn how to scale Mattermost to up to 80000 users. + * :doc:`Scale up to 90000 users ` - Learn how to scale Mattermost to up to 90000 users. + * :doc:`Scale up to 100000 users ` - Learn how to scale Mattermost to up to 100000 users. * :doc:`High availability cluster-based deployment ` - Learn how to run Mattermost at scale with all the config tweaks needed. * :doc:`Elasticsearch ` - Enhance search performance with Elasticsearch. diff --git a/source/scale/scale-to-1000-users.rst b/source/scale/scale-to-1000-users.rst deleted file mode 100644 index 38d4a8be385..00000000000 --- a/source/scale/scale-to-1000-users.rst +++ /dev/null @@ -1,55 +0,0 @@ -Scale Mattermost up to 1000 users -================================= - -.. include:: ../_static/badges/ent-only.rst - :start-after: :nosearch: - -This page describes the Mattermost reference architecture designed for a minimum load of 100 concurrent users and up to 1000 concurrent users. Unsure which reference architecture to use? See the :doc:`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** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** | -+========================+==========+==================+================+==================+ -| Mattermost Application | 2 | 4 | 2 | c6i.large | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Writer | 2 | 16 | 1 | db.r6g.large | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Reader | 2 | 16 | 1 | db.r6g.large | -+------------------------+----------+------------------+----------------+------------------+ - -Lifetime storage ----------------- - -.. include:: ../scale/lifetime-storage.rst - :start-after: :nosearch: - -Estimated storage per user, per month -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../scale/estimated-storage-per-user-per-month.rst - :start-after: :nosearch: - -Example -~~~~~~~ - -A 1000-person team with medium usage (with a safety factor of 2x) would require between 120GB :sup:`1` and 600GB :sup:`2` of free space per annum. - -:sup:`1` 1000 users * 5 MB * 12 months * 2x safety factor - -:sup:`2` 1000 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 -------------------------- - -.. include:: ../scale/additional-ha-considerations.rst - :start-after: :nosearch: \ No newline at end of file diff --git a/source/scale/scale-to-100000-users.rst b/source/scale/scale-to-100000-users.rst new file mode 100644 index 00000000000..8ab9d7c1568 --- /dev/null +++ b/source/scale/scale-to-100000-users.rst @@ -0,0 +1,60 @@ +Scale Mattermost up to 100000 users +==================================== + +.. include:: ../_static/badges/ent-selfhosted.rst + :start-after: :nosearch: + +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 :doc:`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/ | **AWS Instance** | +| | | Memory (GiB)** | | ++========================+===========+================+===================+ +| 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 +---------------- + +.. include:: ../scale/lifetime-storage.rst + :start-after: :nosearch: + +Estimated storage per user, per month +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../scale/estimated-storage-per-user-per-month.rst + :start-after: :nosearch: + +Example +~~~~~~~ + +A 100000-person team with medium usage (with a safety factor of 2x) would require between 10.56TB :sup:`1` and 52.8TB :sup:`2` of free space per annum. + +:sup:`1` 100000 users * 5 MB * 12 months * 2x safety factor + +:sup:`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 +------------------------- + +.. include:: ../scale/additional-ha-considerations.rst + :start-after: :nosearch: diff --git a/source/scale/scale-to-15000-users.rst b/source/scale/scale-to-15000-users.rst index c76824170bc..8bc353aaf4f 100644 --- a/source/scale/scale-to-15000-users.rst +++ b/source/scale/scale-to-15000-users.rst @@ -1,13 +1,13 @@ Scale Mattermost up to 15000 users ================================== -.. include:: ../_static/badges/ent-only.rst +.. include:: ../_static/badges/ent-selfhosted.rst :start-after: :nosearch: 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 :doc:`scaling for enterprise ` documentation for details. - **High Availability**: Required -- **Database Configuration**: writer, multiple readers +- **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. @@ -15,15 +15,20 @@ This page describes the Mattermost reference architecture designed for the load Requirements ------------ -+------------------------+----------+------------------+----------------+------------------+ -| **Resource Type** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** | -+========================+==========+==================+================+==================+ -| Mattermost Application | 4 | 8 | 2 | c6i.xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Writer | 4 | 32 | 1 | db.r6g.xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Reader | 4 | 32 | 1 | db.r6g.xlarge | -+------------------------+----------+------------------+----------------+------------------+ ++------------------------+-----------+----------------+-------------------+ +| **Resource Type** | **Nodes** | **vCPU/ | **AWS Instance** | +| | | Memory (GiB)** | | ++========================+===========+================+===================+ +| 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 ---------------- diff --git a/source/scale/scale-to-100-users.rst b/source/scale/scale-to-200-users.rst similarity index 50% rename from source/scale/scale-to-100-users.rst rename to source/scale/scale-to-200-users.rst index 5c12d2eae4e..adaac48a889 100644 --- a/source/scale/scale-to-100-users.rst +++ b/source/scale/scale-to-200-users.rst @@ -1,7 +1,7 @@ -Scale Mattermost up to 100 users +Scale Mattermost up to 200 users ================================ -This page describes the Mattermost reference architecture designed for the load of up to 100 concurrent users. Unsure which reference architecture to use? See the :doc:`scaling for enterprise ` documentation for details. +This page describes the Mattermost reference architecture designed for the load of up to 200 concurrent users. Unsure which reference architecture to use? See the :doc:`scaling for enterprise ` documentation for details. - **High Availability**: Not required - **Database Configuration**: Single @@ -12,13 +12,20 @@ This page describes the Mattermost reference architecture designed for the load Requirements ------------ -+------------------------+----------+------------------+----------------+------------------+ -| **Resource Type** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** | -+========================+==========+==================+================+==================+ -| Mattermost Application | 2 | 4 | 1 | c6i.large | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Writer | 2 | 16 | 1 | db.r6g.large | -+------------------------+----------+------------------+----------------+------------------+ ++------------------------+-----------+----------------+-------------------+ +| **Resource Type** | **Nodes** | **vCPU/ | **AWS Instance** | +| | | Memory (GiB)** | | ++========================+===========+================+===================+ +| Mattermost Application | 1 | 2/4 | c7i.large | ++------------------------+-----------+----------------+-------------------+ +| RDS Writer | 1 | 2/16 | db.r7g.large | ++------------------------+-----------+----------------+-------------------+ +| RDS Reader | 0 | 2/16 | db.r7g.large | ++------------------------+-----------+----------------+-------------------+ +| Elasticsearch Node | 0 | 4/32 | r6g.xlarge.search | ++------------------------+-----------+----------------+-------------------+ +| Proxy | 1 | 16/64 | m7i.4xlarge | ++------------------------+-----------+----------------+-------------------+ Lifetime storage ---------------- @@ -35,11 +42,11 @@ Estimated storage per user, per month Example ~~~~~~~ -A 100-person team with medium usage (with a safety factor of 2x) would require between 12GB :sup:`1` and 60GB :sup:`2` of free space per annum. +A 200-person team with medium usage (with a safety factor of 2x) would require between 12GB :sup:`1` and 60GB :sup:`2` of free space per annum. -:sup:`1` 100 users * 5 MB * 12 months * 2x safety factor +:sup:`1` 200 users * 5 MB * 12 months * 2x safety factor -:sup:`2` 100 users * 25 MB * 12 months * 2x safety factor +:sup:`2` 200 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. diff --git a/source/scale/scale-to-2000-users.rst b/source/scale/scale-to-2000-users.rst new file mode 100644 index 00000000000..9c024136b79 --- /dev/null +++ b/source/scale/scale-to-2000-users.rst @@ -0,0 +1,60 @@ +Scale Mattermost up to 2000 users +================================= + +.. include:: ../_static/badges/ent-selfhosted.rst + :start-after: :nosearch: + +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 :doc:`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/ | **AWS Instance** | +| | | Memory (GiB)** | | ++========================+===========+================+===================+ +| Mattermost Application | 2 | 2/4 | c7i.large | ++------------------------+-----------+----------------+-------------------+ +| RDS Writer | 1 | 2/16 | db.r7g.large | ++------------------------+-----------+----------------+-------------------+ +| RDS Reader | 1 | 2/16 | db.r7g.large | ++------------------------+-----------+----------------+-------------------+ +| Elasticsearch Node | 2 | 4/32 | r6g.xlarge.search | ++------------------------+-----------+----------------+-------------------+ +| Proxy | 1 | 16/64 | m7i.4xlarge | ++------------------------+-----------+----------------+-------------------+ + +Lifetime storage +---------------- + +.. include:: ../scale/lifetime-storage.rst + :start-after: :nosearch: + +Estimated storage per user, per month +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../scale/estimated-storage-per-user-per-month.rst + :start-after: :nosearch: + +Example +~~~~~~~ + +A 2000-person team with medium usage (with a safety factor of 2x) would require between 120GB :sup:`1` and 600GB :sup:`2` of free space per annum. + +:sup:`1` 2000 users * 5 MB * 12 months * 2x safety factor + +:sup:`2` 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 +------------------------- + +.. include:: ../scale/additional-ha-considerations.rst + :start-after: :nosearch: \ No newline at end of file diff --git a/source/scale/scale-to-25000-users.rst b/source/scale/scale-to-25000-users.rst deleted file mode 100644 index f873af688a9..00000000000 --- a/source/scale/scale-to-25000-users.rst +++ /dev/null @@ -1,55 +0,0 @@ -Scale Mattermost up to 25000 users -================================== - -.. include:: ../_static/badges/ent-only.rst - :start-after: :nosearch: - -This page describes the Mattermost reference architecture designed for the load of up to 25000 concurrent users. Unsure which reference architecture to use? See the :doc:`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** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** | -+========================+==========+==================+================+==================+ -| Mattermost Application | 8 | 16 | 2 | c6i.2xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Writer | 8 | 64 | 1 | db.r6g.2xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Reader | 8 | 64 | 1 | db.r6g.2xlarge | -+------------------------+----------+------------------+----------------+------------------+ - -Lifetime storage ----------------- - -.. include:: ../scale/lifetime-storage.rst - :start-after: :nosearch: - -Estimated storage per user, per month -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../scale/estimated-storage-per-user-per-month.rst - :start-after: :nosearch: - -Example -~~~~~~~ - -A 25000-person team with medium usage (with a safety factor of 2x) would require between 3TB :sup:`1` and 15TB :sup:`2` of free space per annum. - -:sup:`1` 25000 users * 5 MB * 12 months * 2x safety factor - -:sup:`2` 25000 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 -------------------------- - -.. include:: ../scale/additional-ha-considerations.rst - :start-after: :nosearch: \ No newline at end of file diff --git a/source/scale/scale-to-30000-users.rst b/source/scale/scale-to-30000-users.rst new file mode 100644 index 00000000000..8332988c5e4 --- /dev/null +++ b/source/scale/scale-to-30000-users.rst @@ -0,0 +1,60 @@ +Scale Mattermost up to 30000 users +================================== + +.. include:: ../_static/badges/ent-selfhosted.rst + :start-after: :nosearch: + +This page describes the Mattermost reference architecture designed for the load of up to 30000 concurrent users. Unsure which reference architecture to use? See the :doc:`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/ | **AWS Instance** | +| | | Memory (GiB)** | | ++========================+===========+================+===================+ +| Mattermost Application | 2 | 8/16 | c7i.2xlarge | ++------------------------+-----------+----------------+-------------------+ +| RDS Writer | 1 | 8/64 | db.r7g.2xlarge | ++------------------------+-----------+----------------+-------------------+ +| RDS Reader | 1 | 8/64 | db.r7g.2xlarge | ++------------------------+-----------+----------------+-------------------+ +| Elasticsearch Node | 2 | 4/32 | r6g.xlarge.search | ++------------------------+-----------+----------------+-------------------+ +| Proxy | 1 | 16/64 | m7i.4xlarge | ++------------------------+-----------+----------------+-------------------+ + +Lifetime storage +---------------- + +.. include:: ../scale/lifetime-storage.rst + :start-after: :nosearch: + +Estimated storage per user, per month +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../scale/estimated-storage-per-user-per-month.rst + :start-after: :nosearch: + +Example +~~~~~~~ + +A 30000-person team with medium usage (with a safety factor of 2x) would require between 3TB :sup:`1` and 15TB :sup:`2` of free space per annum. + +:sup:`1` 30000 users * 5 MB * 12 months * 2x safety factor + +:sup:`2` 30000 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 +------------------------- + +.. include:: ../scale/additional-ha-considerations.rst + :start-after: :nosearch: \ No newline at end of file diff --git a/source/scale/scale-to-50000-users.rst b/source/scale/scale-to-50000-users.rst index 52dc99798c0..3c9fc62fa64 100644 --- a/source/scale/scale-to-50000-users.rst +++ b/source/scale/scale-to-50000-users.rst @@ -1,7 +1,7 @@ Scale Mattermost up to 50000 users ================================== -.. include:: ../_static/badges/ent-only.rst +.. include:: ../_static/badges/ent-selfhosted.rst :start-after: :nosearch: This page describes the Mattermost reference architecture designed for the load of up to 50000 concurrent users. Unsure which reference architecture to use? See the :doc:`scaling for enterprise ` documentation for details. @@ -15,15 +15,20 @@ This page describes the Mattermost reference architecture designed for the load Requirements ------------ -+------------------------+----------+------------------+----------------+------------------+ -| **Resource Type** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** | -+========================+==========+==================+================+==================+ -| Mattermost Application | 8 | 16 | 5 | c6i.2xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Writer | 8 | 64 | 1 | db.r6g.2xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Reader | 8 | 64 | 4 | db.r6g.2xlarge | -+------------------------+----------+------------------+----------------+------------------+ ++------------------------+-----------+----------------+-------------------+ +| **Resource Type** | **Nodes** | **vCPU/ | **AWS Instance** | +| | | Memory (GiB)** | | ++========================+===========+================+===================+ +| Mattermost Application | 5 | 8/16 | c7i.2xlarge | ++------------------------+-----------+----------------+-------------------+ +| RDS Writer | 1 | 8/64 | db.r7g.2xlarge | ++------------------------+-----------+----------------+-------------------+ +| RDS Reader | 4 | 8/64 | db.r7g.2xlarge | ++------------------------+-----------+----------------+-------------------+ +| Elasticsearch Node | 2 | 4/32 | r6g.xlarge.search | ++------------------------+-----------+----------------+-------------------+ +| Proxy | 1 | 16/64 | m7i.4xlarge | ++------------------------+-----------+----------------+-------------------+ Lifetime storage ---------------- diff --git a/source/scale/scale-to-70000-users.rst b/source/scale/scale-to-70000-users.rst deleted file mode 100644 index e005c66875b..00000000000 --- a/source/scale/scale-to-70000-users.rst +++ /dev/null @@ -1,55 +0,0 @@ -Scale Mattermost up to 70000 users -================================== - -.. include:: ../_static/badges/ent-only.rst - :start-after: :nosearch: - -This page describes the Mattermost reference architecture designed for the load of up to 70000 concurrent users. Unsure which reference architecture to use? See the :doc:`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** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** | -+========================+==========+==================+================+==================+ -| Mattermost Application | 16 | 32 | 4 | c6i.4xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Writer | 16 | 128 | 1 | db.r6g.4xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Reader | 16 | 128 | 4 | db.r6g.4xlarge | -+------------------------+----------+------------------+----------------+------------------+ - -Lifetime storage ----------------- - -.. include:: ../scale/lifetime-storage.rst - :start-after: :nosearch: - -Estimated storage per user, per month -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../scale/estimated-storage-per-user-per-month.rst - :start-after: :nosearch: - -Example -~~~~~~~ - -A 70000-person team with medium usage (with a safety factor of 2x) would require between 8.4TB :sup:`1` and 42TB :sup:`2` of free space per annum. - -:sup:`1` 70000 users * 5 MB * 12 months * 2x safety factor - -:sup:`2` 70000 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 -------------------------- - -.. include:: ../scale/additional-ha-considerations.rst - :start-after: :nosearch: \ No newline at end of file diff --git a/source/scale/scale-to-79000-users.rst b/source/scale/scale-to-79000-users.rst deleted file mode 100644 index 68c5af0c6d5..00000000000 --- a/source/scale/scale-to-79000-users.rst +++ /dev/null @@ -1,55 +0,0 @@ -Scale Mattermost up to 79000 users -================================== - -.. include:: ../_static/badges/ent-only.rst - :start-after: :nosearch: - -This page describes the Mattermost reference architecture designed for the load of up to 79000 concurrent users. Unsure which reference architecture to use? See the :doc:`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** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** | -+========================+==========+==================+================+==================+ -| Mattermost Application | 16 | 32 | 5 | c6i.4xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Writer | 16 | 128 | 1 | db.r6g.4xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Reader | 16 | 128 | 4 | db.r6g.4xlarge | -+------------------------+----------+------------------+----------------+------------------+ - -Lifetime storage ----------------- - -.. include:: ../scale/lifetime-storage.rst - :start-after: :nosearch: - -Estimated storage per user, per month -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../scale/estimated-storage-per-user-per-month.rst - :start-after: :nosearch: - -Example -~~~~~~~ - -A 79000-person team with medium usage (with a safety factor of 2x) would require between 9.5TB :sup:`1` and 47.4TB :sup:`2` of free space per annum. - -:sup:`1` 79000 users * 5 MB * 12 months * 2x safety factor - -:sup:`2` 79000 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 -------------------------- - -.. include:: ../scale/additional-ha-considerations.rst - :start-after: :nosearch: \ No newline at end of file diff --git a/source/scale/scale-to-80000-users.rst b/source/scale/scale-to-80000-users.rst new file mode 100644 index 00000000000..3420865ff71 --- /dev/null +++ b/source/scale/scale-to-80000-users.rst @@ -0,0 +1,60 @@ +Scale Mattermost up to 80000 users +================================== + +.. include:: ../_static/badges/ent-selfhosted.rst + :start-after: :nosearch: + +This page describes the Mattermost reference architecture designed for the load of up to 80000 concurrent users. Unsure which reference architecture to use? See the :doc:`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/ | **AWS Instance** | +| | | Memory (GiB)** | | ++========================+===========+================+===================+ +| Mattermost Application | 4 | 16/32 | c7i.4xlarge | ++------------------------+-----------+----------------+-------------------+ +| RDS Writer | 1 | 16/128 | db.r7g.4xlarge | ++------------------------+-----------+----------------+-------------------+ +| RDS Reader | 3 | 16/128 | db.r7g.4xlarge | ++------------------------+-----------+----------------+-------------------+ +| Elasticsearch Node | 2 | 4/32 | r6g.xlarge.search | ++------------------------+-----------+----------------+-------------------+ +| Proxy | 1 | 16/64 | m7i.4xlarge | ++------------------------+-----------+----------------+-------------------+ + +Lifetime storage +---------------- + +.. include:: ../scale/lifetime-storage.rst + :start-after: :nosearch: + +Estimated storage per user, per month +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../scale/estimated-storage-per-user-per-month.rst + :start-after: :nosearch: + +Example +~~~~~~~ + +A 80000-person team with medium usage (with a safety factor of 2x) would require between 10.56TB :sup:`1` and 52.8TB :sup:`2` of free space per annum. + +:sup:`1` 80000 users * 5 MB * 12 months * 2x safety factor + +:sup:`2` 80000 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 +------------------------- + +.. include:: ../scale/additional-ha-considerations.rst + :start-after: :nosearch: diff --git a/source/scale/scale-to-88000-users.rst b/source/scale/scale-to-88000-users.rst deleted file mode 100644 index 1108463d58e..00000000000 --- a/source/scale/scale-to-88000-users.rst +++ /dev/null @@ -1,55 +0,0 @@ -Scale Mattermost up to 88000 users -================================== - -.. include:: ../_static/badges/ent-only.rst - :start-after: :nosearch: - -This page describes the Mattermost reference architecture designed for the load of up to 88000 concurrent users. Unsure which reference architecture to use? See the :doc:`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** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** | -+========================+==========+==================+================+==================+ -| Mattermost Application | 16 | 32 | 6 | c6i.4xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Writer | 16 | 128 | 1 | db.r6g.4xlarge | -+------------------------+----------+------------------+----------------+------------------+ -| RDS Reader | 16 | 128 | 4 | db.r6g.4xlarge | -+------------------------+----------+------------------+----------------+------------------+ - -Lifetime storage ----------------- - -.. include:: ../scale/lifetime-storage.rst - :start-after: :nosearch: - -Estimated storage per user, per month -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. include:: ../scale/estimated-storage-per-user-per-month.rst - :start-after: :nosearch: - -Example -~~~~~~~ - -A 88000-person team with medium usage (with a safety factor of 2x) would require between 10.56TB :sup:`1` and 52.8TB :sup:`2` of free space per annum. - -:sup:`1` 88000 users * 5 MB * 12 months * 2x safety factor - -:sup:`2` 88000 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 -------------------------- - -.. include:: ../scale/additional-ha-considerations.rst - :start-after: :nosearch: diff --git a/source/scale/scale-to-90000-users.rst b/source/scale/scale-to-90000-users.rst new file mode 100644 index 00000000000..a5c24f6ed54 --- /dev/null +++ b/source/scale/scale-to-90000-users.rst @@ -0,0 +1,60 @@ +Scale Mattermost up to 90000 users +================================== + +.. include:: ../_static/badges/ent-selfhosted.rst + :start-after: :nosearch: + +This page describes the Mattermost reference architecture designed for the load of up to 90000 concurrent users. Unsure which reference architecture to use? See the :doc:`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/ | **AWS Instance** | +| | | Memory (GiB)** | | ++========================+===========+================+===================+ +| Mattermost Application | 5 | 16/32 | c7i.4xlarge | ++------------------------+-----------+----------------+-------------------+ +| RDS Writer | 1 | 16/128 | db.r7g.4xlarge | ++------------------------+-----------+----------------+-------------------+ +| RDS Reader | 4 | 16/128 | db.r7g.4xlarge | ++------------------------+-----------+----------------+-------------------+ +| Elasticsearch Node | 2 | 4/32 | r6g.xlarge.search | ++------------------------+-----------+----------------+-------------------+ +| Proxy | 1 | 16/64 | m7i.4xlarge | ++------------------------+-----------+----------------+-------------------+ + +Lifetime storage +---------------- + +.. include:: ../scale/lifetime-storage.rst + :start-after: :nosearch: + +Estimated storage per user, per month +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../scale/estimated-storage-per-user-per-month.rst + :start-after: :nosearch: + +Example +~~~~~~~ + +A 90000-person team with medium usage (with a safety factor of 2x) would require between 10.56TB :sup:`1` and 52.8TB :sup:`2` of free space per annum. + +:sup:`1` 90000 users * 5 MB * 12 months * 2x safety factor + +:sup:`2` 90000 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 +------------------------- + +.. include:: ../scale/additional-ha-considerations.rst + :start-after: :nosearch: diff --git a/source/scale/scaling-for-enterprise.rst b/source/scale/scaling-for-enterprise.rst index ae66ecc5246..d1ab48114e0 100644 --- a/source/scale/scaling-for-enterprise.rst +++ b/source/scale/scaling-for-enterprise.rst @@ -14,14 +14,14 @@ Available reference architectures The following reference architectures are available as recommended starting points for your self-hosted Mattermost deployment, where user counts refer to the number of concurrent users for a given deployment. The number of concurrent numbers is commonly lower than the total number of user accounts. -- :doc:`Up to 100 users ` -- :doc:`Up to 1000 users ` -- :doc:`Up to 15000 users ` -- :doc:`Up to 25000 users ` -- :doc:`Up to 50000 users ` -- :doc:`Up to 70000 users ` -- :doc:`Up to 79000 users ` -- :doc:`Up to 88000 users ` +* :doc:`Scale up to 200 users ` - Learn how to scale Mattermost to up to 200 users. +* :doc:`Scale up to 2000 users ` - Learn how to scale Mattermost to up to 2000 users. +* :doc:`Scale up to 15000 users ` - Learn how to scale Mattermost to up to 15000 users. +* :doc:`Scale up to 30000 users ` - Learn how to scale Mattermost to up to 30000 users. +* :doc:`Scale up to 50000 users ` - Learn how to scale Mattermost to up to 50000 users. +* :doc:`Scale up to 80000 users ` - Learn how to scale Mattermost to up to 80000 users. +* :doc:`Scale up to 90000 users ` - Learn how to scale Mattermost to up to 90000 users. +* :doc:`Scale up to 100000 users ` - Learn how to scale Mattermost to up to 100000 users. Testing methodology and updates -------------------------------- @@ -30,13 +30,13 @@ All tests were executed with the custom load test tool built by the Mattermost d At a high level, each deployment size was fixed (Mattermost server node count/sizing, database reader/writer count/sizing), and unbounded tests were used to report the maximum numbers of concurrent users the deployment can support. Each test included populated PostgreSQL v14 databases and a post table history of 100 million posts, ~3000 users, 20 teams, and ~720000 channels to provide a test simulation of a production Mattermost deployment. -Tests were defined by configuration of the actions executed by each simulated user (and the frequency of these actions) where the coordinator metrics define a health system under load. Tests were performed using the Mattermost v8.1 extended support release (ESR). Elasticsearch and job servers weren't used. All tests wtih more than a single app node had an NGINX proxy running in front of them. +Tests were defined by configuration of the actions executed by each simulated user (and the frequency of these actions) where the coordinator metrics define a health system under load. Tests were performed using the Mattermost v9.5 Extended Support Release (ESR). Job servers weren't used. All tests with more than a single app node had an NGINX proxy running in front of them. -Full testing methodology, configuration, and setup is available. Visit the `Mattermost Community `__ and join the `Developers: Performance channel `__ for details. +Full testing methodology, configuration, and setup is available, incluidng a `fixed database dump with 100 million posts `_. Visit the `Mattermost Community `_ and join the `Developers: Performance channel `_ for details. Mattermost load testing tools ----------------------------- -Mattermost provides a set of tools written in Go to help profiling Mattermost under heavy load, simulating real-world usage of a server installation at scale. The `Mattermost Load Test Tool `__ estimates the maximum number of concurrently active users the target system supports, and enables you to control the load to generate. +Mattermost provides a set of tools written in Go to help profiling Mattermost under heavy load, simulating real-world usage of a server installation at scale. The `Mattermost Load Test Tool `_ estimates the maximum number of concurrently active users the target system supports, and enables you to control the load to generate. -Visit the `Mattermost Load Test Tool `__ documentation on GitHub for details on getting started with the tools, and visit `the Go documentation `__ for code-specific documentation details. \ No newline at end of file +Visit the `Mattermost Load Test Tool `__ documentation on GitHub for details on getting started with the tools, and visit `the Go documentation `_ for code-specific documentation details. \ No newline at end of file