Parfois, lorsque j'accède au site Web Windows Azure, le temps de réponse initial est très lent. Après la première page, le site Web est rapide. Un peu d’arrière-plan: le site Web n’est pas très visité à l’heure actuelle De plus, j'utilise un contrôleur keepaliv pour maintenir le site Web en cours d'exécution et le site Web s'exécute en mode partagé. Je me demande: les sites Web qui ne sont pas actifs sont-ils supprimés de la mémoire dans Windows Azure? Ou est-ce simplement que des tâches en arrière-plan au niveau opérationnel de Windows Azure interfèrent parfois? Ce qui se passe n’est pas transparent pour moi. Existe-t-il une solution pour les sites Web Windows Azure?
Une nouvelle fonctionnalité disponible pour les sites Web Windows Azure en mode "Réservé" tiendra votre site Web au chaud. Vous pouvez maintenant activer " Toujours actif " sous l'onglet "Configuration" de votre site Web Azure. Comme expliqué dans this blog post:
Lorsque la nouvelle fonctionnalité «Toujours activé» est activée sur un site, «Windows Azure envoie automatiquement une requête ping à votre site Web afin de s’assurer que Est toujours actif et à l’état chaud/actif, ”Guthrie Écrit. «Cela est utile pour garantir qu'un site est toujours réactif (Et que le domaine de l'application ou le processus de travail ne sont pas paginés en raison d'un manque de De requêtes HTTP externes).»
Le moyen le plus simple de garder un site Web au chaud consiste à l'appeler régulièrement à l'aide de la fonctionnalité Planificateur de Windows Azure Mobile Services.
Vous écrivez simplement un script dans le planificateur qui envoie une requête ping à votre site Web toutes les x minutes.
Voici un article expliquant comment faire cela: http://fabriccontroller.net/blog/posts/job-scheduling-in-windows-Azure/
Les sites Web Windows Azure sont toujours en aperçu. Par conséquent, il n'y a actuellement pas de SLA avec ce service.
Les sites Web sont inactifs en mode libre ou partagé, ce qui correspond probablement à ce que vous voyez. Lorsque le site est inactif, il est en fait supprimé de la mémoire et l'hôte de traitement IIS exécutant le site est arrêté. C'est ainsi qu'ils peuvent obtenir la densité d'hébergement de 100 sites sur le même ordinateur virtuel.
Vous pouvez trouver de nombreuses informations sur le site Channel9 expliquant pourquoi tel est le cas ou, en guise de fiche éhontée, voici un article qui parle de comment le processus est géré .
Vous avez dit que vous utilisiez un contrôleur de suivi, mais qu'entendez-vous exactement par là? J'utilise pingdom.com pour demander en permanence des données à l'un de mes sites Web, ce qui semble bien se dérouler. Il est toujours possible qu’une demande n’arrive pas et que le temps d’inactivité soit respecté, ce qui permet de faire défiler le site. Il est également possible que même si vous avez toujours le site en cours d'exécution que la VM sur les sites de site sur a besoin de mettre à jour le système d'exploitation sous-jacent, auquel cas Azure déplacerait alors le processus du site vers une autre machine virtuelle. également causer le lent démarrage sur la prochaine demande.
Je commencerais à consigner les démarrages de vos applications, puis jetterai un coup d'oeil dans vos journaux pour voir à quelle fréquence.
Si vous ne devez le réchauffer qu’une seule fois (par opposition au maintien au chaud) et essayez surtout d’empêcher vos clients d’être confrontés à des démarrages à froid, je pense que l’outil approprié est IIS Initialisation de l’application . Vous pouvez le configurer avec une liste d'URL à frapper avant de juger que l'application est prête pour l'action.
Mon site souffre de pages froides et cela est considérablement amplifié dans les sites Web Azure (même sur un S3), mais il est absolument rapide après sa première utilisation grâce à plusieurs couches de mise en cache (notre utilisation inefficace du langage de requête de nœuds dynamiques d'Umbraco crée beaucoup de désabonnement de base de données - que nous nettoyons de manière opportuniste).
D'après ce que j'ai lu et mes propres tentatives web.config, cela n'est toujours pas disponible dans les sites Web Azure. Je l’ai demandé à Microsoft ici: MS IDEA: Initialisation d’application pour réchauffer des pages spécifiques au démarrage du pool d’applications . S'il vous plaît envisager de voter pour cela.
Pour chaque service/site, vous devez aller dans "Configurer", puis basculer "Toujours actif" sur ON. Assurez-vous également de cliquer sur Enregistrer; Il a fallu environ 2 minutes à mon site Web avant de constater le changement.
Pourquoi ce n’est pas la valeur par défaut est ahurissant, car ma configuration sur HostGator s’exécutait beaucoup plus rapidement qu’Azure. J'imagine que Microsoft pense que si personne n'a accès à votre site, le temps de chargement est correct.