Plus de RAM contre plus de serveurs

9

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.


la source
3
Puis-je avoir les deux, s'il vous plaît?
Dirk Eddelbuettel
1
Plus de RAM dans chaque cas
auquel
3
Comme avec la plupart des administrateurs système. La meilleure réponse si possible est de collecter des données sur un système de développement ou de production, puis de prendre une décision en fonction des données que vous avez collectées.
Zoredache
La question que vous vous posez est de savoir s'il faut augmenter ou augmenter l'échelle.
micmcg
la plupart des logiciels d'exploration de données sont conçus pour un ordinateur. donc plus de RAM. Si vous utilisez Mahout ou parallel-R ou ce que vous avez, alors plus de serveurs. Je louerais des serveurs Amazon AWS pour essayer de trouver la meilleure combinaison # serveurs / ram.
Neil McGuigan

Réponses:

8

"Savez-vous quand choisir entre plus de RAM ou plus de serveurs?" (dans le contexte de la mise à l'échelle des applications d'exploration de données).

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.

Jim B
la source
Non, c'est toujours du vaudou, mais vous êtes un sorcier! Plus précisément… comment un néophyte utilise-t-il cette réponse pour résoudre son problème? Quelles sont les mesures de base qu'il devrait examiner et comment sait-il quels chiffres sont significatifs? Obtenez mon point ...
tomjedrz
Ce genre de me rappelle la vieille blague de ballon. officediversions.com/discover/modules/wfsection/…
tomjedrz
La réponse de quelles mesures de base dépend de quel système. La question est tellement générique qu'il est impossible de donner une réponse plus spécifique autre que les bases (CPU, mémoire, disque, etc. et les moniteurs d'application). Étant donné le néophyte hypthétique, ils ne peuvent tout simplement pas obtenir de réponse à ce problème car vous devez d'abord savoir comment surveiller le ou les serveurs en question - et ce serait une question complètement distincte
Jim B
5

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.

tomjedrz
la source
5

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.

linux911
la source
2

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.

Will Hartung
la source
2

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 .

Oli
la source
1

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
1

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.

Rob Moir
la source
Ce n'est pas "magique", mais c'est relativement bon marché et c'est une bonne première tentative la plupart du temps.
tomjedrz
1
@ tomjedrz: Une bonne première tentative sauf quand ce n'est pas le cas. C'est vraiment très simple - faisons-nous «l'administration des systèmes en tant que science» et ajoutons de la RAM à une machine après avoir effectué des tests et une surveillance des ressources qui en montrent la nécessité, ou faisons-nous «l'administration du système en tant que culte religieux» et ajoutons RAM vers une machine parce que c'est ce que les rouleaux religieux nous disent est la bonne prière pour un serveur qui est un peu lent? Personnellement je préfère l'approche scientifique.
Rob Moir
0

Plus de RAM = plus de machines virtuelles.

Donc je suppose que plus de RAM = plus de serveurs !!

JohnyD
la source
1
plus de machine virtuelle, plus d'iops requis, ram n'est qu'une des nombreuses ressources avec lesquelles jouer.
tony roth