Aller au contenu principal

Dimensionnement matériel

Les données indiquées ici le sont à titre indicatif. En effet, pour un même nombre d’utilisateurs, l’utilisation peut-être très différente selon les structures et habitudes. Le nombre de mails, leur taille, le nombre de destinataires dans les mails, le nombre de rdv, de planification... tout ceci par jour est très variable.

A propos des environnements virtualisés.

Les ressources en vCPU et/ou RAM indiquées ci-après sont entendues dédiées aux machines virtuelles. C'est à dire que ces ressources doivent être exclues d'une quelquonque mutualisation avec d'autres machines virtuelles.
De fait, il convient de porter une attention particulière à ne pas placer des instances BlueMind dans un contexte où le ou les hyperviseurs seraient en statut d'overcommit.

Le principe des unités

Dans un système comme BlueMind, il y a différents composants consommateurs de ressources.

Le calcul basique “par utilisateur” n’est pas valide car un utilisateur qui n’utilise que la partie messagerie ne sollicitera pas le système de la même façon qu’un utilisateur utilisant le mail et les outils collaboratifs (agenda, …), ni qu'un utilisateur utilisant mapi.

Le calcul du dimensionnement s’effectue donc par unité sachant que :

Profil d’utilisateurCoût en unité
Messagerie seule1
Messagerie + collaboratif intensif2
Messagerie + collaboratif + mapi5

De même pour un nombre d’unités identique, une utilisation uniquement messagerie n’aura pas la même consommation de ressources qu’une utilisation messagerie + collaboratif (pour la moitié d’utilisateurs). Le mail étant par exemple plus dépendant des IO que du CPU, ce qui est inverse en général des outils collaboratifs.

CPU

Nous parlons en nombre de cœurs. La référence est un CPU serveur récent, de type Xeon.

BlueMind comprend de nombreux services, nous préconisons donc 2 cœurs minimum.

À noter qu'allouer trop de CPU peut mener à d'autres problèmes sur des environnements virtualisés.

UnitésNombre de cœurs
1-2002
200-10004
1000-20006
2000-30008
3000-600012
6000+2 cœurs / 1000 unités

RAM

Nous préconisons 24 Go de RAM minimum.

UnitésRam
1-100024 Go
1000-250032 Go
2500 - 500048 Go
5000-1000064 Go*
10000+96 Go*

* avec déport du service bm-elasticsearch sur un serveur dédié

Stockage / IO

Type de disques

Une messagerie sollicite beaucoup les disques, pour la lecture et l'écriture de petits fichiers, mais aussi pour tous les traitements sur les messages (indexation, état de lecture, …). La qualité des disques et leur rapidité est une donnée clé pour une messagerie performante.

L'utilisation de disques SSD/nvme est obligatoire pour une nouvelle installation et fortement recommandé dans le cadre d'une mise à jour depuis une version 4, à moins que le matériel en place ne donne pleinement satisfaction. Les disques mécaniques / rotationnels présentent des latences élevées incompatibles avec le logiciel. Ces derniers peuvent éventuellement être utilisés pour les sauvegardes ou dans le stockage hiérarchique, derrière des SSD/nvme performants.

Performances et volumétrie minimales des disques

Le stockage est dimensionné en IOPS1, un service de messagerie étant un gros consommateur d’IO. L’espace de stockage est lui directement dépendant de la demande du client (quotas, …)

Selon l'usage final, tous les disques n'ont pas nécessairement besoin d'avoir le même niveau de performance, ni la même volumétrie.

À noter

Les volumétries minimales indiquées ci-dessous sont des estimations qui peuvent être amenées à varier suivant les installations et l'évolution de l'organisation, il est donc préférable d'utiliser des technologies permettant d'agrandir simplement les FS (LVM, etc.).

Point de montage

Description

Type NFS

Type Object Storage S3/Scality Ring

Volumétrie minimale

/var/spool/cyrus/data

Espace de stockage des emails

Espace le plus volumineux, à déterminer en fonction de la volumétrie mail attendue.

/var/spool/bm-hsm

Espace optionnel de stockage secondaire des emails

⚠️

/var/lib/postgresql

Base de données PostgreSQL

