Opcache : test évolué

Soumis par drupal_admin le mer 10/04/2019 - 00:47

J'ai voulu réaliser quelques tests avec Selenium, que j'ai déjà utilisé dans le passé, mais l'IDE accessible par Firefox ou Chrome ne génère plus de Python ... quel dommage.
J'ai trouvé une autre possibilité : passer par le plugin "Katalon" qui, lui génère du bon Python.
Et voici les résultats.

A partir du script Python généré par Katalon, lisible et simple à comprendre j'ai pu en y intégrant un peu de code bâti autour de la carte du site (sitemap.xml pour ne pas la citer) j'ai réussi à faire fonctionner deux scripts (un utilisant Firefox, l'autre Chrome) parcourant la carte du site en sens inverse.
Ce test a été réalisé en lançant trois fois à 15 secondes d'intervalle les deux scripts en "background), l'affichage étant réalisé devant mes petits yeux ébahis j'ai pu vérifier que la vitesse de chaque script était légèrement supérieure à une page par seconde : #320 secondes pour #420 pages les six scripts demandaient donc à peu près 6 pages par seconde.
Le système ayant fonctionné avant ces tests on peut supposer que tous les buffers systèmes étaient bien remplis. Ce qui est confirmé par l'absence d'I/O disques durant ces tests.


La somme des "Deltas" légèrement positive semble indiquer un léger "mieux" lors de l'utilisation de Opcache, ceci est peut-être confirmé par les résultats des deux premiers tests défavorables à OPcache car il faut "compiler" le code et le stocker dans des structures mémoire ce qui doit coûter un peu de temps.
Au niveau du CPU c'est plus net, l'utilisation de Opcache fait baisser l'usage CPU.
Le graphe suivant présente le %CPU utilisé (en bleu et en rouge) et l'avantage de Cache par rapport à Non_cache, or cet avantage semble le plus souvent positif et montre une "économie" de CPU.

 

Graphe usage CPU cache/nocache
Graphe usage CPU

On remarque bien qu'au début (de 0 à 50 secondes) l'avantage du cache est faible puis se stabilise aux environs de 15% avec des pointes au delà de 20%.
Au niveau de la mémoire le cache "consomme" de la mémoire (ici le cache est limité à 128Mo), je vais refaire un essai avec un cache plus important : 256Mo par exemple.

 

Graphe occupation mémoire
Graphe usage mémoire

On voit bien (en rouge) l'augmentation de l'empreinte mémoire et la baisse de la taille des buffers.
En combinant le tableau de durée des tests et celui de l'usage CPU on voit qu'avec Opcache cela va "un peu plus vite" tout en consommant nettement moins de CPU.
Ces tests ont été réalisés avec 128Mo de mémoire consacrés à Opcache j'ai voulu voir si en augmentant cet empreinte mémoire il y avait quelques choses à gagner. J'ai donc passé la taille du cache de 128M à 256M (et forcé la taille mémoire en conséquence !) et refait un test.
Il s'avère qu'au niveau de la mémoire 128M, dans mon cas, étaient suffisants. Avec 256Mo de cache la mémoire occupée est sensiblement égale à la fin du test, voir graphe ci-dessous :

Occupation mémoire opcache 128M et 512M
Occuparion mémoire cache 128M et 256M

Il est probable que 128Mo suffisent pour le logiciel utilisé, cette valeur est donc à tester pour chaque site pour bénéficier de performances optimales ou à utiliser, au moins, le cache "fichiers".

Remarque :
Pendant les tests avec 6 threads (3 Firefox et 3 chrome) la machine exécutant les tests (Core i7-6700 CPU @ 3.40GHz avec 16Go) était très chargée en CPU #70/80%. J'ai essayé avec 8 threads et le ventilateur CPU a commencé à vrombir car on dépassait les 90% de CPU. Les navigateurs commandés par les Webdrivers sont donc très avides de CPU !
Tester ainsi de gros sites demande certainement une bonne batterie de clients costauds ...