Comment évaluer un site Web avec Firefox, Siege et Sproxy sur Ubuntu 16.04

introduction

Siege est un outil configurable d’analyse comparative et de test pour les sites Web qui teste les serveurs Web en effectuant des demandes de pages Web. Le nombre de pages par seconde pouvant être défini par les demandes de siège peut varier de quelques pages par seconde au nombre maximal que le site Web peut gérer.

Ces informations sont extrêmement utiles pour identifier les goulets d’étranglement des performances en indiquant quelle ressource de serveur est épuisée en premier et à quel niveau de trafic. Armés de ces informations, vous pouvez modifier la configuration du serveur ou mettre à niveau le matériel du serveur avant la défaillance d’un site actif. En outre, les procédures d’administration système courantes, telles que les sauvegardes, peuvent être testées sous une charge simulée pour déterminer leur effet sur les performances du site Web.

Dans ce guide, nous allons installer et configurer Siege pour qu’il s’exécute en mode analyse comparative et en mode navigation. Le mode d’analyse comparative fait autant de demandes que le serveur Web peut gérer, et le mode de navigation simule un nombre configurable de visiteurs sur le site Web.

La configuration d’une connexion Internet exécutée sur un serveur proxy étant particulièrement simple avec Firefox, nous l’utiliserons pour nous connecter à Internet via le serveur proxy Sproxy. Sproxy, spécialement créé pour fonctionner avec Siege, enregistre l’URL de chaque demande qui la transmet à un fichier. Nous utiliserons ce fichier pour indiquer à Siege les URL à tester.

Dans la première partie de ce didacticiel, nous allons installer Sproxy et configurer Firefox pour qu’il se connecte à Internet via ce dernier. À partir de là, nous générerons une liste d’URL sur lesquelles le test de siège sera effectué, et enfin, nous examinerons les résultats du test et identifierons les goulots d’étranglement liés aux performances.

Conditions préalables

Pour compléter ce tutoriel, vous aurez besoin de:

  • Un serveur Ubuntu 16.04 a été configuré comme suit: this tutoriel sur la configuration initiale du serveur Ubuntu 16.04, avec utilisateur root et un pare-feu. Assurez-vous d’ouvrir le port + 8080 + dans le lien: # step-7-% E2% 80% 94-comprehension-siege’s-results [Étape 7] du tutoriel de configuration initiale du serveur avec la commande `+ sudo ufw allow 8080+ `. C’est le port que Sproxy écoute par défaut.

  • Firefox installé. Si vous utilisez macOS ou Windows sur votre ordinateur local, vous devez télécharger le fichier d’installation à partir du site official Mozilla. Si vous utilisez Linux, utilisez votre gestionnaire de paquets ou suivez les instructions Mozilla pour installer Firefox. Ce tutoriel contient des instructions pour travailler avec Firefox version 56.

  • Un site Web que vous possédez ou avez l’autorisation de tester est disponible publiquement ou que vous pouvez rendre accessible à partir du serveur sur lequel vous avez installé Siege.

Étape 1 - Construction et installation de Sproxy

Sproxy n’est pas disponible sous forme de fichier binaire préemballé. Vous devrez donc le télécharger à partir de son site officiel, puis le construire à partir des sources.

Le processus de construction de Sproxy reposant sur des outils qui ne sont pas installés par défaut sur Ubuntu, vous devrez installer des packages supplémentaires.

Tout d’abord, mettez à jour votre liste de paquets pour vous assurer d’obtenir la version la plus récente de chaque paquet supplémentaire.

sudo apt-get update

Ensuite, installez les packages.

sudo apt-get install build-essential libnet-ssleay-perl liburi-perl libwww-perl

+ build-essential + fournit les bibliothèques générales et les outils nécessaires à la création de logiciels sur les distributions Linux basées sur Debian, tandis que les bibliothèques + libnet-ssleay-perl +, + liburi-perl + et + libwww-perl + pour le langage de programmation Perl sur lequel Sproxy s’appuie pour établir des connexions via SSL, manipuler des chaînes d’URI et se connecter au Web.

Maintenant, accédez à votre répertoire personnel et téléchargez l’archive du code source Sproxy depuis son site officiel.

cd ~
curl -O http://download.joedog.org/sproxy/sproxy-latest.tar.gz

Ensuite, créez un répertoire nommé + sproxy + pour créer Sproxy et décompressez l’archive de code source dans le nouveau répertoire.

mkdir sproxy
tar -zxf sproxy-latest.tar.gz --strip-components=1 --directory="sproxy"

