2008-08-06 11 views
8

Die Diskussion über Dual vs Quadcore ist so alt wie die Quadcores selbst und die Antwort ist normalerweise "es hängt von Ihrem Szenario ab". Also hier ist das Szenario ein Webserver (Windows 2003 (nicht sicher, ob x32 oder x64), 4 GB RAM, IIS, ASP.net 3.0).Mehr vs. schnellere Kerne auf einem Webserver

Mein Eindruck ist, dass die CPU in einem Webserver nicht so schnell sein muss, weil Anfragen normalerweise ziemlich leicht sind, also sollte mehr (langsamere) Kerne eine bessere Wahl sein, da wir viele kleine Anfragen bekommen.

Aber da ich nicht viel Erfahrung mit IIS Load Balancing habe und da ich nicht viel Geld ausgeben will nur um herauszufinden, dass ich die falsche Wahl getroffen habe, kann jemand, der etwas mehr Erfahrung hat, kommentieren ob oder ob nicht mehr langsamere oder weniger schnellere Kerne besser sind?

Antwort

15

Für so etwas wie einen Webserver ist die Aufteilung der Aufgaben zur Handhabung jeder Verbindung (relativ) einfach. Ich sage, es ist sicher zu sagen, dass Web-Server eine der häufigsten (und gebügelten) Anwendungen von parallelem Code ist. Und da Sie einen Großteil der Verarbeitung in mehrere separate Threads aufteilen können, profitieren Sie von mehr Kernen. Dies ist einer der Hauptgründe, warum Shared Hosting überhaupt möglich ist. Wenn Server-Software wie IIS und Apache keine Anfragen parallel ausführen könnte, würde dies bedeuten, dass jede Seitenanforderung in einer Warteschlangen-Form ausgegeben werden müsste ... was Ladezeiten untragbar langsam machen würde.

Dies ist auch warum High-End-Server-Betriebssysteme wie Windows 2008 Server Enterprise etwa 64 Kerne und 2 TB RAM unterstützen. Dies sind Anwendungen, die diese vielen Kerne tatsächlich nutzen können.

Auch, da jede Anfrage wahrscheinlich geringe CPU-Auslastung hat, können Sie wahrscheinlich (für einige Anwendungen) mit langsameren Kernen durchkommen. Aber wenn jeder Kern schneller ist, kann das bedeuten, dass jede Aufgabe schneller erledigt werden kann und theoretisch mehr Aufgaben und Serveranfragen erledigt werden können.

1

Je mehr, desto besser. Je komplexer und abstrakter die Programmiersprachen werden, desto mehr Rechenleistung wird benötigt.

Atleat Jeff glaubt Quadcore is better.

3

Wir verwenden Apache auf Linux, die einen Prozess verarbeitet, um Anfragen zu bearbeiten. Wir haben festgestellt, dass mehr Kerne zu unserem Durchsatz beitragen, da sie die Latenz von Prozessen verringern, die darauf warten, in der Ausführungswarteschlange platziert zu werden. Ich habe nicht viel Erfahrung mit IIS, aber ich stelle mir vor, dass das gleiche Szenario mit seinem Thread-Pool gilt.

3

Mark Harrison sagte:

Ich habe nicht viel Erfahrung mit IIS haben, aber ich glaube, das gleiche Szenario mit seinen Thread-Pool gilt.

Tatsächlich - mehr Kerne = mehr Threads, die gleichzeitig ausgeführt werden. IIS ist von Natur aus Multithread und bietet einen einfachen Vorteil.