144 votes

Pouvez-vous m'aider à planifier mes capacités ?

Il s'agit d'un question canonique à propos de planification des capacités

En rapport :

J'ai une question concernant la planification des capacités. La communauté Server Fault peut-elle m'aider à répondre aux questions suivantes ?


  • De quel type de serveur ai-je besoin pour gérer un certain nombre de numéros d'utilisateurs ?
  • Combien d'utilisateurs un serveur avec quelques spécifications manipuler ?
  • Will une certaine configuration du serveur être assez rapide pour mon cas d'utilisation ?
  • Je crée un site de réseau social : de quel type de matériel ai-je besoin ?
  • De quelle largeur de bande ai-je besoin pour un projet ?
  • Combien de bande passante un certain nombre de numéros d'utilisateurs utilisent en certaines applications ?

109voto

voretaq7 Points 78924

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 la suivante "Benchmarkez votre code sur un matériel similaire à celui que vous utiliserez en production, identifiez les éventuels goulets d'étranglement, puis déterminez la charge de travail que votre matériel actuel peut supporter, et/ou la puissance matérielle dont vous avez besoin pour gérer votre charge de travail cible". .


Un certain nombre de facteurs entrent en jeu dans la planification des capacités, que nous ne pouvons pas évaluer de manière adéquate sur un site de questions-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ûts/avantages)
  • Les attentes de vos utilisateurs en matière de performances
  • Tout accord de niveau de service/obligation contractuelle que vous pourriez avoir

Une analyse correcte de ces facteurs, et d'autres encore, dépasse le cadre d'un simple site de questions-réponses : Elles nécessitent des connaissances détaillées sur votre environnement et vos exigences que seule votre équipe (ou un consultant correctement rémunéré) peut rassembler efficacement.


Quelques axiomes de la planification des capacités

  1. La RAM est bon marché
    Si vous vous attendez à ce 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 prévoyez d'utiliser beaucoup de disques, vous devez acheter de gros disques, en grand nombre.
    Le stockage SAN/NAS est moins bon marché et doit généralement être spécifié en grand plutôt qu'en petit pour éviter des mises à niveau coûteuses par la suite.
  3. Les charges de travail augmentent avec le temps
    Supposez que vos besoins en ressources vont augmenter.
    Gardez à l'esprit que l'augmentation peut ne pas être symétrique (le CPU et la RAM peuvent augmenter plus rapidement que le disque), et qu'elle 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 diminué, le coût de l'électricité n'a cessé d'augmenter. Tous ces disques et cette mémoire vive supplémentaires, sans parler de la puissance du processeur, feront augmenter votre facture d'électricité (ou celle que vous payez à votre fournisseur). Planifiez en conséquence.

2 votes

Vous devriez totalement laisser tomber ça et utiliser l'intégration par parties !

0 votes

+1. Et la RAM, comme vous le suggérez dans l'axiome n° 1, est l'une de ces choses qui présentent des avantages considérables. Par exemple, elle 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 CPU. Je suis souvent frustré par les fournisseurs d'hébergement qui offrent un CPU rapide avec leurs serveurs et une quantité minimale de RAM.

33 votes

J'ajouterais à cela : Disque capacité est bon marché. Disque performance devient cher. D'autant plus que nous constatons 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 (à ce jour ; juin 2014) est que pour une performance optimale : 75 IOPs par broche sur SATA, 200 IOPs par broche sur FC, et 1500 IOPs par SSD. Les gros disques SATA donnent des ratios d'IO par gigaoctet vraiment très faibles.

50voto

sysadmin1138 Points 129885

Planification du nombre de machines virtuelles

Lorsqu'il s'agit de déterminer le nombre de machines virtuelles à prévoir sur un seul hôte, il n'existe pas vraiment de règles empiriques. En fait, il n'y en a qu'une, et elle n'est pas très bonne :

Le nombre de machines virtuelles est généralement limité par la RAM, sauf dans les cas où il ne l'est pas.

Ce qui n'est pas très utile. Si ces machines virtuelles sont destinées à exécuter des applications à faible nombre de processeurs, votre limite sera basée sur la RAM. Chaque plateforme de VM a ses propres capacités de sursouscription de RAM, donc ce n'est pas aussi simple que TOTAL_RAM / Per-VM-RAM = MachineCount, mais ce nombre est un bon élément de planification.

Mais qu'en est-il si vos machines virtuelles font autre chose que de la recherche de paquets sur des processeurs de faible puissance ?