5% du volume de /var/spool/cyrus/data + /var/spool/bm-hsm.
NB : l'espace utilisé sur cette partition est doublé durant une Restauration unitaire - DataProtect.

/var/spool/bm-elasticsearch

Données des index ElasticSearch

10% du volume de /var/spool/cyrus/data + /var/spool/bm-hsm.

/var/spool/bm-mail

Envoi des emails via EAS/mapi

2 Go

/var/backups/bluemind

Sauvegardes DataProtect

Somme de : /var/spool/cyrus/data, /var/spool/bm-hsm, /var/lib/postgresql et /var/spool/bm-elasticsearch/data.
Pour des tailles de /var/spool/cyrus/data + /var/spool/bm-hsm supérieures à 1 To, nous conseillons de désactiver la sauvegarde DataProtect des mails. Vous pouvez utiliser un système de sauvegarde tiers et/ou la corbeille double fond.

/var/spool/bm-mapi

Dossiers temporaires du service bm-mapi

2 Go

/var/spool/bm-hollowed

Cache interne

1 Go

/var/spool/bm-docs

Stockage des vignettes utilisateurs, ressources...

1 Mo par entité avec vignette

/var/spool/postfix

File d'attente des mails

2 Go

/var/log

Journaux systèmes et applicatifs

50 Go

/tmp

Fichiers temporaires

1.2Go de volumétrie est nécessaire à l'installation de BlueMind. Cela est relatif à la décompression de l'installeur

/usr

8Go sont nécessaires pour contienir les modules et applications web.

NFS

Privilégier le stockage objet pour avoir de meilleurs résultats que les montages NFS, particulièrement si les stockages blocks utilisés s'appuient sur du réseau (par exemple Ceph, SAN iSCSI).

Environnements virtualisés

L'usage de baie de stockage rapide de type "full flash" est une bonne chose. Il faudra néanmoins porter une attention particulière à conserver des latences faibles entre l'instance BlueMind et l'infrastructure de stockage. BlueMind recommande de ne pas dépasser 10ms sur les IOPS.

Bande passante

La bande passante nécessaire n’est pas prévisible car elle dépend en très grande partie du trafic mail.

À titre d’informations ci-dessous les informations sur la consommation bande passante de l’agenda BlueMind et des smartphones, qui montre bien la prédominance du trafic mail.

Bande passante Agenda BlueMind

Pour un utilisateur avec l'application d'agenda ouverte dans son navigateur, en http et en octets (mesuré sur le réseau avec wireshark) :

  • toutes les 30 sec: un "doSync" 1067 / 293 (envoie des modifs locales et récupération des changements)
  • toutes les 5 sec: un "ping": 898 / 233, soit 5388 / 1398 en 30 s(un "keep alive")

Soit :

  • Client vers serveur : 215 octets/sec (1067+5388)/30
  • Serveur vers client : 56 octets/sec (293+1398)/30
Utilisateurs actifsClient vers serveurServeur vers client
1215 octets/s56 octets/s
10021 ko/s6 ko/s
1 000210 ko/s60 ko/s
10 0002,1 Mo/s600 ko/s

Avec de la marge, pour 1000 agendas ouverts dans les navigateurs :

  • Client vers serveur: 500 ko/sec.
  • Serveur vers client: 150 ko/sec.

Bande passante de la gestion des contacts

Pour un utilisateur avec l'application de gestion des contacts ouverte dans son navigateur, en http et en octets :

144 octets / seconde

Avec en particulier :

  • toutes les 5 secondes un "ping"
  • toutes les 30 secondes un "bmc"

En prenant une marge de sécurité en doublant la valeur mesurée, nous obtenons une bande passant de 288 octets par seconde pour un utilisateur ayant lancé l'application de gestion de contacts.

Bande passante smartphones

Les ratios ActiveSync sont fournis par Microsoft : 1.04kb /sec/utilisateur.
Donc pour 100 smartphones 104 Ko, soit 13 Ko/sec.

En prenant une marge raisonnable de x2, on comptera alors :

  • 100 smartphones == 26 Ko/sec
  • 1 000 smartphones == 260 Ko/sec

Pour aller plus loin

Consultez la documentation BlueMind en relation

Footnotes

  1. IOPS : "In/Out per second" en anglais, soit « Entrée/Sorties par seconde »