You are not logged in.
Bonjour,
J'ai mis en place une nouvelle infrastructure de 3 serveurs Web dans un environnement virtuel (HyperV) sous Windows 2008R2 / IIS 7.5 - PHP 5.3.13 - MySql 5.5.24. Les 3 serveurs sont configurés en ferme (cluster à basculement) et hébergent actuellement 4 sites / applications web dont notre GLPI.
Tous les sites / applications web autres que GLPI fonctionnent parfaitement. Mais GLPI présente un phénomène de latence lors de l'accès initial à l'application (avant identification) et en cas d'inactivité prolongée (environ + de 5 minutes) que l'on soit connecté ou non à GLPI. La latence moyenne mesurée est de 5 secondes.
Par exemple :
Après le démarrage du navigateur, l'accès à la page d'identification de GLPI met près de 5 secondes avant de s'afficher. Ensuite, au moment de l'identification, plus de problème de latence. Au contraire, le site réagit très bien : Moins de 150ms de temps de génération des pages quelles qu'elles soient.
Par contre, tout en restant connecté et identifié sur GLPI, si je n'y navigue pas pendant plus de 5 minutes, j'ai de nouveau cette latence de 5 secondes lors de la première action puis tout reviens normal.
Si notre GLPI n'était pas la seule application / site web présentant ce phénomène, j'aurais pensé à un problème de configuration du cluster ou des serveurs web mais ce n'est pas le cas. J'ai tout de même vérifié les logs de IIS et de PHP ainsi que ceux des systèmes hôtes de notre infra HyperV et tout semble normal même au niveau de la charge (il n'y a guère plus de 10 connexions simultanées sur la ferme de serveurs).
J'ai déjà posté le problème sur un forum de la technet de Microsoft, sans réponse à ce jour. Je me lance ici des fois que le problème ait déjà été rencontré.
En vous remerciant par avance.
Last edited by Eric26 (2012-09-25 09:40:13)
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
Voir les actions automatiques qui doivent être en mode glpi, il faudrait les passer en mode CLI => cf la doc
Offline
Merci pour la réponse.
Mais, malgré être passé en mode CLI pour les actions automatiques, cela ne change rien.
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
En partant du principe donné par ddurieux sur le fait que des actions automatiques pourraient générer ces latences, j'ai effectué un test en désactivant toutes les actions programmées. Mais le problème reste le même.
Par ailleurs, les statistiques sur les durées d'exécution de toutes les actions automatiques (si elle avaient lieu toutes en même temps - Ce qui n'est pas le cas) ne dépassent pas les 1.75 secondes. On est donc bien loin des 5 secondes de latences en moyenne. La plus gourmande des actions automatiques est la synchro avec OCS-NG qui à lieu toutes les 30 minutes et qui dure, au maximum, 1 seconde.
D'autres actions récurrentes sont-elles présentes dans le code de GLPI mais pas forcément visibles ?
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
met toi en mode debug, et quand tu tombe sur la page qui est longue a chargée, en bas tu as les requetes SQL avec le temps d'exécution, ça pourrait aider un peu
Offline
C'est ce que j'ai fait depuis le début de mes investigations (me mettre en mode debug). Ce qui est étrange c'est que le temps de génération des pages n'est pas du tout impacté. Et cela se produit sur n'importe quelle page à afficher, à partir du moment ou il y a inactivité de plus de 5 minutes.
J'ai eu l'impression, à un moment, que c'était le navigateur qui mettait du temps à contacter le serveur. Sous Firefox 14.0.1, lorsque le pb de latence se produit, il y a le message "en attente de réponse de ..." pendant 5 secondes. Mais quand la page s'affiche, le temps de génération ainsi que les requêtes en mode debug sont tout à fait corrects et bien inférieurs aux 5 secondes d'attente.
Par exemple, cela s'est produit au moment de l'ouverture de la page d'inventaire des ordinateurs. J'ai attendu un peu moins de 5 seconde cette fois mais les infos du mode débug annoncent :
- Temps totale de génération de la page : 0.217s
- SQL REQUEST : 15 Queries took 0.147s
J'ai aussi testé à partir d'un autre navigateur (IE 9) sans plus de succès et cela se produit sur tous les PC de notre service sans distinction.
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
L'authentification se passe comment ? En SSO ou par l'AD ?
Ton problème semble arriver lors du 1er contact ou après une inactivité assez "longue". Classiquement je dirai un problème de résolution de nom ou quelques choses dans ce gout la, mais au bout de 5 minutes d'inactivité que tu es le même soucis j'y crois pas trop du coup ...
Peut être que pour accéder à GLPI tu as une redirection au niveau de l'adresse, avec une vérification quelques parts ? Ou un soucis de jeton d'identification ?
T'es autres sites ont aussi du PHP ? L'authent' est comment ?
Je suis incapable de te donner une solution vu que je maîtrise pas du tout, mais peut être que je peux ouvrir une piste vers ou fouiller ?
Last edited by Demes (2012-08-23 08:41:37)
Offline
Bonjour Demes et merci pour les pistes.
L'authentification a GLPI se fait par AD mais, si pb il y a de ce côté, la latence ne devrait alors concerner que l'ouverture de session et pas forcément en cours de session. De plus, j'ai conservé une copie de mon GLPI sur l'ancien serveur web (serveur physique dédié sous Win2003, donc pas virtuel et hors cluster) qui fonctionne de la même manière (authentification AD) mais sans le phénomène de latence.
Un défaut de réponse du contrôleur de domaine AD sur la vérification des jetons ? Je n'y crois pas non plus car cela impacterait aussi les connexions des utilisateurs sur les PC.
J'ai d'autres sites/applications en php et qui fonctionnent parfaitement, sans latences :
- PhpMyAdmin : Authentification standard locale
- GRR : Authentification AD
- Une application de gestion du temps de travail : Authentification SSO
Si encore j'avais des logs en rapport avec le problème... Mais je ne trouve rien nulle part. Ni dans les journaux du système, ni dans GLPI, ni dans les logs du cluster et encore moins dans les logs du contrôleur de domaine / serveur DNS...
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
en même temps les log IIS...
Offline
Wireshark ? Je te souhaite bien du courage en tous cas
Offline
en même temps les log IIS...
Oui, très "maigres" lorsque tout va comme il veut. C'est quand IIS rencontre des problèmes (essentiellement de config) qu'on peut avoir des logs. Mais faut chercher...
Si ce n'avait tenu qu'à moi, j'aurai utilisé Apache. Mais nous avons une application web écrite en ASP, optimisée pour IIS et dont on ne peut se passer. Et décision a été prise de conserver tous les sites / applications web sur une même structure. Faut faire avec...
Wireshark ? Je te souhaite bien du courage en tous cas
Wireshark va m'aider à identifier et mesurer les flux sur le réseau mais je doute que j'y trouve la raison de ces latences sauf s'il s'agit d'un pb de connectivité. Dans ce cas, si c'est au niveau du serveur, tous les sites devraient être impactés (et ce n'est pas le cas) et si c'est au niveau du PC, je devrais être le seul à subir les latences (pas le cas non plus)...
En tous cas, merci pour les encouragements
Last edited by Eric26 (2012-08-24 08:34:36)
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
Ca le fait quand même si tu te connecte avec un compte local (genre 'glpi') ?
Offline
Oui. Idem avec des comptes locaux...
A force de chercher la petite bête autour de GLPI et de la config IIS sans rien trouver, je commence à me demander si ce ne serait pas mon cluster à basculement qui serait à l'origine du problème. Mais, dans ce cas, pourquoi GLPI uniquement et pas les autres sites / applications ??
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
peut être que d'une page à une autre ca bascule sur un autre serveur et qu'il doit recréer les variables de session, etc.... si ce n'est pas partagé entre tes serveurs
Offline
En fait, il s'agit d'un cluster à basculement gérant IIS. Cela peut paraitre inhabituel car on trouvera plus souvent un cluster à équilibrage de charge (NLB) dans le cadre d'une ferme de serveurs Web. Mais, dans mon cadre d'emploi, les sites/applications Web hébergées sur cette structure peuvent espérer avoir un (gros) maximum de 200 connexions simultanées; la moyenne étant estimée à 50 connexions. Donc pas besoin d'équilibrage de charge mais, par contre, j'ai besoin de haute disponibilité. D'où le cluster à basculement.
De ce fait, lorsque tout va bien, un seul serveur web de la ferme héberge physiquement les sites ainsi que les bases de donnée. Ce n'est que lorsqu'un site (GLPI, par exemple) ou un service (MySql) devait être inaccessible sur le serveur principal que les ressources basculeraient vers un serveur secondaire du cluster. Il n'y a pas de bascule aléatoire possible (en fonction de la charge, par exemple, dans le cas d'un cluster NLB).
De plus, les variables de session sont liées à l'adresse DNS du cluster et non celle du serveur hébergeant physiquement la ressource. S'il y avait un problème de gestion des sessions, cela devrait également se produire pour tout site/application web utilisant des sessions et des cookies pour l'authentification (ex avec PhpMyAdmin). Mais ce n'est pas le cas...
C'est vraiment bizarre comme comportement. L'idée des actions automatiques me plaisait bien mais, malgré les avoir toutes désactivées, le pb persiste. En plus, en mode debug sous un compte administrateur local à GLPI, les requêtes Sql et les temps de génération des pages reste tout à fait correct malgré la latence observée...
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
(gros) maximum de 200 connexions simultanées, c'est pour l'ensemble de ton serveur IIS ou c'est le maxi par applications?
Quand tu dis "ou un service (MySql) devait être inaccessible", ca veut dire que tu as un serveur mysql sur chaque machine du cluster? Si oui tu synchronise comment tes données?
Offline
C'est 200 connexions max pour l'ensemble du serveur IIS (oui, nous sommes un petite structure ).
Pour MySql, le service est installé sur chaque serveur de la ferme mais un seul est démarré. C'est le cluster à basculement qui gère quel serveur à la ressource et démarre le service. Les données des bases de MySql sont partagées sur un volume de cluster, donc accessible en permanence de tous les services MySql sur tous les serveurs composant le cluster. Donc, pas de synchro nécessaire. J'ai bien entendu testé ce fonctionnement
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
Si tu utilise l'inventaire automatique (ocs ou fusioninventory) attention ca fait des connexions en plus des connexions des utilisateurs
ben je sèche
Offline
Si tu utilise l'inventaire automatique (ocs ou fusioninventory) attention ca fait des connexions en plus des connexions des utilisateurs
Oui mais, justement, je n'utilise pas la synchronisation automatique des matériels inventoriés par OCS. Je lance la synchro manuellement car je préfère maitriser les actions (vieille école )
ben je sèche
Pas mieux... Merci quand même pour les diverses pistes apportées. Je continue de chercher sur divers aspects (cluster, GLPI, IIS,...) si je trouve quelque chose et je posterai ici le cas échéant.
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
Je ne te parle pas dela synchro GLPI - OCS mais bien de l'inventaire automatique agent OCS => serveur OCS
Offline
Ah, çà !
Pas de souci : Je n'ai jamais réussi à faire fonctionner un serveur OCS sous IIS. Il n'est donc pas hébergé sur cette ferme de serveurs. Pour tout dire, le serveur OCS ne présente pas de grande criticité en cas de panne. Je l'ai donc installé sur une machine virtuelle sous Win2003 avec le package XAMP.
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
Bonjour, je vais essayer de t'aider.
Pour OCS, ton pb vient de IIS qui doit probablement être en SSO par défaut, et ce mode n'est pas supporté par l'agent OCS... tu dois donc pouvoir installer un OCS en configurant IIS avec un accès anonymous sur le site OCS.
Pour les latences, j'en ai aussi avec Apache... et après bien des essais et tentatives, j'ai trouvé qu'une part de celles-ci viendrait du SSO entre IE et Apache. J'ai donc monté une config pour que les users std (post-only) soient en SSO et pas les autres (helpdesk) (en fait c'est à la demande : config par user), maintenant les perf sont globalement acceptables.
Si tu veux des précisions, n'hésites pas,
A+
Tomolimo
GLPI 9.5.5 - PHP 7.4 / ProcessMaker 3.3.0-community - PHP 7.1 / Windows 2016 / IIS / MySQL 5.7
Worldwide: >17k Computers, >17k Users (16 languages, >11 timezones), >610k tickets, >6700 entities, >7600 Groups, >20700 process cases
Raynet is ARaymond (https://www.araymond.com) IT service management
Offline
Bonjour tomolimo,
Merci d'essayer de m'aider sur ce pb. Mais tu n'y es pas : Je n'ai pas de SSO entre IIS et Apache parce que je n'ai pas d'Apache. L'Apache monté sous XAMP pour mon serveur OCS est indépendant du reste des serveurs, sans aucune interaction ni SSO.
De plus, la latence en question n'est pas du tout systématique et permanente mais seulement après un certain temps d'inactivité sur le site. Elle ne se reproduit pas sur mon ancien environnement (IIS-PHP-MySql sur serveur unique dédié) mais seulement depuis que j'ai migré sur serveurs virtuels montés comme noeuds d'un cluster à basculement.
Et je pense que c'est là qu'est le problème... Mais pas encore trouvé où exactement ni comment le résoudre...
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline
Bonjour Eric,
En fait, j'ai dû mal m'exprimer, quand je parle de SSO c'est entre un client et un serveur (donc en l'occurence, entre IE et IIS ou entre IE et Apache). Donc pour OCS, si tu veux utiliser un serveur IIS en lieu et place d'un serveur Apache, il te faut utiliser l'authentification Anonyme pour le repertoire OCS (quand il sera dans IIS), car l'agent OCS ne sait pas gerer le SSO.
Pour la latence : est-ce que tu as vérifié le fichier php.ini ?
Cordialement,
Tomolimo
GLPI 9.5.5 - PHP 7.4 / ProcessMaker 3.3.0-community - PHP 7.1 / Windows 2016 / IIS / MySQL 5.7
Worldwide: >17k Computers, >17k Users (16 languages, >11 timezones), >610k tickets, >6700 entities, >7600 Groups, >20700 process cases
Raynet is ARaymond (https://www.araymond.com) IT service management
Offline
En fait, j'ai dû mal m'exprimer, quand je parle de SSO c'est entre un client et un serveur (donc en l'occurence, entre IE et IIS ou entre IE et Apache). Donc pour OCS, si tu veux utiliser un serveur IIS en lieu et place d'un serveur Apache, il te faut utiliser l'authentification Anonyme pour le repertoire OCS (quand il sera dans IIS), car l'agent OCS ne sait pas gerer le SSO.
Effectivement, je n'avais pas essayé les connexions anonymes. Lorsque j'aurai un peu plus de temps, je retenterai d'installer OCS-NG sur IIS. Mais, pour l'instant, mon serveur OCS fonctionne bien comme çà et ce n'est pas le sujet de ce topic
Pour la latence : est-ce que tu as vérifié le fichier php.ini ?
Mon php.ini me semble correct. J'ai activé les paramètres nécessaires à la prise en charge du Fast-CGI (comme recommandé par Microsoft pour l'installation sous IIS) et le memory_limit est à 128M. Je ne vois pas quel paramètre pourrait être en cause d'autant que cela ne touche que GLPI. Un autre site/application web (par exemple, GRR pour ceux qui connaissent) fonctionnent parfaitement et sans latences.
Si tu veux, je peux publier le contenu de mon php.ini ici même si je doute que le problème vienne de là.
Amicalement,
Eric
-------------------------------------------------------------
Prod : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11 -- Test : GLPI 10.0.9 - Serveur IIS8.5 (w2012r2) - PHP 8.1.21 - MySql 5.7.11
Offline