Ici, l’option + -zxf + indique à tar la commande + gunzip + et extrait le contenu du fichier + sproxy-latest.tar.gz +. L’option + - strip-components = 1 + supprime le premier composant de chaque nom de fichier. Cela décompresse l’archive dans le répertoire + sproxy + - spécifié par l’option + - directory + - plutôt que dans + sproxy- / sproxy / +.

Passez maintenant au répertoire + sproxy + pour construire et installer Sproxy avec les commandes + configure + et + make +.

cd sproxy
./configure
make
sudo make install

La commande +. / Configure + vérifie que toutes les dépendances de programme et outils de génération nécessaires sont présents sur le système. La commande make + construit ensuite les fichiers binaires du programme. Enfin, la commande + make install + copie les nouveaux fichiers binaires vers leur emplacement correct sur le serveur. Puisque Sproxy crée un nouveau répertoire dans + / usr / local / lib / sproxy / JoeDog +, vous devez exécuter + make install + avec les privilèges root.

Enfin, vérifiez que Sproxy fonctionne correctement en retournant dans votre répertoire personnel pour démarrer Sproxy en mode commenté avec l’option + -v +.

cd ~
sproxy -v

La sortie vous indique le port sur lequel Sproxy écoute, l’emplacement du fichier sur lequel Sproxy écrit la sortie et le nombre de secondes qu’il attend pour une réponse d’un hôte distant.

Sproxy OutputSPROXY v1.02 listening on port 9001
...appending HTTP requests to: /user/urls.txt
...default connection timeout: 120 seconds

Si Sproxy ne parvient pas à démarrer, consultez les messages de votre terminal pour savoir ce qui ne va pas.

Une fois que vous avez vérifié que tout fonctionne, arrêtez Sproxy avec + CTRL + C +.

Sproxy est maintenant prêt à être utilisé. Modifions Firefox pour qu’il se connecte à Internet via Sproxy afin de créer une liste des URL à comparer avec Siege.

Étape 2 - Configuration de Firefox pour utiliser Sproxy

Nous allons maintenant changer la configuration de réseau de Firefox pour envoyer toutes les requêtes Web via Sproxy, générant ainsi la liste des cibles de benchmarking dont nous aurons besoin pour Siege.

Parce que nous voulons que Sproxy enregistre toutes les URL que nous visitons, nous allons également vider le cache Web local de Firefox. Le cache Web est un magasin local d’images et d’autres contenus statiques provenant de sites Web déjà visités par Firefox. Par défaut, Firefox ne redemande pas les ressources de site Web déjà mises en cache.

Modification des paramètres réseau

Commencez par modifier les paramètres * Proxy réseau * sous l’onglet * Général * de l’écran principal * Préférences * de Firefox.

  1. Ouvrez Firefox. (Ce tutoriel comprend des instructions pour * Firefox version 56 *. Pour les autres versions, voir Firefox, la documentation officielle de support.)

  2. Cliquez sur le menu hamburger dans le coin supérieur droit de l’écran et sélectionnez * Préférences * pour accéder à l’écran * Général *.

  3. Faites défiler vers le bas de la page et localisez la section * Proxy réseau *.

  4. Cliquez sur le bouton * Paramètres… * pour ouvrir le panneau * Paramètres de connexion *.

image: http: //assets.digitalocean.com/articles/benchmarking-with-siege/firefox-network-proxy.png [Image montrant le bouton permettant de sélectionner les paramètres du proxy]

Dans ce panneau, configurez Firefox pour qu’il transmette toutes ses demandes via le serveur proxy que vous avez installé dans le lien: # step-1-% E2% 80% 94-building-and-installation-sproxy [Étape 1].

  1. Sélectionnez * Configuration manuelle du proxy *.

  2. Entrez l’adresse IP publique de votre serveur Sproxy dans le champ * HTTP Proxy *.

  3. Définissez le numéro de port sur + 8080 + dans le champ * Port *.

  4. Cliquez sur * OK * pour enregistrer les modifications.

image: http: //assets.digitalocean.com/articles/benchmarking-with-siege/firefox-connection-settings.png [Image montrant le panneau des paramètres de connexion de Firefox avec des champs renseignés]

Vous avez maintenant configuré Firefox pour utiliser votre serveur proxy HTTP Sproxy, vous êtes donc prêt à vider le cache local.

Effacement du cache local

Firefox fait référence au cache local en tant que * contenu Web hors connexion *. Il se trouve dans la section * Confidentialité et sécurité * de l’écran * Préférences * de Firefox.

  1. Cliquez sur le menu hamburger dans le coin supérieur droit de l’écran et sélectionnez * Préférences * pour accéder à l’écran * Général *.

  2. Cliquez sur * Confidentialité et sécurité * dans la partie gauche de l’écran.

  3. Faites défiler vers le bas de la page et localisez la section * Contenu Web hors connexion et données utilisateur * et appuyez sur le bouton * Effacer maintenant *.