Le nombre de machines virtuelles est limité par sept ressources discrètes dont dispose la machine hôte :

  • Hyperviseur VMware, Xen, HyperV, KVM, peu importe. Chacun d'entre eux possède ses propres caractéristiques qui ont un impact sur le nombre d'ordinateurs. Certains sont très performants en matière de déduplication mémoire-page, d'autres moins. Certains ne permettent pas la sursouscription de la capacité du CPU, d'autres oui.
  • Vitesse du cœur du CPU Cela limite les performances maximales d'un thread unique qu'une VM pourra exécuter. 36 cœurs d'un CPU à 1,8 GHz peuvent représenter 64,8 GHz de CPU sur un hôte, mais aucun thread unique ne fonctionnera à plus de 1,8 GHz.
  • Nombre de noyaux de l'unité centrale Avec la vitesse de base, elle décrit le plafond des performances maximales du processeur que vous pouvez atteindre.
  • RAM du système Comme décrit ci-dessus, cela limite le nombre de VMs que vous pouvez exécuter. Certains hyperviseurs sont plus performants que d'autres dans des domaines tels que la déduplication des pages de mémoire, de sorte que si vous exécutez 100 VM identiques, vous pouvez en mettre beaucoup plus sur des systèmes à déduplication que si vous exécutez 100 VM complètement différentes.
  • Taille du disque Chaque image du système d'exploitation occupe une certaine quantité d'espace. Vous avez besoin de suffisamment d'espace pour tout stocker. Par conséquent, la taille du disque fixe une limite supérieure au nombre de machines virtuelles que vous pouvez héberger.
  • Largeur de bande d'E/S Le disque sous-jacent aux machines virtuelles a un nombre maximum d'entrées/sorties par seconde qu'il peut gérer. Si vous lui en envoyez trop, les systèmes s'enliseront en attendant que les E/S se terminent. Cela impose une limite supérieure au nombre de VM consommatrices d'E/S que vous pouvez exécuter.
  • Bande passante du réseau Pour les machines virtuelles utilisant le réseau, la largeur de bande du réseau disponible limitera le nombre de machines virtuelles que vous pouvez exécuter sur un hôte donné.

Tous ces éléments peuvent vous faire trébucher, tout dépend de ce que vous faites avec vos VM. Quelques points à retenir :

  • Il n'existe pas de système générique.
  • Il n'existe pas de serveur web générique. puisque le code d'application peut être exécuté à partir d'un code à peine mobile. CDN -jusqu'à de grosses opérations de "deep-cracking" comme le transcodage vidéo.
  • Il n'existe pas de serveur de base de données générique. . Il peut s'agir de minuscules systèmes utilisés uniquement pour le suivi de l'état des sessions, ou de très gros systèmes.

Pour savoir combien de machines virtuelles vous pouvez placer dans 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 alors faire la planification du nombre de machines. Et mieux encore, déterminez la puissance que vous devez donner à vos systèmes hôtes !

0 votes

Par-dessus tout, utilisez des systèmes basés sur des vm sur deux serveurs physiques distincts avec des vm non liés. cela permet une défaillance matérielle sans perte du système entier. 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 qui offre ces services (google ou amazon). ils sont chers mais beaucoup moins que de gérer votre propre système.

4 votes

L'élément que j'ai vu le plus souvent sous-dimensionné dans les implémentations de VM est l'E/S du disque. La plupart des gens comprennent l'espace disque, la vitesse du CPU et la mémoire. Ils oublient les performances du disque.

9voto

Dylan Martin Points 538

Assurez-vous que vous posez la bonne question.

  • Les ordinateurs sont bon marché
  • Les besoins futurs sont très difficiles à prévoir
  • Planifiez à l'avance le mode de calcul, et non ce qu'il faut acheter.

Si vous ne savez pas ce dont vous aurez besoin, cela implique que vous n'avez pas besoin de beaucoup. Si vous avez un site Web très actif, vous avez probablement aussi une équipe d'exploitation qui sait de combien de RAM, de disque, d'IO, de réseau, etc. votre application a besoin. Si vous en êtes au stade du rêve, vous devriez commencer par votre ordinateur de bureau et progresser.

Assurez-vous d'avoir une idée de la manière dont vous allez évoluer lorsque les choses prendront de l'ampleur. Pouvez-vous ajouter des serveurs supplémentaires derrière l'équilibreur de charge ? Pouvez-vous partager le serveur redis ?

De plus, avoir son propre centre de données, ça craint. Un centre de données (même s'il ne s'agit que d'un ordinateur) vous détourne de votre objectif réel. Vous ne pouvez pas simplement acheter un ordinateur, l'allumer et partir. Vous avez besoin d'air conditionné, d'une filtration de l'air, d'une alimentation fiable, d'une connexion Internet fiable, de sauvegardes, de pièces de rechange, d'un espace physique pour vous développer, d'une capacité d'alimentation pour vous développer, de câbles d'alimentation qui ne se perdent pas et d'un million d'autres problèmes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X