Comment dépensez-vous des tests de charge et de planifier des réservoirs pour les sites Web?

il
http://meta.serverfault.com/questions/1986
Sur la capacité de planification des sites Web.

Lié:

https://serverfault.com/questions/384686
https://serverfault.com/questions/350458

Quels sont les outils et méthodes recommandés de la capacité de planification des sites Web et des applications Web?

N'hésitez pas à décrire divers outils et méthodes de divers serveurs Web, cadres, etc., ainsi que de l'expérience avancée applicable aux serveurs Web en général.
Invité:

Babette

Confirmation de:

Réponse courte: personne ne peut répondre à cette question sauf vous.

Une réponse longue est qu'une analyse comparative de votre charge de travail spécifique - C'est ce que vous devez prendre vous-même, car cela ressemble un peu à la question: "Quelle est la longueur de la ligne de coupe?"

Un simple site Web statique d'une seule page peut être placé sur Pentium Pro 150 Et servir toujours des milliers de spectacles tous les jours.

L'approche principale dont vous avez besoin pour répondre à cette question, - c'est

essayer

Cela verra ce qui se passe. De nombreux outils peuvent être utilisés pour une pression artificielle sur le système pour voir où cela commence.

Un bref aperçu de ce:

Placez votre site de site

Ajouter une surveillance

Ajouter du trafic

Résultats des résultats

Réparer

Rincer, répéter jusqu'à ce qu'il devienne assez

Placez votre site de site

Fondamentalement, pour tester une certaine charge, vous devez tester quelque chose. Configurez mercredi pour les tests. Si possible, il devrait être assez proche de votre équipement de fabrication, sinon vous devrez extrapoler vos données.

Configurez vos serveurs, vos comptes, vos sites Web, votre bande passante, etc. Si vous le faites sur des machines virtuelles, ceci est normal si vous êtes prêt à accumuler vos résultats.

Donc, je vais configurer la machine virtuelle de la puissance moyenne (Deux noyaux, 512 MB RAM, 4 Disque dur GB) et installer mon équilibrage de charge préféré,
http://haproxy.1wt.eu/
à l'intérieur
http://en.wikipedia.org/wiki/Red_Hat_Linux
sur vm.

Je disposerai également de deux serveurs Web pour l'équilibrage de la charge que je vais utiliser pour tester le stress l'équilibrage de la charge. Ces deux serveurs Web sont identiques à mes systèmes de travail.

Ajouter une surveillance

Vous aurez besoin de certains indicateurs de surveillance. Je vais donc mesurer le nombre de demandes sur mes serveurs Web et le nombre de demandes que je peux traiter par seconde avant de commencer à recevoir un temps de réponse pendant plus de deux secondes.

Je vais aussi suivre l'utilisation de RAM, de la CPU et du disque sur

haproxy

Instance pour s'assurer que le balantier de charge peut traiter les connexions.

Comment faire cela, dépend en grande partie de vos plates-formes et dépasse la portée de cette réponse. Vous devrez peut-être visualiser les fichiers journaux du serveur Web, exécuter des compteurs de performances ou s'appuyer sur des rapports fournis par votre outil de test de stress.

Plusieurs choses que vous voulez toujours suivre:

Utilisation du processeur

Utilisant RAM

Disque d'utilisation

Dissiper

Utilisation du réseau

Vous pouvez également regarder le verrouillage SQL, Temps de recherche, etc. En fonction de ce que vous testez spécifiquement.

Ajouter du trafic

Ici tout devient amusant. Maintenant, vous devez simuler la charge de test. il y a
https://stackoverflow.com/ques ... ative
qui peut le faire, avec des paramètres personnalisés:

https://jmeter.apache.org/
(L'Internet, LDAP)

http://httpd.apache.org/docs/2.4/programs/ab.html
(l'Internet)

http://grinder.sourceforge.net/
(l'Internet)

http://code.google.com/p/httperf/
(l'Internet)

http://www.iis.net/community/d ... g%3D6
(l'Internet)

Test de chargement Visual Studio (l'Internet)

https://www.microsoft.com/down ... 20163
(SQL Server)

Sélectionnez un numéro n'importe quel nombre. Supposons que vous verrez comment le système réagit à 10 000 Appel par minute. Peu importe le numéro que vous choisissez, car vous allez répéter cette étape plusieurs fois, augmentant ou réduisant ce nombre pour voir comment le système réagit.

Idéalement, vous devez distribuer ces 10 000 Demandes de plusieurs clients / Chargez les nœuds de test afin qu'un client ne devienne pas un goulot d'étranglement pour les requêtes. Par exemple, JMeter's
http://jmeter.apache.org/userm ... .html
Fournit une interface centrale pour exécuter plusieurs clients à partir de la machine de contrôle. Jmeter.

Cliquez sur Magia

Aller

Cliquez sur le bouton et voyez comment vos serveurs Web sont fondus et tombent.

Résultats des résultats

Donc maintenant, vous devez revenir à vos métriques que vous avez collectées dans une étape 2. Vous voyez que quand 10 000 Les connexions simultanées sont à vous

haproxy

box Presque n'a pas de transpiration, mais le temps de réponse avec deux serveurs Web est à peine plus de cinq secondes. Ce n'est pas cool - N'oubliez pas que votre temps de réponse est de deux secondes. Donc, nous devons faire des changements.

Réparer

Maintenant, vous devez accélérer le travail de votre site plus de deux fois. Donc, vous savez que vous devez augmenter ou être mis à l'échelle.

Pour augmenter l'échelle, obtenez des serveurs Web plus grands, une mémoire plus rapide, des disques plus rapides.

Pour la mise à l'échelle horizontale, obtenez plus de serveurs.

Utilisez vos indicateurs de l'étape 2 et tester pour accepter cette solution. Par exemple, si vous avez vu que lors de tester le délai de disque était énorme, vous savez ce que vous devez augmenter l'échelle et obtenir des disques durs plus rapides.

Si lors du test, vous avez vu que le processeur est chargé sur 100%, Vous devrez peut-être effectuer une échelle horizontale pour ajouter des serveurs Web supplémentaires afin de réduire la charge sur les serveurs existants.

Il n'y a pas de réponse correcte ou incorrecte commune, il n'y a que ce qui vous convient. Essayez de zoomer sur l'échelle et si cela ne fonctionne pas, augmentez la balance. Ou non, pour vous résoudre et non la norme pense.

Supposons que nous allons échouer. Donc, j'ai décidé de cloner mes deux serveurs Web (Ce sont des machines virtuelles), Et maintenant, j'ai quatre serveurs Web.

Rincer, répéter

Recommencer de la marche 3. Si vous constatez que tout n'est pas comme si vous vous attendiez (Par exemple, nous avons doublé le nombre de serveurs Web, mais le temps de réponse dépasse toujours deux secondes.), Examiner d'autres goulots d'étranglement. Par exemple, vous avez doublé le nombre de serveurs Web, mais j'ai toujours un serveur de base de données des ordures. Ou vous avez cloné plus de machines virtuelles, mais comme elles sont sur un seul hôte physique, vous ne soulevez que la concurrence pour les serveurs.

Vous pouvez ensuite utiliser cette procédure pour tester d'autres parties du système. Au lieu d'utiliser l'équilibrage de la charge, essayez directement de contacter le serveur Web,
https://serverfault.com/q/350458/7709
.

Blanche

Confirmation de:

La planification de la puissance commence par la mesure, dans ce cas la dépendance du temps de réponse de la charge. Dès que vous apprendrez à ralentir avec la charge, ce qui n'est pas une fonction linéaire, vous pouvez choisir le temps de réponse cible, puis savoir quelles ressources seront nécessaires pour atteindre cet objectif avec une quantité de charge donnée.

La mesure de la performance est toujours effectuée en utilisant

temps

unités, comme

ils sont ce qui inquiète les utilisateurs

ils peuvent être augmentés et réduits

De telles choses que% CPU et IOPS, Dépend du système, de sorte que vous n'utilisez que lorsque vous planifiez le système et la mesuré au stade de la préparation de la production afin d'agir de «substitut» de ce que vous aimez, le temps.

Emilie

Confirmation de:

Planification de la puissance - animal gênant. C'est la même science que l'art et l'art (Bien que définitivement sombre).

Au mieux, vous prenez des solutions raisonnables

et

fortune / Bonne chance vous favorise si la réalité correspond à vos hypothèses. Si vos besoins en hypothèses sont valides, vous ressemblez à un yogi mystique. Malheureusement, si vos hypothèses dépassent la réalité, vous semblez en faire trop et dépensez trop de fonds. Malheureusement, si vos hypothèses sont inférieures à la réalité possible (ou incorrect pour d'autres raisons), Vous n'avez pas assez de puissance dont vous avez besoin et vous aurez de notre mieux pour tenter d'adoucir les échecs de votre infrastructure gémissante, à cause de ce que vous allez ressembler à votre incompétente.

Pas de pression ...

Malheureusement, l'art sombre de la planification de la puissance - C'est plus que vous pouvez exprimer judicieusement dans une réponse à une erreur de serveur; En effet, c'est un sujet digne de livres.

Heureusement, il y a un tel livre: "
http://shop.oreilly.com/product/9780596518585.do
"

Giselle

Confirmation de:

Pour développer le message Mark Henderson, je l'écris spécifiquement pour Apache. Si vous répétez ce qu'il a dit: "Une réponse courte: personne ne peut répondre à cette question sauf." Le texte de cette réponse est largement emprunté à ma réponse à une question similaire à propos de
https://serverfault.com/questi ... 01740
.

Réglage Apache par Mod_Prefork

http://httpd.apache.org/
Peut-être l'un des (Si non vous-même) Les serveurs Web les plus populaires disponibles. Ceci est un code source ouvert et il est toujours activement pris en charge. Vous pouvez l'exécuter comme dans les systèmes d'exploitation Linux, Alors B. Windows, Mais il est plus populaire dans le monde Linux / Unix.

Vous devriez

jamais

Utilisez la configuration finie Apache. Vous devez toujours configurer Apache à votre site. Principale
http://httpd.apache.org/docs/c ... .html
Fichier B. CentOS Situé à l'adresse

/etc/httpd/conf/httpd.conf

, et le fichier de configuration principal Apache dans les systèmes Ubuntu généralement situé à

/etc/apache2/apache2.conf

. Les fichiers de configuration supplémentaires sont utilisés pour des choses telles que
http://httpd.apache.org/docs/current/vhosts/
.

Comme beaucoup d'autres programmes, Apache Il peut être flexible et configuré conformément aux besoins d'un site Web spécifique.
http://httpd.apache.org/docs/current/mpm.html
Quel Apache Vous pouvez configurer pour se lier au port réseau, à la réception et au traitement des demandes.

Dans la plupart des cas dans les installations Apache Par défaut, qui sont fournis avec des serveurs CentOS et Ubuntu, MPM "
http://httpd.apache.org/docs/c ... .html
". On suppose que vous utilisez mod_prefork (Si vous n'êtes pas sûr, c'est plus probable, mais seulement vous pouvez déterminer) Voici les bases de la façon de la configurer:

Découvrez quelle quantité maximale de mémoire que vous voulez Apache pourrait utiliser.

Testez soigneusement votre site et déterminez la quantité de mémoire utilise chaque processus Apache (Utilisant top).

Faire le processus Apache En haut qui utilise le plus de mémoire, ajoutez un peu pour une bonne évaluation, puis divisez le premier numéro (Mémoire maximale que vous souhaitez utiliser Apache) Ceci est un nouveau numéro.

Le nombre que vous obtenez devrait être à vous

MaxClients

&

ServerLimit

variables.

Ceci, bien sûr, n'est pas la réponse finale.
http://httpd.apache.org/docs/c ... .html
Nécessite du temps et de l'expérience pour obtenir le résultat correct.

Emilie

Confirmation de:

Je vous conseillerais également de parler à des architectes et d'ingénieurs conçus / Construire des applications pour essayer d'identifier les goulots d'étranglement, un point unique de refus et des restrictions sous licence.

Pour répondre aux questions, connectez-vous ou registre