asp.net - Mehr gegen schnellere Kerne auf einem Webserver

Translate

Die Diskussion zwischen Dual vs. Quadcore ist so alt wie die Quadcores selbst und die Antwort lautet normalerweise "es hängt von Ihrem Szenario ab". Hier ist das Szenario also 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, da Anforderungen normalerweise eher leicht sind. Daher sollten mehr (langsamere) Kerne die bessere Wahl sein, da wir viele kleine Anforderungen haben.

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

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

Alle Antworten

Translate

Für so etwas wie einen Webserver ist es (relativ) einfach, die Aufgaben der Handhabung jeder Verbindung aufzuteilen. Ich kann mit Sicherheit sagen, dass Webserver eine der häufigsten (und ausgebügelten) Anwendungen von parallelem Code sind. Und da Sie einen Großteil der Verarbeitung in mehrere diskrete Threads aufteilen können, profitieren Sie tatsächlich von mehr Kernen. Dies ist einer der Hauptgründe, warum Shared Hosting überhaupt möglich ist. Wenn Serversoftware wie IIS und Apache Anforderungen nicht parallel ausführen könnten, müsste jede Seitenanforderung in einer Warteschlange verteilt werden, was die Ladezeiten wahrscheinlich unerträglich langsam macht.

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

Da jede Anforderung wahrscheinlich eine geringe CPU-Auslastung aufweist, können Sie (für einige Anwendungen) wahrscheinlich mit langsameren Kernen davonkommen. Ein schnellerer Kern kann natürlich bedeuten, dass jede Aufgabe schneller erledigt werden kann und theoretisch mehr Aufgaben und mehr Serveranforderungen bearbeitet werden können.

Quelle
Translate

Wir verwenden Apache unter Linux, das einen Prozess zur Bearbeitung von Anforderungen abspaltet. Wir haben festgestellt, dass mehr Kerne unseren Durchsatz unterstützen, da sie die Latenz von Prozessen verringern, die darauf warten, in die Ausführungswarteschlange gestellt zu werden. Ich habe nicht viel Erfahrung mit IIS, aber ich stelle mir vor, dass das gleiche Szenario für den Thread-Pool gilt.

Quelle
Translate

Mark Harrison sagte:

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

In der Tat - mehr Kerne = mehr Threads, die gleichzeitig ausgeführt werden. IIS ist von Natur aus Multithread-fähig und nutzt dies problemlos aus.

Quelle
Translate

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

Atleat Jeff glaubtQuadcore ist besser.

Quelle