asp.net - Plus contre des cœurs plus rapides sur un serveur Web

Translate

La discussion de Dual vs Quadcore est aussi ancienne que les Quadcores lui-même et la réponse est généralement "cela dépend de votre scénario". Donc ici le scénario est un serveur Web (Windows 2003 (pas sûr si x32 ou x64), 4 Go de RAM, IIS, ASP.net 3.0).

Mon impression est que le processeur d'un serveur Web n'a pas besoin d'être aussi rapide car les requêtes sont généralement plutôt légères, donc avoir plus de cœurs (plus lents) devrait être un meilleur choix car nous avons de nombreuses petites requêtes.

Mais comme je n'ai pas beaucoup d'expérience avec l'équilibrage de charge IIS et que je ne veux pas dépenser beaucoup d'argent uniquement pour découvrir que j'ai fait le mauvais choix, quelqu'un qui a un peu plus d'expérience peut-il dire si oui ou non Des noyaux plus lents ou moins rapides, c'est mieux?

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Pour quelque chose comme un serveur Web, répartir les tâches de gestion de chaque connexion est (relativement) facile. Je dis qu'il est prudent de dire que les serveurs Web sont l'une des utilisations les plus courantes (et aplanies) du code parallèle. Et comme vous êtes en mesure de diviser une grande partie du traitement en plusieurs threads discrets, plus de cœurs vous sont réellement utiles. C'est l'une des principales raisons pour lesquelles l'hébergement mutualisé est même possible. Si un logiciel serveur comme IIS et Apache ne pouvait pas exécuter des requêtes en parallèle, cela signifierait que chaque requête de page devrait être distribuée dans une file d'attente ... rendant probablement les temps de chargement insupportablement lents.

C'est également la raison pour laquelle les systèmes d'exploitation serveur haut de gamme tels que Windows 2008 Server Enterprise prennent en charge quelque chose comme 64 cœurs et 2 To de RAM. Ce sont des applications qui peuvent réellement tirer parti de ce nombre de cœurs.

De plus, étant donné que chaque requête a probablement une faible charge CPU, vous pouvez probablement (pour certaines applications) vous en sortir avec des cœurs plus lents. Mais évidemment, avoir chaque cœur plus rapide peut signifier être en mesure d'accomplir chaque tâche plus rapidement et, en théorie, de gérer plus de tâches et plus de demandes de serveur.

La source
Translate

Nous utilisons apache sur linux, qui crée un processus pour gérer les requêtes. Nous avons constaté que davantage de cœurs améliorent notre débit, car ils réduisent la latence des processus en attente d'être placés dans la file d'attente d'exécution. Je n'ai pas beaucoup d'expérience avec IIS, mais j'imagine que le même scénario s'applique avec son pool de threads.

La source
Translate

Mark Harrison a déclaré:

Je n'ai pas beaucoup d'expérience avec IIS, mais j'imagine que le même scénario s'applique avec son pool de threads.

En effet - plus de cœurs = plus de threads exécutés simultanément. IIS est intrinsèquement multithread et en tire facilement avantage.

La source
Translate

Plus il y en a, mieux c'est. Au fur et à mesure que les langages de programmation deviennent de plus en plus complexes et abstraits, plus la puissance de traitement sera requise.

Atleat Jeff croitQuadcore c'est mieux.

La source