Opcache : préalable
Opcache : préalable jppPrécisions sur l'environnement de test.
Je dispose donc de deux Machines Virtuelles KVM identiques à la version près, une Stretch (PHP7.0) et une Buster (PHP7.3), équipées de Apache/Mariadb et des mêmes applications.
J'ai donc réalisé quelques essais comparatifs. Je dispose d'un petit injecteur (Python simple) capable d'interroger les sites avec une liste d'Url en notant pour chaque accès le temps de réponse de la requête. Ces requêtes sont des requêtes "simple" n'impliquant qu'un accès, c'est bien plus léger puisque aucune image ni Javascript, tout provient donc "en direct" de la base de données et du moteur du CMS.
Lors d'un premier passage on constate que MariaDB effectue pas mal de lecture ( #1600Ko ), après ce premier passage tout se passe en mémoire grâce au cache de InnoDB (320Mo) car le test ne concerne que 419 pages du site. De plus ce phénomène survit à un reboot gràce au fichier "/var/lib/mysql/ib_buffer_pool". On peut le vérifier en :
1) Stopper MariaDB
2) Supprimer le fichier ib_buffer_pool, non celà n'est pas dangereux !
3) Relancer MariaDB
4) les tests suivants montrent que la base effectue beaucoup de lectures.
Le premier test est réalisé avec un petit programme Python qui appelle successivement les pages du site, le seul accès est réalisé sur la page (pas de CSS, Images ...).
Pour le test "évolué" il sera fait appel à Selenium et ses "Webdrivers" afin d'avoir des accès sur les CSS, JS et images.
Les deux versions (Stretch et Buster) se comportent de manière quasiment identique : aucune analyse graphique ne donne l'avantage à l'un ou à l'autre et l'écart global de temps de réponse (sur 419 pages) est inférieur à 1/10 de seconde sur un total de plus de 8 secondes. Plusieurs passes (avec redémarrage) on donné des résultats similaires.
On est donc ainsi sûrs que, si l'on réalise les mesures qu'après un "tour de chauffe", on mesurera des performances CPU en faisant abstraction des entrées/sorties.