Pouvez-vous m'aider avec ma planification de capacité?

132

C'est une question canonique sur la planification de la capacité

Apparenté, relié, connexe:

J'ai une question concernant la planification de la capacité. La communauté Server Fault peut-elle apporter son aide dans les domaines suivants:


  • De quel type de serveur ai-je besoin pour gérer un certain nombre d'utilisateurs?
  • Combien d'utilisateurs un serveur avec certaines spécifications peut-il gérer?
  • Une configuration de serveur sera-t-elle assez rapide pour mon cas d'utilisation ?
  • Je construis un site de réseau social: de quel type de matériel ai-je besoin?
  • De combien de bande passante ai-je besoin pour un projet ?
  • Quelle quantité de bande passante un certain nombre d’utilisateurs utilisera-t-il dans certaines applications ?
voretaq7
la source

Réponses:

97

La communauté Server Fault ne peut généralement pas vous aider à planifier la capacité. La meilleure réponse que nous puissions vous donner est "Analysez votre code sur du matériel similaire à celui que vous utiliserez en production, identifiez les goulets d'étranglement, puis déterminez la charge de travail de votre système." le matériel actuel peut gérer et / ou la puissance matérielle dont vous avez besoin pour gérer votre charge de travail cible " .


Un certain nombre de facteurs en jeu dans la planification de la capacité ne peuvent pas être correctement évalués sur un site de questions et réponses:

  • Les exigences de votre code / logiciel particulier
  • Ressources externes (bases de données, autres logiciels / sites / serveurs)
  • Votre charge de travail (pic, moyenne, file d'attente)
  • La valeur commerciale de la performance (analyse coût / bénéfice)
  • Les attentes de performance de vos utilisateurs
  • Tous les accords de niveau de service / obligations contractuelles que vous pourriez avoir

Effectuer une analyse appropriée de ces facteurs, entre autres, dépasse le cadre d'un simple site de questions-réponses: ils nécessitent une connaissance détaillée de votre environnement et des exigences que seule votre équipe (ou un consultant dûment rémunéré) peut rassembler efficacement.


Quelques axiomes de planification de la capacité

  1. La RAM n'est pas chère
    Si vous prévoyez que votre application utilise beaucoup de RAM, vous devez mettre autant de RAM que vous pouvez vous le permettre.
  2. Le disque est bon marché
    Si vous envisagez d'utiliser beaucoup de disque, vous devez acheter de gros disques - beaucoup.
    Le stockage SAN / NAS est moins coûteux et devrait également être généralement volumineux plutôt que petit pour éviter des mises à niveau coûteuses ultérieurement.
  3. Les charges de travail augmentent avec le temps.
    Supposons que vos besoins en ressources vont augmenter.
    Notez que l'augmentation peut ne pas être symétrique (le processeur et la RAM peuvent augmenter plus rapidement que le disque) et peut ne pas être linéaire.
  4. L'électricité coûte cher
    Même si le prix de la RAM et des disques a considérablement baissé, le coût de l'électricité a régulièrement augmenté. Tous ces disques et RAM supplémentaires, sans parler de la puissance du processeur, augmenteront votre facture d'électricité (ou celle que vous payez à votre fournisseur). Planifiez en conséquence.
voretaq7
la source
1
Vous devriez totalement laisser tomber cela et utiliser l'intégration par parties!
Gilles
+1 Et la RAM, comme vous le suggérez dans l’axiome 1, fait partie de ces avantages considérables. Par exemple, cela augmente votre capacité à mieux utiliser la mise en cache, ce qui vous permet de faire moins de requêtes de base de données, ce qui allège la charge sur le disque et le processeur. Je suis souvent frustré par les fournisseurs d’hébergement qui offrent un processeur rapide avec leurs serveurs et une quantité minimale de RAM.
Steve Wortham
31
J'ajouterais à ceci: la capacité du disque n'est pas chère. Les performances du disque deviennent chères. Surtout que nous observons une croissance de la taille des disques sur 10 ans, mais les lois de la physique n'ont pas changé. La règle empirique que j’utilise (à compter d’aujourd’hui; juin 2014) est celle qui permet d’obtenir des performances optimales: 75 IOP par broche sur SATA, 200 IOP par broche sur FC et 1500 IOP par SSD. Les grands disques SATA génèrent des ratios IO par gigaoctet vraiment médiocres.
Sobrique
À la mi-2019, plus personne ne devrait acheter de disques à broches.
Robert Harvey
@ RobertHarvey, plus personne ne devrait acheter de disques SAS . Obtenir de la capacité pour des serveurs à l'échelle petabox nécessite toujours de nombreux disques SATA, sinon vous payez beaucoup.
Mikko Rantalainen le
44

Planification du nombre de machines virtuelles

En ce qui concerne le nombre d'ordinateurs virtuels à planifier sur un seul hôte, il n'y a pas vraiment de bonnes règles empiriques. En fait, il n'y en a qu'un, et ce n'est qu'une sorte de bien:

Les comptes de machines virtuelles sont généralement liés par la RAM, sauf lorsqu'ils ne le sont pas.

Ce qui n'est pas très utile. Si ces ordinateurs virtuels doivent exécuter des applications à faible processeur, votre limiteur sera basé sur la RAM. Chaque plate-forme de VM a ses propres capacités à sursouscrire la RAM. Ce n'est donc pas aussi facile que TOTAL_RAM / Per-VM-RAM = MachineCount, mais ce nombre est un bon élément de planification.

Mais que se passe-t-il si vos ordinateurs virtuels font des choses autres que l’élimination de paquets à faible processeur?


Les comptages de machines virtuelles sont limités par sept ressources discrètes disponibles pour la machine hôte:

  • Hyperviseur VMware, Xen, HyperV, KVM, peu importe. Chacun a ses propres caractéristiques qui ont un impact sur le nombre. Certains sont très doués pour la déduplication de pages de mémoire, d'autres pas beaucoup. Certains n'autorisent pas le surabonnement de la capacité du processeur, d'autres le font.
  • CPU Core Speed ( Vitesse du cœur du processeur) Ceci limite les performances maximales d'un seul thread qu'une machine virtuelle pourra exécuter. Les 36 cœurs d'un processeur à 1,8 GHz peuvent représenter 64,8 GHz de processeur sur un hôte, mais aucun thread ne fonctionnera plus rapidement que 1,8 GHz.
  • Nombre de cœurs de processeur Ceci, avec la vitesse de base, décrit le plafond de performances de processeur maximales que vous pouvez expérimenter.
  • RAM système Comme décrit ci-dessus, cela limite le nombre de machines virtuelles que vous pouvez exécuter. Certains hyperviseurs sont meilleurs que d'autres dans des domaines tels que la déduplication de pages de mémoire. Ainsi, si vous exécutez 100 VM identiques, vous pouvez en stocker beaucoup plus sur de tels systèmes de déduplication que si vous utilisiez 100 VM complètement différentes.
  • Taille du disque Chaque image de système d'exploitation prend un certain espace. Vous avez besoin de suffisamment d'espace pour tout stocker. Par conséquent, la taille du disque limite le nombre de machines virtuelles que vous pouvez héberger.
  • Bande passante d'E / S Le disque sous-jacent aux ordinateurs virtuels a un nombre maximal d'E / S par seconde qu'il peut gérer. Si vous y mettez trop, les systèmes vont attendre avant la fin de l’E / S. Cela limite le nombre de machines virtuelles consommant des E / S que vous pouvez exécuter.
  • Bande passante réseau Pour les ordinateurs virtuels utilisant le réseau, la bande passante réseau disponible limite le nombre de ces ordinateurs virtuels que vous pouvez exécuter sur un hôte donné.

Tout cela peut être la chose sur laquelle vous trébuchez, tout dépend de ce que vous faites avec vos ordinateurs virtuels. Quelques points à retenir:

  • Il n’existe pas de système générique.
  • Il n’existe pas de serveur Web générique , car le code de l’application peut fonctionner à partir d’un service de style CDN à la limite, jusqu’à de grandes opérations telles que le transcodage vidéo.
  • Il n’existe pas de serveur de base de données générique . Ceux-ci peuvent fonctionner à partir de systèmes minuscules utilisés uniquement pour le suivi d'état de session, à de très grands.

Pour déterminer le nombre de machines virtuelles que vous pouvez intégrer à un système hôte, vous devez savoir comment vos systèmes fonctionnent et ce dont ils ont besoin pour bien fonctionner. Une fois que vous savez cela, vous pouvez ensuite planifier le décompte. Et mieux encore, déterminez à quel point vous avez besoin de créer vos systèmes hôtes!

sysadmin1138
la source
surtout, utilisez des systèmes basés sur vm sur deux serveurs physiques distincts avec des vm non liés. Cela permet une panne matérielle sans perte de l'ensemble du système. Les VM peuvent se déplacer entre des serveurs identiques sans perte de données. seules les sessions sont perdues, puis reconstruites. Personnellement, je sous-traiterais à une société d'hébergement proposant ces services (google ou amazon). ils sont chers mais beaucoup moins que de gérer les vôtres.
Random-IT
2
La chose que j'ai le plus souvent vue sous-dimensionnée dans les implémentations de machine virtuelle est l'E / S de disque. La plupart des gens comprennent l'espace disque, la vitesse du processeur et la mémoire. Ils oublient ces performances du disque.
Dan Pritts
6

Assurez-vous de poser la bonne question.

  • Les ordinateurs sont bon marché
  • Les besoins futurs sont très difficiles à prévoir
  • Planifiez comment évoluer et non pas acheter quoi que ce soit à l'avance

Si vous ne savez pas ce dont vous aurez besoin, cela signifie que vous n'en avez pas beaucoup besoin. Si vous avez un site Web actif, vous avez probablement aussi une équipe d’exploitation qui sait combien de RAM, de disque, d’IO, de réseau, etc., votre application a besoin. Si vous êtes dans la phase de rêve, commencez par votre bureau et progressez.

Assurez-vous d'avoir une idée de la façon dont vous allez évoluer lorsque les choses s'agrandissent. Pouvez-vous ajouter plus de serveurs derrière l'équilibreur de charge? Pouvez-vous partager le serveur Redis?

En outre, avoir votre propre centre de données est nul. Un centre de données (même s'il ne s'agit que d'un ordinateur) détourne votre objectif. Vous ne pouvez pas simplement acheter un ordinateur, l'allumer et vous en aller. Vous avez besoin de la climatisation, de la filtration de l'air, d'une alimentation fiable, d'une connexion Internet fiable, de sauvegardes, de pièces de rechange, d'une pièce physique à agrandir, d'une capacité électrique à développer, de câbles d'alimentation qui ne se déclenchent pas et de plusieurs autres maux de tête.

Dylan Martin
la source