image: http: //assets.digitalocean.com/articles/benchmarking-with-siege/firefox-offline-web-content.png [Image montrant le bouton d’effacement du cache]

Votre cache Web est maintenant vide. L’adresse de chaque actif de site Web basé sur HTTP rencontré par Firefox sera transmise à Sproxy jusqu’à ce que cet actif soit remis en cache.

Test de la configuration

Firefox est maintenant configuré pour acheminer toutes les requêtes HTTP via Sproxy, mais vous avez arrêté Sproxy avec + CTRL + C + à la fin du lien: # step-1-% E2% 80% 94-building-and-installation-sproxy [Étape 1]. Ainsi, vous verrez une page d’erreur si vous essayez de visiter un site Web via une connexion HTTP avec Firefox dès maintenant.

image: http: //assets.digitalocean.com/articles/benchmarking-with-siege/firefox-refusing-connections.png [Image montrant un message d’erreur Firefox]

Si vous ne voyez pas ce message d’erreur, vérifiez que vos paramètres Firefox correspondent aux captures d’écran précédentes et vérifiez à nouveau que vous ne vous connectez pas au site Web via HTTPS.

Si vous souhaitez utiliser Firefox à nouveau normalement, suivez à nouveau les instructions précédentes concernant le lien: # step-2-% E2% 80% 94-configuration-firefox-to-use-sproxy [Modification des paramètres réseau], mais cette fois , sélectionnez l’option * Pas de proxy * sur le panneau * Paramètres de connexion *.

Maintenant que nous avons configuré Firefox pour se connecter à Internet via Sproxy, nous pouvons créer une liste d’URL en démarrant Sproxy et en parcourant le site Web cible avec Firefox.

Étape 3 - Démarrer Sproxy et générer une liste d’URL

Dans cette étape, nous allons démarrer le serveur Sproxy et utiliser Firefox pour naviguer sur le site Web cible. Sproxy enregistrera chaque URL basée sur HTTP que Firefox demande à un fichier que nous utiliserons plus tard avec Siege.

Tout d’abord, accédez à votre répertoire personnel et démarrez Sproxy.

cd ~
sproxy -v -t 180 -p 8080 -o mixed-urls.txt
  • + -v + affiche les URL demandées au terminal.

  • + -t + est le nombre de secondes pendant lequel Sproxy attendra une réponse d’un hôte distant.

  • + -p + est le port sur lequel Sproxy écoutera.

  • + -o + est le fichier dans lequel Sproxy écrira les URL.

  • ++ est l’adresse IP à laquelle Sproxy se liera.

La sortie vous indique immédiatement la version de Sproxy que vous exécutez, le port sur lequel Sproxy écoute, le fichier sur lequel Sproxy écrit les URL et la durée pendant laquelle Sproxy attendra qu’un hôte distant réponde. Une fois que vous avez commencé à naviguer sur le site Web de test, le résultat inclura également les URL des pages Web enregistrées par Sproxy.

Sproxy OutputSPROXY v1.02 listening on port 8080
...appending HTTP requests to: mixed-urls.txt
...default connection timeout: 180 seconds
http:///
http:///index.html
http:///about.html

Après avoir démarré Sproxy, revenez dans Firefox et commencez à naviguer sur le site cible. Sproxy écrira chaque URL demandée par Firefox dans le fichier + mixed-urls.txt + tout en imprimant simultanément les URL sur le terminal.

Une fois que vous avez visité toutes les pages Web que vous prévoyez de tester, arrêtez Sproxy avec + CTRL + C +.

Vous avez maintenant une liste dans le fichier + mixed-urls.txt + de chaque URL basée sur HTTP que Firefox a rencontrée sur le site Web de test. L’étape suivante consiste à supprimer les URL qui ne sont pas résolues sur votre site Web afin de vous assurer que vous utilisez uniquement Siege contre des domaines autorisés.

Étape 4 - Désinfection du fichier URL

Les sites Web modernes hébergent souvent du contenu à plusieurs endroits. Ce contenu peut être des images hébergées sur un réseau de distribution de contenu (CDN) ou des polices hébergées sur un service tiers tel que Google. Lorsque nous exécutons Siege, nous voulons nous assurer que nous ne faisons que comparer les domaines que nous sommes autorisés à tester. Par conséquent, nous devons supprimer toutes les URL du fichier + mixed-urls.txt + qui ne pointent pas vers le site Web cible.

