I will share my experience.
In the installation we have 5 teams.
Altogether there are 25,091 users on all servers.
The largest team and channel have 14 050 users.
Mattermost 3.8 , Debian 8, Postgres 9.6 DB and server application on one VM. RAM 4GB CPU 12 (just reinsured with so many, really so much is not needed)
In the channels it is limited to the notification about the dialing by the user of the message, it was considered that this would create a load since you need to inform all users of the channel, left only for channels with a membership of no more than 15 users.
Problems with any performance were not noticed. An average of 1,500 messages are received on a working day. (few, but these are real numbers). There are about 400 active users.