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


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

En relation:

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


  • Quel type de serveur dois-je gérer? un certain nombre des utilisateurs?
  • Avec combien d'utilisateurs un serveur peut-il certaines spécifications manipuler?
  • Volonté une configuration de serveur être assez rapide pour mon cas d'utilisation?
  • Je construis un site de réseau social: de quel type de matériel ai-je besoin?
  • Combien de bande passante ai-je besoin pour un projet?
  • Combien de bande passante sera un certain nombre des utilisateurs utilisent dans une application?

131
2018-04-30 19:20


origine




Réponses:


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


Il existe un certain nombre de facteurs en jeu dans la planification de la capacité que nous ne pouvons pas évaluer correctement 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. RAM n'est pas cher
    Si vous vous attendez à ce que votre application utilise beaucoup de RAM, vous devez en mettre autant que vous pouvez vous le permettre.
  2. Le disque n'est pas cher
    Si vous prévoyez d’utiliser beaucoup de disques, vous devez en acheter 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. La charge de travail augmente 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é est chère
    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 de votre processeur, augmenteront votre facture d'électricité (ou celle que vous payez à votre fournisseur). Planifiez en conséquence.

94
2018-01-17 15:46



Vous devriez totalement laisser tomber cela et utiliser l'intégration par parties! - Gilles
+1 Et comme vous le suggérez dans l’axiome 1, la RAM est l’un 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
J'ajouterais à ceci: Disque capacité Est bon marché. Disque performance devient cher. 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’optimiser les performances: 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


Planification du nombre de machines virtuelles

En ce qui concerne le nombre d'ordinateurs virtuels que vous devez 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?


Le nombre de machines virtuelles est limité 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 moins. Certains n'autorisent pas le surabonnement de la capacité du processeur, d'autres le font.
  • Vitesse du processeur Cela limite les performances mono-threadées maximales 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 CPU 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 page en 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 une certaine quantité d'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 des 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 machines virtuelles. Quelques points à retenir:

  • Il n’existe pas de système générique.
  • Il n'y a pas de serveur web générique, puisque le code de l'application peut s'exécuter à peine CDNservice de style, à gros trucs profonds comme le transcodage vidéo.
  • Un serveur de base de données générique n'existe pas. 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 connaître le fonctionnement de vos systèmes 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!


42
2018-02-06 20:32



par-dessus tout, utilisez des systèmes basés sur vm sur deux serveurs physiques distincts avec des vm non liés. Cela permet une défaillance matérielle sans perte de l'ensemble du système. Les machines virtuelles 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 qui offre ces services (Google ou Amazon). ils sont chers mais beaucoup moins que d’exécuter le vôtre. - Random-IT
La chose que j'ai le plus souvent vue sous-dimensionnée dans les implémentations de VM est l'E / S de disque. La plupart des gens comprennent l'espace disque, la vitesse du processeur et la mémoire. Ils oublient les performances du disque. - Dan Pritts


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 à 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, vous devriez commencer par votre ordinateur de bureau et continuer à progresser.

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 risquent pas de tomber et d'un autre mal à la tête.


4