Utilisez grep, un utilitaire permettant de rechercher du texte brut sur l’utilisateur spécifié regular expressions, pour rechercher uniquement les URL correspondant à votre domaine de test et à https://www.digitalocean.com/ community / tutorials / an-introduction-to-linux-io-redirection # stream-redirection [rediriger les résultats] vers un nouveau fichier nommé + urls.txt +.

grep -a "^http://" mixed-urls.txt > urls.txt

L’indicateur + -a + indique à grep de traiter un fichier binaire comme un fichier texte. Cela est nécessaire car les navigateurs font parfois des requêtes POST contenant des données binaires, que Sproxy écrirait ensuite dans + mixed-urls.txt +. S’il existe des données binaires dans + mixed-urls.txt +, grep échouerait sans l’indicateur + -a +.

En termes d’expression régulière, le caractère + ^ + indique que les chaînes doivent commencer par + http: // + pour être considérées comme une correspondance.

Cette commande ne produira aucune sortie dans le terminal, mais créera un nouveau fichier appelé + urls.txt +.

Maintenant, ouvrez + urls.txt + pour vous assurer que chaque ligne commence par le nom de domaine de votre site Web test et supprimez toutes les lignes qui n’en contiennent pas.

nano urls.txt

Enregistrez vos modifications et fermez le fichier lorsque vous avez terminé vos modifications.

Votre liste d’URL ne contient plus que les URL que vous êtes autorisé à tester. Nous sommes donc prêts à installer Siege. Si vous souhaitez également analyser votre site Web via HTTPS, suivez les instructions facultatives décrites dans le lien: # step-5-% E2% 80% 94-creation-an-https-url-file- (facultatif) [Étape 5] pour créer un deuxième fichier URL contenant les versions HTTPS de vos URL.

Étape 5 - Création d’un fichier URL HTTPS (facultatif)

De nombreux sites Web fonctionnent à la fois sur HTTP et HTTPS ou même sur HTTPS exclusivement. Il est donc important que vous puissiez également analyser votre site Web sur HTTPS. C’est quelque chose que Siege peut faire. Il suffit de lui donner une liste d’URLs commençant par + https +.

Premièrement, utilisez la commande + cat + pour ouvrir + urls.txt + et passer son contenu à sed, un utilitaire d’analyse et de transformation de texte. sed remplacera toutes les occurrences de + http par` + https` et affichera les résultats dans le terminal.

cat urls.txt | sed 's|http|https|'

La sortie sera la même liste d’URL que vous avez déjà dans le fichier + urls.txt +, sauf que chacune des URL émises commencera par + https +.

Example Output:///
:///index.html
:///about.html

Une fois que vous avez vérifié la sortie, relancez la commande, en écrivant cette fois la sortie dans un nouveau fichier appelé + urls-https.txt +.

cat urls.txt | sed 's|http|https|'

Cette commande ne produira aucune sortie vers le terminal, car elle a été redirigée vers + urls-https.txt +.

Maintenant que nous avons la liste des URL mise à jour, nous sommes prêts à installer Siege et à commencer les tests.

Étape 6 - Analyse comparative et test avec Siege

Avant de pouvoir commencer à tester votre site Web, vous devez d’abord installer Siege.

Siege est disponible à partir des référentiels de paquets Ubuntu standard, pour l’installer avec + apt-get.

sudo apt-get install siege

Siege a deux modes de fonctionnement: Internet et benchmark. Le mode Internet simule les visiteurs naviguant sur le site Web cible, tandis que le mode repère effectue les demandes aussi rapidement que le serveur Web peut le gérer. Nous allons d’abord exécuter Siege en mode Internet.

Le mode Internet est utile pour augmenter progressivement la charge du serveur en augmentant le nombre de visiteurs simultanés au fil du temps. Ce mode peut également créer une charge soutenue pendant une longue période, ce qui est utile si vous devez savoir ce qui se passe pour les performances de votre site Web lors d’opérations telles que la création de sauvegardes.

Accédez à votre répertoire personnel et démarrez Siege en mode Internet. Si vous souhaitez tester des adresses uniquement HTTP, remplacez `` par `+ urls.txt +`. Si vous avez suivi le lien: # step-5-% E2% 80% 94-creation-an-https-url-file- (facultatif) [Étape 5] et que vous souhaitez tester les adresses HTTPS, remplacez «» par « + urls-https.txt + `.

