Introduction
PHP est supporté sur App Service. Bien avant l’avènement des App Services sous Linux, il était possible de faire tourner un Wordpress sur un App Service Windows.
App Service sur Linux permet de faire tourner son application parmi les piles d’application supportées ou faire tourner son propre container.
Le scénario de test comprend :
-
L’interrogation de l’URL de métadonnées
-
L’interrogation de l’URL de webfinger
-
L’authentification et la récupération d’un token
-
La récupération des informations de l’utilisateur (userinfo)
-
La validation du jeton
Windows
Les graphiques suivants présentent les résultats pour un App Service plan B1 sous Windows.
Le nombre de requêtes est relativement erratique — entre 2 et 6 requêtes/s — avec une moyenne d’environ 3 requêtes/s.
Linux
Plan B1
Les graphiques suivants présentent les résultats pour un App Service plan B1 sous Linux.
Le nombre de requêtes est relativement plus stable que pour Windows avec une moyenne d’environ 3 requêtes/s.
Plan B3.
Au moment de la rédaction de cet article, les plans Linux sont beaucoup moins cher que Windows. Ainsi en décembre 2020 pour France Central :
OS | Taille | Cores | Mémoire | Prix |
---|---|---|---|---|
Windows |
B1 |
1 |
1,75 GB |
~€57.868/mois |
Linux |
B1 |
1 |
1,75 GB |
~€11.081/mois |
Linux |
B3 |
4 |
7 GB |
~€43.093/mois |
On voit ainsi que l’on peut avoir beaucoup plus de ressources avec un plan Linux B3 qu’un plan Windows B1.
Comparons ce qui est comparable et voyons les résultats pour un plan Linux B3 :
Cette fois-ci, avec un peu de stress, on arrive à 12 requêtes par secondes.
OPcache à la rescousse
OPcache améliore les performances de PHP en stockant le bytecode des scripts précompilés en mémoire partagée, faisant ainsi qu’il n’est plus nécessaire à PHP de charger et d’analyser les scripts à chaque demande. Il est inclus par défaut depuis PHP 5.5.
Les graphiques suivants présentent les résultats pour un App Service plan B1 sous Linux avec OPcache activé dans l’image Docker :
Le nombre de requêtes est relativement erratique — entre 6 et 10 requêtes/s — avec une moyenne d’environ 8 requêtes/s.
Conclusion
Les tests de performance de phpOIDC n’ont pas du tout été impressionnant (sic.).
Je n’ai pas joué avec le cache local sur App Service sur Windows. C’est une option intéressante en termes de performance.
Cela étant, on a pu voir qu’à prix équivalent, il est préférable d’utiliser un plan Linux. L’utilisation d’OPcache permet également de grandement améliorer les performances. Seule une image personnalisée permet d’avoir OPcache activé, donc un plan Linux.
Il n’existe pas de réponse absolue quand on parle de tests de performance : Cela dépend fortement de l’application, des accès en lecture/écriture, etc. On peut voir que l’utilisation de plan sur Linux permet d’être plus efficace et devrait être favorisé.