Considérations lors du choix des processeurs AMD sur Intel

13

Je travaille pour une entreprise avec de nombreuses applications Web LAMP héritées, où nous essayons de rafraîchir notre matériel de ~ 250 serveurs physiques à ~ 40 nouveaux serveurs avec virtualisation. Nous avons reçu deux devis de fournisseurs - l'un suggère des processeurs Intel, l'autre AMD.

Une chose que j'aime à propos du nombre élevé de cœurs avec AMD, c'est que nous serons en mesure de dédier des cœurs aux machines virtuelles, ce qui signifie que nous avons moins de chances que des applications interfèrent les unes avec les autres en raison de pics, ce qui est dans une certaine mesure plus important pour moi que des performances de pointe.

Les autres considérations que j'ai en tête sont:

  • La consommation électrique peut être différente (pas un problème dans notre cas.)
  • Les instructions du processeur comme CRC32 (SSE 4.2) ne seront pas prises en charge (Édition: MySQL 5.6 semble prendre en charge SSE4.2. Je ne suis pas sûr d'Apache)
  • MySQL ne s'adapte pas parfaitement après ~ 16 / ~ 32 cœurs (je suis prêt à accepter ce compromis.)

Quelles sont les autres considérations qui me manquent?

(Note aux modérateurs: je connais ce fil - je considère la question légèrement différente.)


Edit: Supposons que les tâches sont exceptionnellement parallèles (serveurs Web), et que je me fiche que les serveurs de base de données ne soient pas aussi parallèles.

Morgan Tocker
la source
vous pourriez trouver cela intéressant: it20.info/2007/10/intel-amd-vmware-and-aircrafts
ToastMan
Si votre application peut fractionner les requêtes de lecture / écriture sur différents pools de serveurs, vous pourrez peut-être contourner certains des problèmes de performances de MySQL en exécutant une deuxième instance pour esclave des lectures. Je ne connais pas suffisamment votre architecture ou votre charge de travail pour savoir s'il s'agit d'une idée réalisable ou si cela ne fera qu'ajouter une tonne de surcharge et de complexité inutiles, mais c'est une option à considérer.
jgoldschrafe
Je connais le fonctionnement du partage en lecture / écriture. Il ne convient pas pour un gain de performances dans ce cas.
Morgan Tocker

Réponses:

10

Il y a eu beaucoup de presse concernant la dernière offre de processeur AMD, appelée Bulldozer. La version "Serveur" de cette partie n'est pas encore sortie, mais l'offre de bureau est un excellent aperçu de certains des problèmes potentiels des nouvelles choses.

Quant à la génération actuelle de partie serveur, la recommandation dans son ensemble est assez bonne au niveau générique. Le travail sur le Web et (la plupart) des bases de données est en grande partie basé sur Integer, et les processeurs AMD fonctionnent bien avec le calcul Integer. De plus, le service Web est (génériquement) un problème qui peut être fortement parallélisé. AMD se concentre plutôt spécifiquement sur "de nombreux cœurs pour un travail plus rapide", et LAMP (là encore, de manière générique) a tendance à bien répondre à cela.

Un domaine auquel vous devez vraiment prêter attention est les dépendances à un seul thread dans vos applications. Les pièces AMD n'évoluent pas aussi loin dans le sens des aiguilles d'une montre que les pièces Intel, de sorte que les processus qui sont fondamentalement à fil unique peuvent goulot d'étranglement de votre système global beaucoup plus rapidement qu'il ne le ferait sur des pièces CPU plus rapides. Vous seul savez si cela s'applique à vous ou non. Certaines opérations de base de données peuvent être mieux servies par des processeurs Intel plus rapides avec un nombre de cœurs plus petit, juste pour que ces quelques gros threads puissent vraiment crier.

Le code d'application est également important ici. Certains processus de serveur Web de longue durée pourraient ralentir considérablement le temps d'exécution d'un seul thread et souhaiteraient également une horloge plus rapide. Cela peut être résolu en réécrivant la nécessité de ce long processus, mais d'ici là, une horloge plus rapide serait bien.

Mais en général, pour les charges de travail de style lots-o-webserver-vm, ces parties à 12 cœurs peuvent évoluer de manière assez sacrée. Si vous rencontrez des problèmes de thread unique, opter pour les composants à 8 cœurs cadencés plus élevés serait un compromis acceptable.

sysadmin1138
la source
Merci, malheureusement, le système AMD ne sera pas un bulldozer. Il s'agit d'un AMD Opteron 6140 (ou similaire).
Morgan Tocker
@MorganTocker En l'occurrence, je connais cette classe de CPU, et c'est pour cela que j'ai écrit mon article. Bulldozer a des problèmes spécifiques auxquels je ne suis pas allé.
sysadmin1138
4

Pour la plupart, vous constaterez que les deux processeurs sont très comparables. Les processeurs AMD ont un léger avantage dans les vitesses de RAM (généralement) en raison du 4ème canal. Les processeurs Intel ont généralement un CPI inférieur (peut-être davantage avec HT , bien que cela dépende beaucoup de la charge de travail). AMD sont généralement moins chers.

La plupart de ces facteurs donneront un avantage à l'un ou à l'autre, selon votre charge de travail. Ni l'un ni l'autre ne sera significativement pire que l'autre (en supposant des configurations sensées et un CapEx à peu près égal).

Chris S
la source
2

Vous devez prendre en compte les différences de performances que les différentes architectures de RAM peuvent apporter, et déterminer si oui ou non c'est un facteur décisif pour votre organisation.

Également, en guise de remarque secondaire, bien que vous ne puissiez pas être préoccupé par les performances de pointe, si vos machines virtuelles n'ont pas chacune plusieurs cœurs et / ou que les tâches spécifiques à l'intérieur sont à thread unique, il y a un avantage de performance considérable dans les intels par cœur que AMD, même si le nombre total de cœurs est inférieur.

Sandroid
la source
Supposons que nos applications sont convenablement multi-threadées (les serveurs Web le sont; prêts à accepter que MySQL ne l'est pas entièrement).
Morgan Tocker
2

La principale différence réside dans l'approche; dans le milieu de gamme, AMD met légèrement l'accent sur les cœurs dans une pièce qui coûte à peu près autant qu'une pièce Intel similaire. La partie Intel aura moins de cœurs cadencés plus haut.

Ainsi, pour les charges de travail d'applications Web virtualisées, vous souhaiterez probablement privilégier les systèmes AMD.

À moins qu'il n'y ait une grande différence de prix, je ne m'inquiéterais pas pour les dollars. Je regarderais plus le sous-système d'E / S. Et, le TCO sur 40 serveurs sera principalement le support, les licences logicielles, le cas échéant, et le personnel, probablement pas les serveurs eux-mêmes.

Au minimum, vous devez vous rendre service, faire appel aux deux fournisseurs et exécuter vos systèmes sur leur matériel avant de vous engager sur 40 serveurs à partir de l'un ou l'autre. Vous seul pouvez répondre correctement à la question pour votre charge de travail particulière.

alphadogg
la source
Merci pour votre réponse! Nous n'avons pas une seule charge de travail - nous en avons plusieurs. Donc, pour faire appel au fournisseur, nous devons migrer complètement, puis migrer à nouveau pour essayer les deux. Je me rends compte que c'est optimal, ce n'est tout simplement pas pratique dans notre cas. Nous pouvons choisir un plus petit nombre de rôles à déplacer et à projeter, mais pour ce faire, nous devons savoir ce que nous devrions mesurer / rechercher; d'où ma question;)
Morgan Tocker
Par charge de travail, je veux dire que vous avez une charge de travail GLOBALE composée (vraisemblablement) de nombreux serveurs différents faisant des choses différentes. Vous devriez pouvoir convertir un sous-ensemble de serveurs clés en images virtuelles assez facilement de nos jours (avec un logiciel qui peut aider cela) qui peut être chargé sur les serveurs que vous êtes sur le point d'acheter. Pas une tâche négligeable, mais la seule façon d'être sûr que non seulement le CPU, mais le sous-système d'E / S et tout le reste fonctionne en votre faveur. Sinon, tout le monde renonce à la main et estime. :)
alphadogg
1

Encore une chose à jeter, méfiez-vous si vous utilisez la virtualisation de tout type, la migration des invités d'Intel vers AMD peut être un vrai problème et le clustering entre les marques n'est pas du tout prévu. Restez sur une plate-forme pour chaque cluster et acceptez qu'il est difficile de passer de l'un à l'autre.

marque
la source
La migration en direct entre les architectures avec KVM semble être en grande partie un problème sur 64 bits: linux-kvm.org/page/…
Ophidian
L'utilisateur a dit "LAMP hérité"; ça sent comme il pourrait y avoir des invités 32 bits. Pourtant, il est bon de savoir que KVM surmonte le problème! Merci pour la note.
Mark
Oui, certains invités sont en 32 bits, mais nous prévoyons de déménager et d'être tous en 64 bits.
Morgan Tocker