cd ~
siege --internet --concurrent=5 --time=30S --log="siege-internet.log" --file=""
  • + - internet + met Siege en mode Internet.

  • + - concurrent + est le nombre de visiteurs à simuler. Dans cet exemple, Nous avons demandé à Siege de simuler 5 utilisateurs simultanés pour générer du trafic sans surcharger le serveur. Au fur et à mesure que vous vous familiariserez avec les fonctionnalités de votre serveur, vous pourrez augmenter ce nombre si nécessaire.

  • + - time + est la durée de fonctionnement de Siege. Cette valeur peut être définie avec «+ S » pour les secondes, « M » pour les minutes et « H +» pour les heures. Dans cet exemple, nous avons demandé à Siege de s’exécuter pendant 30 secondes, encore une fois, pour générer du trafic sans surcharger le serveur. À l’avenir, vous pourrez expérimenter avec différentes durées pour voir comment votre serveur répond à une charge de trafic soutenue.

  • + - log + est le chemin d’accès à l’emplacement où Siege doit écrire ses résultats de test. Par défaut, cet emplacement est + / var / log / siege.log + et nécessite des privilèges sudo.

  • + - fichier + est le chemin d’accès au fichier contenant les URL que Siege utilisera pour le test.

Lorsque vous démarrez Siege pour la première fois, il indique le numéro de version que vous utilisez et le nombre d’utilisateurs simultanés simulés. Ensuite, il vous indique que le test a commencé.

Siege Output at Start of Run** SIEGE 3.0.8
** Preparing 5 concurrent users for battle.
The server is now under siege...

Une fois que Siege a terminé son exécution ou est terminé par + CTRL + C +, il affichera également les résultats du test ainsi que l’emplacement du fichier journal des résultats.

Siege Output at End of Run...
Lifting the server siege...      done.

Transactions:                    157 hits
Availability:                 100.00 %
Elapsed time:                  29.72 secs
Data transferred:               0.15 MB
Response time:                  0.49 secs
Transaction rate:               5.28 trans/sec
Throughput:                     0.01 MB/sec
Concurrency:                    2.59
Successful transactions:         161
Failed transactions:               0
Longest transaction:            0.74
Shortest transaction:           0.27

FILE: siege-internet.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive 'show-logfile' to false.

Comme les statistiques incluses dans le résultat sont complexes, nous les explorerons plus en profondeur dans le lien suivant: # step-7-% E2% 80% 94-Comprendre le siège des résultats [Étape 7].

Maintenant, exécutons Siege en mode benchmark pour découvrir le nombre maximal de demandes de page que le site est capable de traiter à la fois. Ces informations sont utiles lorsque vous essayez de choisir les technologies supplémentaires susceptibles d’améliorer les performances de votre site Web. De plus, le mode de référence peut mettre en évidence les goulots d’étranglement des ressources, comme vous le constaterez plus loin dans le lien: # step-8-% E2% 80% 94-identifier-performance-goulots d’étranglement [Étape 8].

Relancez Siege, cette fois en mode benchmark, en utilisant + - benchmark au lieu de` + - internet`.

siege --benchmark --time=30S --log="siege-benchmark.log" --file=""

La sortie suit le même format qu’auparavant, sauf que cette fois, les résultats sont différents car le mode était différent.

Siege Output** SIEGE 3.0.8
** Preparing 5 concurrent users for battle.
The server is now under siege...
Lifting the server siege...      done.

Transactions:                    444 hits
Availability:                 100.00 %
Elapsed time:                  29.72 secs
Data transferred:               18.16 MB
Response time:                  0.49 secs
Transaction rate:               105.28 trans/sec
Throughput:                     4.41 MB/sec
Concurrency:                    14.14
Successful transactions:         421
Failed transactions:               0
Longest transaction:            0.74
Shortest transaction:           0.27

FILE: siege-benchmark.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive 'show-logfile' to false.

Comme avec les statistiques du mode Internet, les statistiques du mode de référence sont complexes. Nous allons les explorer en profondeur dans le lien: # step-7-% E2% 80% 94-Comprendre-résultats du siège [Étapes 7] et lien: # step-8-% E2% 80% 94-identifier-performance- goulots d’étranglement [8].

Maintenant que nous avons testé et référencé votre site avec Siege, nous pouvons explorer les résultats de manière plus détaillée et utiliser les statistiques de manière pratique.

Étape 7 - Comprendre les résultats du siège

S’agissant de comprendre les performances de votre site Web, d’identifier les goulots d’étranglement et de décider où concentrer vos efforts de mise à niveau, Siege peut être un puissant atout. Les statistiques qu’il fournit couvrent une gamme de paramètres permettant d’obtenir une connaissance approfondie de la santé globale de votre site Web.

Comme nous l’avons vu dans le lien suivant: # step-6-% E2% 80% 94-benchmarking-and-testing-with-Siegege [Étape 6], la production de Siege se présente généralement comme suit:

Siege Output at End of Run...
Transactions:                    904 hits
Availability:                  97.41 %
Elapsed time:                   4.59 secs
Data transferred:               4.37 MB
Response time:                  0.07 secs
Transaction rate:             196.95 trans/sec
Throughput:                     0.95 MB/sec
Concurrency:                   12.86
Successful transactions:         904
Failed transactions:              24
Longest transaction:            1.95
Shortest transaction:           0.00
...

Spécifiquement, ces métriques signifient:

  • + Transactions + est le nombre total de demandes effectuées par Siege.

  • + Disponibilité + est le pourcentage des demandes auxquelles le serveur Web a répondu, y compris https://www.digitalocean.com/community/tutorials/how-to-troubleshoot-common-http-error-codes#400-bad- request [codes d’erreur HTTP de niveau 4xx et 5xx].

  • + Le temps écoulé + est la durée d’exécution du test.

  • + Données transférées + est la quantité totale de bande passante utilisée par Siege pour tester le site.

  • + Temps de réponse + est la durée moyenne de réponse du serveur Web.

  • + Taux de transaction + est le nombre moyen de transactions que le serveur Web a effectuées par seconde.

  • + Débit + est la quantité de données par seconde que le serveur Web a servi.

  • + Simultané + est le nombre moyen de connexions simultanées ouvertes.

  • + Transactions réussies + est le nombre total de transactions auxquelles on a répondu avec un code d’état HTTP de moins de 400.

  • + Transactions échouées + est le nombre total de transactions auxquelles on a répondu avec des codes de statut HTTP https://www.digitalocean.com/community/tutorials/how-to-troubleshoot-common-http-error-codes#400-bad -quande [supérieure à 400].

  • + La transaction la plus longue + est le temps que la demande la plus longue a pris pour être complétée.

  • + Transaction la plus courte + est le temps que la demande la plus courte a pris pour être complétée.

+ Taux de transaction + et les + transactions échouées + fournissent le test décisif le plus rapide de la santé globale de votre serveur Web.

Le «+ taux de transaction +» représente la vitesse de votre site Web, car il s’agit du nombre de pages par seconde que votre serveur Web peut servir. Plus ce nombre est élevé, plus le nombre de visiteurs que votre site Web peut gérer et plus vite les visiteurs recevront chaque page. Si vous utilisez Siege pour améliorer la réactivité générale de votre site Web, vous devez augmenter ce nombre.

La valeur + transactions échouées + fait référence à toute réponse du serveur Web contenant un code d’erreur, tel que +503 Service non disponible +. Ces erreurs signalent souvent des problèmes tels qu’une base de données incapable de gérer le nombre de demandes reçues ou un serveur Web à court de RAM. Si ce nombre est différent de zéro, consultez les fichiers journaux de votre serveur Web pour connaître exactement les erreurs qui se sont produites et pour savoir comment résoudre ces problèmes.

Lorsque vous apportez des modifications pour augmenter votre + taux de transaction + et réduire vos + transactions échouées + au fil du temps, n’oubliez pas de consulter le fichier journal créé à chaque exécution de Siege, car il inclut toutes les statistiques que vous voyez dans votre terminal ainsi que la date et l’heure du test. Cela vous aidera à suivre la trajectoire globale de vos efforts.

Maintenant que nous avons examiné les résultats de Siege pour déterminer la rapidité et la robustesse de votre serveur Web, il est temps de voir comment nous pouvons utiliser ces mêmes informations pour identifier et supprimer les goulots d’étranglement liés aux performances.

Étape 8 - Identification des goulots d’étranglement des performances

En mode de test, Siege effectue autant de demandes par seconde que le serveur Web est capable de répondre. Lorsque le serveur atteint le nombre maximum de pages qu’il peut servir, il a atteint une limite de ressources.

Les quatre ressources les plus susceptibles d’être affectées sont:

  1. RAM

  2. CPU

  3. Disk

  4. Bande passante réseau

Pour tirer le meilleur parti du mode benchmark, vous devez exécuter quelques outils supplémentaires en même temps que Siege afin de pouvoir surveiller ce qui se passe sur votre système à mesure que Siege augmente sa charge de test.

Vous pouvez surveiller les trois premières ressources - utilisation de la RAM, de l’UC et du disque - avec top, un outil qui fournit une vue dynamique en temps réel des ressources du système.

Ubuntu est livré avec top par défaut, vous n’avez donc pas besoin de l’installer. Il suffit de lancer la commande + top +.

Les informations affichées en haut sont divisées en deux sections.

Sample top Outputtop - 21:02:32 up 50 min,  1 user,  load average: 0.07, 0.02, 0.00
Tasks: 102 total,   1 running, 101 sleeping,   0 stopped,   0 zombie
 0.0 ni, 99.3 id,  8.3 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   1015200 total,    63536 free,    431456 used,   520208 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   512308 avail Mem

 PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
