Sizing for production install

Hello!

We are about to upgrade our production Mattermost installation to version 7.2 from version 5.39. We have about 1100 users and will be using the new Calls and Threads functionality. Our current server has 2 cpus with 1 core each and 4GB ram, this feels too small now. What would the recommendation be for an installation of our size?

Best regards,

David

Hi David,

hard to tell, because it’s also depending on how your users are using the platform and what else is running on the Mattermost server. Is this a single-server deployment and if so, what components are running on this server?

  • Reverse Proxy?
  • Mattermost Application server?
  • S3 Storage Server?
  • Database Server?
  • Elasticsearch Server?
  • etc.

The mattermost process on my server is using ~1GB of RAM and is not very CPU hungry, but the database and elastichsearch services are, so the sizing for system might differ depending on the requirements.
If it’s a virtual infrastructure which supports hot-adding resources, then you can start with a smaller deployment and grow online as the need arises, whereas a downsizing always comes with a reboot and therefore a short downtime.

Calls, f.ex., start a separate process per CPU dynamically, so the more CPUs you have, the better your calling performance will be when you have lots of calls. If there are just a few calls, it will not matter.

The reference architectures online are a bit oversized for your requirements, I think, so if you can scale fast, I’d say give it a try with your current resources, maybe add 2 cpus and 2gb of ram, just to be on the safe side.

Since the organization is a major user of BigBlueButton we expect that the Calls feature will see heavy usage, probably replacing BBB altogether in the end. We also expect users to rely heavily on the Threads-feature.

The vm contains the mattermost server and a database server.

We will add 2 cpus and some more ram and see where that takes us. Thanks. :slight_smile:

OK, in this case, I would definitely suggest to upgrade vertically at first and see how it goes. While development progresses, there’s currently also a separate rtcd installation available for Calls so the call load itself can be handled on a different system (or set of systems) and there’s still plenty of other simple horizontal scaling options (moving the database to a separate system, etc.), but the easiest is, of course, to just add CPUs and RAM as long as this is possible and suits your needs.