On m'a récemment demandé "Savez-vous quand décider entre opter pour plus de RAM ou plus de serveurs?" (dans le contexte de la mise à l'échelle des applications d'exploration de données).
Je n'en avais aucune idée, alors quelles sont les façons de décider? J'ai très peu de connaissances en architecture et en évolutivité (ma compréhension de la mémoire de l'ordinateur et de ce qu'un serveur fait est limitée aux bases de haut niveau), donc des conseils pour en savoir plus sur ces choses en général sont également les bienvenus.
Réponses:
La réponse est dès que vous me donnez les métriques pour le serveur en question, je vous dirai laquelle (ou si cela vaut la peine d'ajouter quoi que ce soit). Ce type de réglage n'est pas vaudou (sauf si vous utilisez des applications sans instrumentation et des OS de serveur sans instrumentation - alors oui c'est vaudou), c'est la science. Mesurez l'application et le serveur. En un mot, en utilisant les mesures de surveillance, déterminez où se situe le goulot d'étranglement des performances et ajoutez-en plus.
la source
Il y a généralement un peu de vaudou (ou du moins d'essais et d'erreurs) dans l'amélioration des performances des serveurs / applications.
La règle générale pour la question spécifique posée est d'abord d'augmenter la mémoire jusqu'à ce qu'elle ne puisse plus être augmentée OU jusqu'à ce que plus de mémoire n'améliore plus les performances. Avec une mémoire relativement bon marché, il peut être plus simple de simplement maximiser la mémoire. De plus, si l'application est saturée de disque, la mise à niveau vers des lecteurs haute vitesse ou des contrôleurs hautes performances peut faire la différence.
Cependant, la nature très générale de la question m'amène à penser qu'il n'y a pas eu d'autres tentatives pour améliorer les performances. Je suis d'accord que le matériel est bon marché, donc même lancer plus de serveurs à un problème est assez facile à accomplir. Mais, je voudrais également m'assurer que d'autres voies, en particulier le réglage du système d'exploitation et de la base de données, ont été réalisées. Parfois, de petits ajustements à la base de données, au système d'exploitation ou même à la configuration de l'application peuvent entraîner d'énormes améliorations des performances.
Recherchez sur ce site avec votre système d'exploitation, votre base de données et votre application spécifiques et vous pourriez bien trouver de l'or.
la source
En tant qu'architecte d'entreprise, j'ai traité ce problème presque quotidiennement. Mise à l'échelle verticale ou horizontale?
Quels sont tes besoins?
Devez-vous prendre en charge plus d'utilisateurs? Devez-vous améliorer la vitesse du service? Avez-vous besoin des deux? Avez-vous besoin d'une haute disponibilité 99,9999 ou vos utilisateurs peuvent-ils prendre des temps d'arrêt?
Pour commencer, vous devez capturer les mesures de performances sur le système actuel. Nombre d'utilisateurs actifs, charges RAM et CPU, E / S disque - découvrez où se trouvent vos goulots d'étranglement.
Solutions possibles en fonction des problèmes: commencez par optimiser les ressources actuelles. Si votre application est pilotée par une base de données, optimisez la base de données avec des caches de requêtes et de threads, des index, etc. Si votre partage d'un serveur avec d'autres applications explore la possibilité de passer à un serveur dédié. (Rechercher dans la virtualisation des applications moins actives / critiques pour libérer des ressources dédiées).
les machines actuelles sont à pleine capacité, RAM et CPU lourdement chargés, E / S disque élevées - calculez le coût pour ajouter de la RAM, pouvez-vous passer à une E / S disque plus rapide (RAID, SATA à la place de l'ATA)?
Si vous avez besoin d'une haute disponibilité, vous devrez probablement ajouter du matériel et un équilibrage de charge de toute façon.
Est-il moins cher d'ajouter des mises à niveau matérielles ou d'ajouter de nouveaux serveurs? Qui correspond aux objectifs à long terme et à la croissance?
Quel est le meilleur moment pour votre département informatique pour dépenser de l'argent? Avez-vous des fonds maintenant ou voulez-vous reporter les dépenses sur un autre trimestre / année? Si les fonds sont un problème, optimisez maintenant ou explorez la possibilité de libérer du matériel à partir d'autres applications pour ajouter une solution d'équilibrage de charge temporaire.
N'ayez pas peur d'explorer de nombreuses solutions. Les fournisseurs voudront peut-être que vous achetiez une solution centrée sur le stockage SAN à équilibrage de charge, où un nouveau serveur avec iSCSI RAID 10 intégré fonctionnera pour 10% du coût.
Si votre CPU est encore lourdement chargé après l'optimisation, vous devez ajouter / remplacer du matériel. Si votre E / S de disque est le goulot d'étranglement et que vous ne pouvez pas mettre à niveau la technologie de stockage, vous devez remplacer le matériel ou ajouter des solutions de stockage réseau / de stockage connecté.
Capturez les mesures de performances. Optimisez, améliorez et capturez à nouveau les mesures. Continuez à documenter les augmentations / diminutions de performances afin de pouvoir produire un rapport qui documente le montant que vous avez dépensé et le gain de performances résultant. Ce sont le type d'histoires de réussite possibles qui font des administrateurs des architectes, des architectes des chefs de projet et des PM à la haute direction lorsqu'ils sont bien exécutés.
la source
Cherchez-vous? Allez-vous utiliser la RAM pour mettre en cache le disque? Êtes-vous lié au processeur avec de la RAM gratuite?
Si vous recherchez et / ou pouvez utiliser la RAM pour mettre en cache, obtenez plus de RAM. Si vous ne rencontrez pas de pression RAM, c'est autre chose.
la source
La RAM est bon marché. Vous devriez toujours le faire d'abord au point où vous avez la quantité la plus économique là-dedans (par exemple, les barrettes DIMM de 4 Go sont d'un coût prohibitif, donc je ne m'embêterais pas avec elles).
Explorez ensuite la mise à l'échelle latérale (plus de serveurs). Considérez le matériel grand public bon marché par rapport aux pièces de serveur coûteuses, mais attendez-vous aux échecs et intégrez des estimations de basculement à votre capacité de traitement totale.
Fondamentalement, faites un Google .
la source
Le système d'exploitation que vous utilisez, la quantité de RAM prise en charge et la quantité de RAM dont vous disposez sont également des questions à poser. Si vous êtes à la limite d'un système d'exploitation 32 bits, acheter plus de RAM ne vous sera d'aucune utilité. Si vous utilisez Windows, certaines références sont limitées à certaines quantités de RAM qui ne sont pas exactement liées à la limite 32 bits.
la source
Certaines personnes semblent penser que l'ajout de RAM est une solution magique. Cela n'aide que si la RAM est le goulot d'étranglement.
la source
Plus de RAM = plus de machines virtuelles.
Donc je suppose que plus de RAM = plus de serveurs !!
la source