web-dev-qa-db-fra.com

Que pouvez-vous faire pour accélérer IIS 7 sites Web?

Activez la compression et vous constaterez des améliorations immédiates des performances, même si vous activez la mise en cache pour des applications Web complexes.

Quelles autres options de configuration pouvez-vous modifier pour améliorer les performances? avez-vous une "liste de contrôle des performances" d'éléments à définir lorsque vous obtenez un nouveau serveur?

Je pose une question sur IIS 7 ou version ultérieure (car tous mes serveurs actuels sont IIS7)

5
Nir

IIS7 + est vraiment très rapide. Vous ne pouvez pas faire grand chose pour accélérer IIS; en général, vous optimisez le code HTML , JS, images, CSS, HTTP, en-têtes HTTP et éventuellement code d'application Web (C #, etc.) . Ces questions sont multi-plateformes. L’interface utilisateur est bien sûr différente entre Apache et IIS, mais les connaissances sont sensiblement les mêmes.

Steve Souders a littéralement écrit le livre sur la manière de rendre les sites Web plus rapides . C'est une lecture rapide et facile. Voici un résumé/check-list gratuit comme vous l'avez demandé , et vous trouverez un exposé sur YUI Theatre (pas le plus grande présentation).

Pour ceux qui ne cliquent pas sur les liens, les 14 règles originales (qui peuvent également être trouvées sur le réseau de développeurs Yahoo!) Sont les suivantes:

  1. Faire moins de requêtes HTTP
  2. Utiliser un réseau de diffusion de contenu
  3. Ajouter un en-tête Expires
  4. Composants Gzip
  5. Placez les feuilles de style en haut
  6. Mettez les scripts en bas
  7. Évitez les expressions CSS
  8. Rendre JavaScript et CSS externe
  9. Réduire les recherches DNS
  10. Minify JavaScript
  11. Éviter les redirections
  12. Supprimer les scripts en double
  13. Configurer les ETags
  14. Rendre AJAX Cacheable

Le deuxième livre de Steve est également bon , mais insiste davantage sur le comportement spécifique de Javascript et du navigateur. Le premier livre est plus universellement applicable, et les modifications apportées dans le premier livre ont le plus grand impact.

7
Jesper Mortensen

Les conseils de Jesper ci-dessus constituent d'excellentes suggestions pour accélérer les pages Web statiques.

Si vous exécutez une application ASP.NET, vous pouvez également effectuer certaines tâches si votre site Web rencontre des problèmes de performances dus au chargement:

  • Surveillez votre serveur. ASP.NET publie de nombreux compteurs pouvant être surveillés dans PerfMon.exe. Le compteur Global Request Queue vous indiquera si des demandes sont en attente. Ce nombre doit toujours être 0.
  • Optimisez les appels aux ressources externes telles que les bases de données et les systèmes de fichiers. Les longues requêtes lient les threads et empêchent le traitement des requêtes entrantes
  • Si vos appels aux ressources externes sont longs, envisagez de les rendre asynchrones. Cela transfère la demande à un pool de threads séparé et renvoie le thread d'origine au pool pour répondre aux nouvelles demandes.
  • Augmentez la taille du pool de threads pour les anciennes versions de .NET. Ce paramètre peut être trouvé dans le fichier machine.config
  • Configurez l'option de jardin Web dans votre pool d'applications IIS afin qu'elle utilise plusieurs processus de travail (option Processus de travail maximum dans les paramètres avancés IIS7). Jouez avec différents réglages pour voir ce qui convient le mieux à votre environnement. Les machines multicœurs seront mieux à même de gérer de multiples processus de travail.
  • Sur une machine virtuelle, n'attribuez pas trop de cœurs au serveur car cela pourrait entraîner des problèmes d'allocation sur votre hôte.
  • Si vous avez essayé toutes ces solutions et que vous rencontrez toujours des problèmes de charge, envisagez de mettre en cluster votre serveur. Windows Server intègre l'équilibrage de la charge réseau, ce qui vous permet de configurer une petite batterie de serveurs Web sans avoir besoin d'un équilibreur de charge matérielle coûteux. IIS7 inclut également le cadre de batterie de serveurs Web, qui réalise la même chose en utilisant le routage de demande d'application (ARR). Il gère également la mise en service du serveur.

Une recherche rapide sur Internet sur l’une de ces questions vous donnera beaucoup d’informations utiles.

1
Aidan Black

Les paramètres magiques sont normalement spécifiques au site. Vous devrez surveiller ce qui se passe afin de trouver les bonnes questions sur ce qu'il faut changer dans IIS7.

Quelle partie de la chaîne de performance est la plus faible?

ou

Que pouvez-vous faire pour obtenir une visibilité granulaire de manière accessible?

Jesper Mortensen a tout à fait raison les deux livres de Steve sont une excellente lecture et représentent une augmentation de vitesse récente de 5,5 à 1,8 secondes ( webpagetest ) sur un site nous maintenons. La stabilisation de l’ensemble du système à l’aide de journaux nous a permis de maintenir la livraison stable lors des essais et de monter en puissance au maximum (plus de 50% de cette quantité s’appliquait au niveau du système d’exploitation). Rien de tout cela n'aurait pu être fait en 2 jours sans surveillance à tous les niveaux.

Il n’existe souvent pas de liste de contrôle pour chaque site après le travail de Steve Sounders, vous devez connaître le problème avant de chercher la solution.

0
Metalshark

Nous implémentons le module ARR dans IIS7. Nous créons donc une webFarm. ARR peut mettre en cache votre demande sur disque et améliorer les performances, ce qui fait une grande différence pour nous.

Dans la page html, vous pouvez également utiliser plusieurs sous-domaines pour vos médias, par exemple:

js.votredomaine.com img.votredomaine.com css.votredomaine.com

etc .. Navigateur le-à-dire, et je pense que d'autres télécharger simultanément 3 connexion par sous-domaine.

0
Cédric Boivin