Hardware Sizing
The data provided here is for information purposes only. Usage may vary for a same number of users, depending on hardware structure and use habits. The number of emails, their size, the number of recipients in the emails, the number of appointments, planning... this all is very different from one installation to another.
About units
A BlueMind system is made up of multiple components that use up resources.
A typical "per user" calculation cannot be applied because a user who only uses email will not generate the same system workload as a user using email and collaborative services (Calendar, etc.) and a smartphone.
As a result, hardware sizing is calculated "per unit", on the following basis:
| User profile | Cost per Unit |
|---|---|
| Email only | 1 |
| Mail + intensive collaboration | 2 |
| Email + collaborative services + smartphone | 5 |
Likewise for the same number of units, only email usage will not have the same resource consumption as an email + collaborative use (for half of users). Mail, for example, is more IO-dependent than CPU-dependent, which is generally the opposite of the case for collaborative tools.
CPU
CPU is stated in number of cores. Reference values are based on recent Xeon-type server CPU.
BlueMind has multiple services, as a result we recommend a minimum of 2 cores.
Note that allocating too many CPUs can lead to other problems on virtualized environments.
| Units | number of cores |
|---|---|
| 1-200 | 2 |
| 200-1,000 | 4 |
| 1,000-2,000 | 6 |
| 2,000-3,000 | 8 |
| 3,000-6,000 | 12 |
| 6,000+ | 2 / 1,000 units |
RAM
| Units | Ram |
|---|---|
| 1-250 | 16 GB |
| 250-1,000 | 24 GB |
| 1,000-2,500 | 32 GB |
| 2,500-5,000 | 48 GB |
| 5,000-10,000 | 64 GB* |
| 10,000+ | 96 GB* |
*With the Cyrus service and bm-elasticsearch on dedicated servers
Storage / IO Performance
:::info Disks and performance
An email system is very demanding on disks, for reading and writing small files, but also for message processing (indexing, read/write statuses, etc.). Disk quality and speed are key to an email system's performance.
:::
IOPS = "Input/Output Operations Per Second"
Minimum disk performance
Storage is sized in IOPS as email is a heavy user of IO, whereas storage space directly depends on client requirements (quotas, etc.)
Depending on the end use, not all disks need to have the same level of performance, nor the same volume.
These are mere estimates, which may vary depending on your install and your organization's evolution. We therefore recommend that you use technologies that enable you to increase the size of your file system easily...).
Point de montage | Description | Type NFS | Type block device | IOPS minimum | Volumétrie minimale |
/var/spool/cyrus/data | Espace de stockage des emails | ✅ | ✅ | 6 000 iops | Espace le plus volumineux, à déterminer en fonction de la volémetrie mail attendue. |
/var/spool/bm-hsm | Espace optionnelde stockage secondairedes emails | ✅ | ✅ | 6 000 iops | |
/var/spool/cyrus/meta | Meta données des e-mail | ❌ | ✅ | 10,000 iops | 5% du volume de /var/spool/cyrus/data |
/var/lib/cyrus | Information des BALs et conversations | ❌ | ✅ | 10,000 iops | 5% du volume de /var/spool/cyrus/data |
/var/spool/sieve | Règles de filtrage des mails | ✅ | ✅ | 6 000 iops | 1 Mo par utilisateurs + BAL partagées |
/var/lib/postgresql | Base de données PostgreSQL | ❌ | ✅ | 10,000 iops | 5% du volume de /var/spool/cyrus/data(L'espace utilisé sur cette partition est doublé durant une restauration DataProtect) |
/var/spool/bm-elasticsearch | Données des index ElasticSearch | ❌ | ✅ | 10,000 iops | 10% du volume de /var/spool/cyrus/data + /var/spool/bm-hsm Prévoir de laisser au moins 50% d'espace libre, sauf si le dataprotect est désactivée pour ES. We recommend using 2 distinct partitions, of equal sizes, attached to the subfolders:
|
/var/spool/bm-mail | Envoi des emails via EAS/mapi | ✅ | ✅ | 6 000 iops | 2 Go |
/var/backups/bluemind | Sauvegardes DataProtect | ✅ | ✅ | 6 000 iops | Sum of:
For sizes of /var/spool/cyrus/data + /var/spool/bm-hsm greater than 1 TB, we recommend disabling DataProtect backup of emails. You can use a third-party backup system and/or double bottom trash can |
/var/spool/bm-mapi | Dossiers temporaire du service bm-mapi | ✅ | ✅ | 6 000 iops | 2 Go |
/var/spool/bm-hollowed | Cache interne | ✅ | ✅ | 10,000 iops | 1 Go |
/var/spool/bm-docs | Stockage des vignettes utilisateurs, ressources... | ✅ | ✅ | 6 000 iops | 1 Mo par entité avec vignette |
/var/spool/postfix | File d'attente des mails | ✅ | ✅ | 6 000 iops | 2 Go |
/var/log | Journaux systèmes et applicatifs | ✅ | ✅ | 10,000 iops | 50 Go |
/tmp | Fichiers temporaires | ✅ | ✅ | N/A | 1.2G de volumétrie est nécessaire à l'installation de BlueMind. This is related to decompressing the installer |
/usr/share | ✅ | ✅ | N/A | 8GiB sont nécessaires pour contienir les modules et applications web. |
IOPS data for storage devices (Wikipedia)
| Device | Type | IOPS | Interface | Notes |
|---|---|---|---|---|
| 7,200 rpm SATA drives | HDD | ~75-100 IOPS [2] | SATA 3 Gb/s | |
| 10,000 rpm SATA drives | HDD | ~125-150 IOPS [2] | SATA 3 Gbit/s | |
| 10,000 rpm SAS drives | HDD | ~140 IOPS [2] | SAS | |
| 15,000 rpm SAS drives | HDD | ~175-210 IOPS [2] | SAS |
Examples
Core/RAM distribution over several servers (virtual or otherwise) is not described here.
However, for up to 16-24 cores, we believe that a single-platform installation is sensible.
Above this threshold, and to manage populations in the tens of thousands of users or more, the architecture must be distributed.
Also, the email part as well as the database (which collaborative use/smartphone places heavy demands on) must be kept separate from the rest.
Users / unités | Noeud | CPU #cœurs | RAM en Go | IOPS / Disque |
25 users / 5 with smartphones 45 units (20 + 25) | 2 | 16 | 13,5 / tout disque | |
150 users / 50 collaborative users, including 25 with smartphones 225 units (100 + 25 × 2 + 25 × 5) | 4 | 16 | 67,5 SATA 7200 minimum | |
300 users / 100 collaborative users / 30 smartphones 490 units (200 + 70 × 2 + 30 × 5) | 4 | 24 | 147 2 * 10K rpm SAS 1 * 15K rpm SAS | |
600 utilisateurs / 200 collaboratifs / 50 smartphones 950 unités (400 + 150 * 2 * 50 * 5) → 4 CPU, 24 GB de RAM | Core | 2 | 20 | 285 SSD, Baie ou autre système |
Edge | 2 | 4 | ||
1,000 users / 250 collaboratifs / 100 smartphones 1300 unités (750 + 150 * 2 + 100 * 5) → 6 CPU, 32 GB de RAM | Core | 2 | 20 | 390 SSD, Baie ou autre système |
BM-ES | 2 | 8 | ES dédié à partir d'1To de mails et archives | |
Edge | 2 | 4 | ||
2,000 users / 500 collaboratifs / 200 smartphones 3100 unités (1500 + 300 * 2 + 200 * 5) → 12 CPU, 48Go de RAM | Core | 6 | 20 | 930 Baie (2000 IOPS) |
BM-ES | 2 | 12 | ES dédié à partir d'1To de mails et archives | |
Cyrus | 2 | 12 | Cyrus dédié à partir de 2To de mails et archives | |
Edge | 2 | 4 | ||
4,000 users / 1000 collaboratifs / 300 smartphones 5900 unités (3000 + 700 * 2 + 300 * 5) → 12 CPU, 64Go de RAM | Core | 6 | 36 | 1770 Baie (2-3000 IOPS) |
BM-ES | 2 | 12 | ES dédié à partir d'1To de mails et archives | |
Cyrus | 2 | 12 | Cyrus dédié à partir de 2To de mails et archives | |
Edge | 2 | 4 | ||
4,000 users / 1000 collaboratifs / 1000 smartphones 8000 unités (3000 + 1000 * 5) → 16 CPU, 64Go de RAM | Core | 6 | 36 | 2400 SAN / autre techno |
BM-ES | 4 | 12 | ES dédié à partir d'1To de mails et archives | |
Cyrus | 4 | 12 | Cyrus dédié à partir de 2To de mails et archives | |
Edge | 2 | 4 | ||
4,000 users / 4000 collaboratifs / 1000 smartphones 11000 unités (3000 * 2 + 1000 * 5) → 22 CPU, 96Go de RAM | Core | 10 | 44 | 3300 SAN / autre techno |
BM-ES | 4 | 24 | ES dédié à partir d'1To de mails et archives | |
Cyrus | 6 | 24 | Cyrus dédié à partir de 2To de mails et archives 2ème noeud Cyrus à envisager | |
Edge | 2 | 4 | ||
5000 utilisateurs et + (10,000, 100 000,..) | Le système doit être distribué et l’architecture étudiée en fonction du contexte particulier. | |||
Bandwidth
Bandwidth requirements cannot be predicted as they largely depend on mail traffic.
You should note that the data on bandwidth usage of the BlueMind calendar and smartphones below clearly shows the prevalence of mail traffic.
BlueMind Calendar bandwidth
For a user with the Calendar application open in their web browser, in http and in bytes (measured on the network using Wireshark):
- every 30 seconds: one doSync 1067 / 293 (sends local modifications and retrieves changes)
- every 5 seconds: one ping: 898 / 233, i.e. 5388 / 1398 in 30s (one keepalive)
Client to server: 215 bytes/sec (1,067+5,388)/30
Server to client: 56 bytes/sec (293+1,398)/30
| Number of Active Users | Client to Server | Server to Client |
|---|---|---|
| 1 | 215 B/s | 56 B/s |
| 100 | 21 KB/s | 6 KB/s |
| 1,000 | 210 KB/s | 60 KB/s |
| 10,000 | 2.1 MB/s | 600 KB/s |
Including a safety margin, for 1,000 Calendars running in web browsers, this adds up to:
- Client to server: 500KB/s
- Server to client: 150KB/s
Contacts bandwidth
For a user with the Contacts application running in their browser, in http and in bytes:
144 bytes/second
Specifically:
- one ping every 5 seconds
- one "bmc" every 30 seconds
If we double the measured value to get a comfortable safety margin, the bandwidth would be 288 bytes per second for a user with the Contacts application open.
Smartphone bandwidth
Microsoft provides the following ActiveSync ratios: 1.04KB/s/user
for 100 smartphones: 104KB, or 13KB/s
For which we will be taking a reasonable margin of x2, which gives the following:
100 smartphones == 26KB/s
1,000 smartphones == 260KB/s