Hello Christian,

On 11/08/2020 13:55, Christian Mack ([email protected]) has written:
Hello

First, most of your questions are not SOGo related, but IMAP and
database server related.

That said, let's start :-)

You can optimize your setup for either speed, high availability or easy
setup.
As you seem to go for redundancy and/or speed, you should split up your
setup into loadbalancer, SOGo + reverse Proxy, database and IMAP/SMTP
server.

Ouch, yes, I forgot to write that we are changing the webmail and collaboration suite only. So, we are evaluating a new webmail because our older one (Open-Xchange) become too expensive.

So I expect to don't touch other setup about IMAP, SMTP and LDAP. They are already working as well.

In particular we use LDAP for authentication and we use a kind of sharding of mailboxes over IMAP servers. About this aspect I appreciate SOGo, which let me to define the IMAP server through an LDAP attribute (such as mailHost). So I can choose a different IMAP server for every account! This is not really true, I have to grant the IMAP sharing among the mailboxes. But the idea is working, we separate accounts and disks over multiple IMAP hosts.

[...]
IMAP sessions are bound to one connection.
As long as the connection exists, the session can survive.
One connection can provide multiple sessions.
There can be multiple connections at the same time.
Therefore it is irrelevant which server a session connects, as long as
the server doesn't die and all servers have the same content.

Ok, If I well understand a set of equally configured (cloned) virtual machines for SOGo could be a good solution.


Database:
Independent to SOGo, can be reused for multiple services.
SOGo only stores authentication information, settings, address books and
calendars in database.
Those are tiny compared to emails.
For 25,000 users only, no database will get into a sweat.
They usually are made for datasets in the hundreds of millions.
If you need high redundancy, you can even use a cluster setup, but they
are hard to do right and expensive.

This sounds very good.


SOGo:
How many accounts one SOGo server can serve, depends on the usage.
Example:
We have split our servers like outlined at the start of this message.
We have ~20,000 accounts and provide no ActiveSync.
There are roughly 120 parallel, active SOGo sessions per minute in high
usage times.
Active SOGo session means, that the user clicked at least one time in
that minute or accessed any information via DAV.
This is served by an 16 core 32 GB RAM 200 GB SSD/HD VM.
RAM is the most limiting factor here.
Especially for large emails and folders with a lot of emails we had to
increase max Limit of RAM per worker SxVMemLimit to 512.
Else we had seen a lot of respawned workers after one access.
We have 350 workers running.

If you want to use multiple SOGo servers (as you are planning for
dedicated ActiveSync and web + DAV), you have to use one shared
memcached server.
You also have to use one shared NFS or cifs server for email composition
and encoding storage (SOGoMailSpoolPath + NGMimeBuildMimeTempDirectory).
If you don't use those, you will have diverse problems when creating
emails or change settings and content.

Thank you for these very useful details.
On our current Open-Xchange we see about 400 parallel sessions as maximum. These are equally likely distributed over IMAP and over Active Sync.

Using balanced solution, I wonder if it is better to separate sogod for EAS and sogod processes for IMAP on the same host (as described in documentation FAQ), or if it is better to provide different separated hosts for EAS. Ie, balanced hosts for IMAP and separated balanced hosts for EAS.

The shared Memcache server is another task where I have to define an appropriate resources of RAM.

Thank you very much for these hints.

Cheers
Marco

Hope that helps a bit.


Kind regards,
Christian Mack

Am 06.08.20 um 15:20 schrieb Marco ([email protected]):
Hello,

  I read that SOGo can manage at least 25000 mailboxes and more. But I
don't understand how to setup the hosts through an high availability
balancer.

At the moment I have about 20000 mailboxes accessed through IMAP. Many
mailboxes are large (over 10GB) and very intensively accessed. They are
highly accessed through ActiveSynch too, so I'll setup a separate
installation for this protocol, as suggested on SOGo site.

I wonder how many mailboxes can manage a single SOGo host.
I would like to know if an IMAP session must stay on a single host, or
if it can land on a random balanced host.
For instance, I remember that Horde can have multiple hosts equally
configured with the same DB (in particular one session table). So it's
not important what balanced host a client contacts: even in the same
IMAP session the host can change.

I would like to know if you have some hints or best practices how to
configure SOGo in a large environment. For instance, a typical resource
allocation (CPU, RAM) for a single host.

Let suppose to choose a MySQL DB. Reading at the manual, it seems the DB
is a system global configuration. Can a single DB manage over 20000
mailboxes?

Thank you very much for every hints.

Cheers
Marco




--
[email protected]
https://inverse.ca/sogo/lists

Reply via email to