2008-08-06 344 views
8

La discussion du double par rapport à Quadcore est aussi vieux 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 CPU dans un serveur Web n'a pas besoin d'être si 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 eu beaucoup de petites requêtes.contre Faster Cores sur un serveur web

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 pour découvrir que j'ai fait le mauvais choix, quelqu'un qui a un peu plus d'expérience peut-il commenter? sur le fait de savoir si les cœurs plus lents ou moins rapides sont meilleurs?

Répondre

15

Pour quelque chose comme un serveur web, répartir les tâches de traitement de chaque connexion est (relativement) facile. Je dis qu'il est sûr de dire que les serveurs Web est l'une des utilisations les plus courantes (et aplanies) du code parallèle. Et puisque vous êtes capable 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 partagé est même possible. Si un logiciel serveur comme IIS et Apache ne pouvait pas exécuter les requêtes en parallèle, cela signifierait que chaque requête de page devrait être diffusée en file d'attente ... ce qui rendrait probablement les temps de chargement insupportablement lents.

Ce aussi pourquoi serveur haut de gamme des systèmes d'exploitation comme Windows 2008 Server prennent en charge Enterprise quelque chose comme 64 coeurs et 2 To de RAM. Ce sont des applications qui peuvent réellement tirer parti de ce nombre de cœurs.

En outre, étant donné que chaque demande est a probablement faible charge CPU, vous pouvez probablement (pour certaines applications) sortir avec des noyaux plus lents. Mais évidemment, avoir chaque noyau plus rapidement peut signifier être capable de faire chaque tâche plus rapidement et, en théorie, gérer plus de tâches et plus de demandes de serveur.

1

Plus il y en a, mieux c'est. À mesure que les langages de programmation commencent à devenir plus complexes et plus abstraits, plus de puissance de traitement sera nécessaire.

Atleat Jeff croit Quadcore is better.

3

Nous utilisons apache sous linux, qui bifurque un processus pour traiter les demandes. Nous avons constaté qu'un plus grand nombre de cœurs facilitait notre débit, car ils réduisaient 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.

3

Mark Harrison a déclaré:

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

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