3249 www-data     20   0   469592   92276   33488 D  24.6  9.1   0:05.01 apache2
3239 www-data     20   0   442836   75080   41896 S  5.6  7.4   1:31.97 apache2
3572 www-data     20   0   424372   35272   21164 S  4.0  3.5   0:02.69 apache2

La section supérieure, composée des cinq premières lignes de sortie, montre un résumé de l’utilisation actuelle du système.

La partie inférieure affiche une liste des processus de serveur individuels en cours d’exécution sur le système, ainsi que le numéro d’identification, le propriétaire, la priorité, la valeur de valeur, l’utilisation de la mémoire virtuelle, l’utilisation de la mémoire physique, l’utilisation de la mémoire partagée, l’état, le pourcentage d’utilisation du processeur, pourcentage d’utilisation de la mémoire, durée totale d’activité et nom.

While top est un outil utile pour les managing processus et les https : //www.digitalocean.com/community/tutorials/how-to-monitor-cpu-use-on-digitalocean-droplets#monitoring-the-cpu [surveillance de l’utilisation de la CPU], dans ce cas, nous voulons voir ce que cela peut nous parler de notre système sous la contrainte d’un test de référence du siège.

L’utilisation de la CPU se lit comme suit: +% Cpu (s): 37.3 us, 7.3 sy, +. Ces valeurs nous indiquent que les processus utilisateur consomment 37,3% du CPU et les processus système 7,3%. Si vous additionnez ces deux valeurs, vous obtiendrez l’utilisation totale de la CPU.

Si votre serveur fonctionne à 100% ou presque du processeur, vérifiez les entrées en haut de la liste des processus pour voir si un ou plusieurs consomment une quantité exceptionnellement élevée de CPU. Si tel est le cas, envisagez de reconfigurer ou d’ajuster les processus pour utiliser moins de processeur. Si cela n’est pas possible, vous devrez peut-être mettre à niveau le processeur de votre serveur.

Voyons maintenant l’utilisation de la mémoire.

Sample top Outputtop - 21:02:32 up 51 min,  1 user,  load average: 0.21, 0.47, 0.80
Tasks: 102 total,   1 running, 101 sleeping,   0 stopped,   0 zombie
%Cpu(s):  17.4 us,  3.4 sy,  0.0 ni, 79.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :       223.914 free,    395.621 used,   371.871 buff/cache
MiB Swap:        0.000 total,        0.000 free,        0.000 used.

 PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
3249 www-data     20   0   469592   92276   33488 D  24.6  9.1   0:05.01 apache2
3239 www-data     20   0   442836   75080   41896 S  5.6  7.4   1:31.97 apache2
3572 www-data     20   0   424372   35272   21164 S  4.0  3.5   0:02.69 apache2

Par défaut, l’utilisation de la RAM est affichée en kilo-octets sur la quatrième ligne. Dans l’exemple de sortie précédent, nous avons déjà appuyé une fois sur + SHIFT + E +, en convertissant la valeur en mégaoctets pour faciliter l’utilisation des nombres. Appuyez une seconde fois sur + SHIFT + E + pour convertir la valeur en gigaoctets, puis continuez à appuyer sur + SHIFT + E + pour revenir à l’affichage en kilo-octets par défaut.

La valeur + total + correspond à la quantité totale de mémoire disponible sur le serveur. N’oubliez pas que le noyau réserve de la mémoire au démarrage. Par conséquent, une machine de 1024 Mo affichera 991 Mo de mémoire ici.

Le + disponible Mem + indique la quantité de mémoire restante sur le système. Ce nombre diminuera à mesure que vous utiliserez plus de RAM et atteindra éventuellement zéro lorsqu’il ne restera plus de mémoire sur le serveur.

Comme pour l’utilisation du processeur, si + avail Mem + fonctionne à une valeur proche de zéro, examinez la liste des processus pour les entrées qui consomment une quantité de mémoire inhabituellement élevée. Si possible, reconfigurez ou optimisez ces processus pour utiliser moins de mémoire ou mettez à niveau la quantité de mémoire RAM de votre serveur.

Enfin, examinons l’utilisation du disque.

Sample top Outputtop - 21:02:32 up 52 min,  1 user,  load average: 0.21, 0.47, 0.80
Tasks: 102 total,   1 running, 101 sleeping,   0 stopped,   0 zombie
%Cpu(s):  17.4 us,  3.4 sy,  0.0 ni, 79.2 id,    0.0 hi,  0.0 si,  0.0 st
KiB Mem :   1015200 total,    63536 free,    431456 used,   520208 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   512308 avail Mem

 PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
