Ceci est une ancienne révision du document !
Table des matières
Boardz2 : Performances
Conditions de mesure
La mesure est effectuée sur l'environnement de qualification. Les caractéristiques de cet environnement sont :
- serveur : ADVANCE-2 - Intel Xeon-E 2136 - 32GB DDR4 ECC 2666MHz - 2x HDD SATA 4TB Datacenter Class + 2x SSD NVMe 500GB Enterprise Class Soft RAID
- os : Linux debian 9.4 stretch
- CPU : Intel Xeon E-2136
Les mesures sont effectuée sur un serveur de qualification marginalement chargé par des tâches annexes. Les deux applications (boardz et moodle) sont sur le même serveur. Le tir CURL s'effectue sur l'IP publique de Moodle à partir du Boardz. Il peut bénéficier d'un facteur améliorant en étant situé sur la même machine, sans traversée d'équipements réseau externes.
Techniques de mesure
- Capture des gaptimes, par capture des temps microtime() du système.
- Capture des consommations mémoire (visibles depuis PHP).
Implémentation
La classe \`boardz\utils\PerformanceMonitor regroupe l'ensemble des implémentations des outillages de mesure de la performance de fonctionnement du moteur BoardZ version 2.
snap(string $purpose)
Capture un temps dans la piste dédiée à la mesure $purpose
get_speed(string $purpose, int $itemcount)
Mesure une vitesse instantanée (en contexte) de fonctionnement par division du dernier intervalle de temps par le nombre d'items traités dans l'intervalle.
Mesures
Aspiration des "Logs" de moodle
La mesure adresse la vitesse nominale de traitement des logs d'une instance Moodle locale, dans un cycle de 5000 logs par phase et 10 secondes de “refroidissement” entre phases. La mesure adresse le temps d'intégration des enregistrements de logs, hors temps de réponse du service Web Moodle invoqué.
- vitesses mesurées : entre 250 et 360 logs traités /seconde soit entre 9M et 1,296M enregistrements par heure.
Montée en puissance : topologies d'implantation de Boardz2
Boardz2 est conçu pour être :
- multitenant
- scalable horizontalement (nombre de plates-formes suivies)
- scalable verticalement (quantité de données traitées)
