Mehr vs. schnellere Kerne auf einem Webserver [geschlossen]

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).

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

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

    
Michael Stum 06.08.2008, 18:28
quelle

4 Antworten

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önnten, würde dies bedeuten, dass jede Seitenanforderung in einer Warteschlangen-Form ausgegeben werden müsste ... was Ladezeiten unerträglich langsam machen würde.

Dies ist auch der Grund, 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.

Da jede Anfrage wahrscheinlich eine geringe CPU-Last 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.

    
Adam Haile 06.08.2008, 18:40
quelle
3

Wir verwenden Apache für Linux, das einen Prozess für die Verarbeitung von Anfragen ausgibt. Wir haben festgestellt, dass mehr Kerne zu unserem Durchsatz beitragen, da sie die Latenz von Prozessen reduzieren, 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.

    
Mark Harrison 06.08.2008 18:33
quelle
3

Mark Harrison sagte:

  

Ich habe nicht viel Erfahrung mit IIS, aber ich stelle mir vor, dass das gleiche Szenario mit seinem Thread-Pool gilt.

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

    
Greg Hurlman 06.08.2008 18:40
quelle
1

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

Atleat Jeff glaubt, Quadcore ist besser .

    
GateKiller 06.08.2008 18:31
quelle

Tags und Links