OVH Cloud OVH Cloud

Webservice lenteur

18 réponses
Avatar
Stephane
Bonjour,

J'ai developpé en C# un webservice d'interrogation de base de données
qui fonctionne correctement sauf lors de la première requete : le délai
d'attente pour la réponse est très longue (temps de réponse *4)... Cette
première requête effectuée, toutes les autres ont des délais d'attente
raisonnable (qq dizaine de ms). Le problème se reproduit après un
certain délai de non utilisation.

Il ne s'agit pas d'un problème de requete, cela se produit quelque soit
la requete et les paramètres sélectionnés.

Savez-vous d'où peut venir ce problème ?

Merci pour votre aide
Stéphane

10 réponses

1 2
Avatar
Delf
Stephane a écrit :

Savez-vous d'où peut venir ce problème ?



Normal, le Webservice, lors du premier appel à une de ses requêtes se
charge dans le processus ASPNET_WP (un autre nom sous dotnet 2.0) d'où
la lenteur.

--
Delf
Avatar
Delf
Stephane a écrit :

Le problème se
reproduit après un certain délai de non utilisation.



Note : par défaut, le processus libère les applications Web toutes les
20mins.

--
Delf
Avatar
Delf
Stephane a écrit :

Le problème se
reproduit après un certain délai de non utilisation.



Note : par défaut, le processus libère les applications Web toutes les
20mins.

--
Delf
Avatar
Stephane
Merci pour cette précision

Comment peut-on modifier ce paramétrage ? Le principal client du web
service étant un service de diffusion, il ne peut pas attendre une
réponse aussi longtemps ?


Delf a écrit :
Stephane a écrit :

Le problème se reproduit après un certain délai de non utilisation.




Note : par défaut, le processus libère les applications Web toutes les
20mins.



Avatar
Delf
Stephane a écrit :

Comment peut-on modifier ce paramétrage ? Le principal client du web
service étant un service de diffusion, il ne peut pas attendre une
réponse aussi longtemps ?



Au niveau de la configuration de IIS (dans sa version 6.0) ou dans le
fichier machine.config (dans le répertoire Microsoft.NET) pour la 5.0

--
Delf
Avatar
Arnaud CLERET
En effet, la chargement du processus après un moment d'inactivité peut
occasionner ce type de lenteur. Il faut ajouter aussi à cela le fait que les
dll sont compilées lors de la première exécution pour être transformer du
code IL vers un du code JIT.
Pour éviter ce processus vous pouvez utiliser l'utilitaire fourni dans le
Framework .Net appelé ngen.exe et permettant de générer l'image native de
votre dll.
Voir :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cptools/html/cpgrfnativeimagegeneratorngenexe.asp

--
arno - http://www.dotnetguru2.org/acleret/

"Delf" a écrit dans le message de news:
441e6ab7$0$26214$
Stephane a écrit :

Comment peut-on modifier ce paramétrage ? Le principal client du web
service étant un service de diffusion, il ne peut pas attendre une
réponse aussi longtemps ?



Au niveau de la configuration de IIS (dans sa version 6.0) ou dans le
fichier machine.config (dans le répertoire Microsoft.NET) pour la 5.0

--
Delf


Avatar
Paul Bacelar
Il y a aussi le pooling de connexion de .NET à prendre en compte.

Une première requête ouvre la connexion à la base, celles qui suivent s'en
servent.
--
Paul Bacelar
MVP VC++


"Arnaud CLERET" wrote in message
news:
En effet, la chargement du processus après un moment d'inactivité peut
occasionner ce type de lenteur. Il faut ajouter aussi à cela le fait que
les dll sont compilées lors de la première exécution pour être transformer
du code IL vers un du code JIT.
Pour éviter ce processus vous pouvez utiliser l'utilitaire fourni dans le
Framework .Net appelé ngen.exe et permettant de générer l'image native de
votre dll.
Voir :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cptools/html/cpgrfnativeimagegeneratorngenexe.asp

--
arno - http://www.dotnetguru2.org/acleret/

"Delf" a écrit dans le message de news:
441e6ab7$0$26214$
Stephane a écrit :

Comment peut-on modifier ce paramétrage ? Le principal client du web
service étant un service de diffusion, il ne peut pas attendre une
réponse aussi longtemps ?



Au niveau de la configuration de IIS (dans sa version 6.0) ou dans le
fichier machine.config (dans le répertoire Microsoft.NET) pour la 5.0

--
Delf






Avatar
Paul Bacelar
Il y a aussi le pooling de connexion de .NET à prendre en compte.

Une première requête ouvre la connexion à la base, celles qui suivent s'en
servent.
--
Paul Bacelar
MVP VC++


"Arnaud CLERET" wrote in message
news:
En effet, la chargement du processus après un moment d'inactivité peut
occasionner ce type de lenteur. Il faut ajouter aussi à cela le fait que
les dll sont compilées lors de la première exécution pour être transformer
du code IL vers un du code JIT.
Pour éviter ce processus vous pouvez utiliser l'utilitaire fourni dans le
Framework .Net appelé ngen.exe et permettant de générer l'image native de
votre dll.
Voir :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cptools/html/cpgrfnativeimagegeneratorngenexe.asp

--
arno - http://www.dotnetguru2.org/acleret/

"Delf" a écrit dans le message de news:
441e6ab7$0$26214$
Stephane a écrit :

Comment peut-on modifier ce paramétrage ? Le principal client du web
service étant un service de diffusion, il ne peut pas attendre une
réponse aussi longtemps ?



Au niveau de la configuration de IIS (dans sa version 6.0) ou dans le
fichier machine.config (dans le répertoire Microsoft.NET) pour la 5.0

--
Delf






Avatar
Stephane
Bonjour,

Merci pour cette info... Je génére l'image native de la dll et je teste
les réactions du webservice...

Arnaud CLERET a écrit :
En effet, la chargement du processus après un moment d'inactivité peut
occasionner ce type de lenteur. Il faut ajouter aussi à cela le fait que les
dll sont compilées lors de la première exécution pour être transformer du
code IL vers un du code JIT.
Pour éviter ce processus vous pouvez utiliser l'utilitaire fourni dans le
Framework .Net appelé ngen.exe et permettant de générer l'image native de
votre dll.
Voir :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cptools/html/cpgrfnativeimagegeneratorngenexe.asp



Avatar
Stephane
Bonjour,

Le seul paramètre (IIS6.0 sous 2k3 SP1) qui semble correspondre est le
delai d'expiration de session. S'agit-il bien de celui-là ?
Peut-on forcer le webservice a toujours être chargé en mémoire ?

Le serveur ne fait apparaitre aucun processus ASPNET_WP sous .Net
1.1.4322, est-ce normal ?

Merci pour votre aide
Stéphane

Delf a écrit :
Stephane a écrit :

Comment peut-on modifier ce paramétrage ? Le principal client du web
service étant un service de diffusion, il ne peut pas attendre une
réponse aussi longtemps ?




Au niveau de la configuration de IIS (dans sa version 6.0) ou dans le
fichier machine.config (dans le répertoire Microsoft.NET) pour la 5.0



1 2