3249 www-data     20   0   469592   92276   33488 D  24.6  9.1   0:05.01 apache2
3239 www-data     20   0   442836   75080   41896 S  5.6  7.4   1:31.97 apache2
3572 www-data     20   0   424372   35272   21164 S  4.0  3.5   0:02.69 apache2

L’utilisation du disque qui nous intéresse, l’attente d’E / S, ne correspond pas à la quantité d’espace disque disponible, mais à la quantité d’accès au disque qui ralentit le serveur. L’accès au disque, en particulier sur un serveur utilisant des disques durs en rotation, est très lent et, chaque fois que le serveur accède aux disques, le processeur doit attendre que les informations soient récupérées.

Top signale cette information sous la forme + wa +. Il indique le pourcentage de temps pendant lequel les processeurs sont inactifs en attente de données du disque. Ce nombre doit être aussi proche que possible de 0,0.

Dans l’exemple précédent, la valeur + wa + est + 31.6 +. Cela signifie que le processeur passe un tiers de son temps à attendre les données du disque. Cela prend beaucoup de temps et cela affectera gravement les performances du site Web.

L’attente d’E / S est souvent le résultat de l’accès au disque pour les fichiers ou de l’appel répété à des bases de données locales. Si + wa + dépasse largement 0.0, envisagez de déplacer des ressources statiques vers un emplacement distant, comme un réseau de diffusion de contenu (CDN), ou recherchez des moyens de réduire le nombre de déplacements de vos applications vers leurs bases de données locales associées.

Appuyez sur + Q + pour quitter le haut.

La dernière ressource que nous examinerons est l’utilisation du réseau. Pour surveiller cela, nous allons utiliser l’outil New Bandwidth Monitor.

Installez cet outil avec + apt-get + puis exécutez-le avec la commande + bwm-ng +.

sudo apt-get install bwm-ng
bwm-ng

La partie supérieure de la sortie affiche le numéro de version de Bandwidth Monitor New Generation, la fréquence à laquelle les données sont mises à jour (toutes les 0,5 seconde par défaut), la source d’entrée étant utilisée pour déterminer les interfaces réseau disponibles (+ / proc / net / dev + par défaut sous Linux), et la statistique étant affichée (utilisation des données + rate + par défaut).

La partie inférieure de la sortie comprend un tableau indiquant la quantité de données entrantes (+ Rx +), les données sortantes (+ Tx +) et le total des données (+ Total +) par interface réseau.

La dernière ligne affiche les valeurs totales sur toutes les interfaces réseau.

Sample bwm-ng Output  bwm-ng v0.6.1 (probing every 0.500s), press 'h' for help
 input: /proc/net/dev type: rate
 -         iface                   Rx                   Tx                Total
 ==============================================================================
              lo:           0.00 KB/s            0.00 KB/s            0.00 KB/s
            eth0:          30.99 KB/s          499.11 KB/s          530.11 KB/s
 ------------------------------------------------------------------------------
           total:          30.99 KB/s          499.11 KB/s          530.11 KB/s

Lorsque la bande passante du réseau provoque un goulot d’étranglement, c’est généralement parce que + Tx + a atteint son maximum. Pour résoudre ce problème, obtenez la vitesse de connexion de votre serveur auprès de votre fournisseur d’hébergement et comparez-la aux vitesses indiquées par + bwm-ng +. Si la vitesse indiquée par + bwm-ng + est constamment égale ou presque à la bande passante maximale disponible pour votre serveur, vous devrez envisager de mettre à niveau votre plan d’hébergement ou de passer complètement à un autre fournisseur.

Appuyez sur + CTRL + C + pour quitter Bandwidth Monitor New Generation lorsque vous avez terminé les tests.

Conclusion

Dans ce guide, nous avons utilisé l’outil d’analyse comparative Siege et le serveur proxy Sproxy pour générer une charge configurable sur un serveur Web et la pousser à son débit maximal. Ces outils sont extrêmement utiles pour tout déploiement de site Web, car ils aident à identifier les problèmes de performances et à planifier des mises à niveau bien informées.

Pour un autre moyen de réduire les goulets d’étranglement mémoire des E / S de disque, consultez Varnish HTTP Cache. Varnish est un proxy inverse facile à utiliser qui stocke des actifs de site Web statiques, réduisant ainsi l’utilisation de la RAM et les E / S du disque.

Si votre site Web utilise PHP, envisagez d’installer PHP-FPM comme alternative à la mise en œuvre PHP standard. PHP-FPM réduit les besoins en ressources processeur pour la gestion de pages Web basées sur PHP, accélérant ainsi la vitesse de votre site Web.