Wie skalierbar ist ZeroMQ?

8

Wie skalierbar ist ZeroMQ? Ich bin besonders daran interessiert, sein Potenzial für den Betrieb auf einer großen Anzahl (10.000 - 15.000) von Kernen zu verstehen.

    
Mark Harrison 14.02.2012, 23:47
quelle

3 Antworten

9

Wir haben versucht, es so skalierbar wie möglich zu machen, aber ich habe persönlich nur an bis zu 16 Kernboxen getestet. Bis zu dieser Grenze haben wir fast lineare Skalierung gesehen.

    
sustrik 15.02.2012, 01:00
quelle
10

Sie erwähnen nicht, ob Ihre 10k oder 15k Kerne auf der gleichen Box sind oder nicht.

Nehmen wir an, sie sind. Alle zwei Jahre kann sich die Anzahl der Kerne auf einer Box theoretisch verdoppeln. Wenn wir heute 16-Kern-Boxen haben, werden es in 20 Jahren 16K-Kerne sein.

Nun, Ihre Frage ist vielleicht, "wird ZeroMQ meiner Anwendung helfen, auf so viele Kerne zu skalieren, dass sie in den nächsten 20 Jahren skalierbar sein wird?" Die Antwort lautet "Ja, aber nur, wenn Sie es richtig verwenden". Dies bedeutet, dass Sie Ihre Anwendung mithilfe von inproc-Sockets und Mustern entwerfen, die die Arbeit und den Datenfluss ordnungsgemäß aufteilen. Sie müssen die Architektur im Laufe der Zeit anpassen.

Wenn Ihre Frage lautet: "Kann ich so viele Kerne gewinnbringend zwischen mehreren Anwendungen verwenden?", liegt die Antwort bei Ihrem O / S mehr als ZeroMQ. Kann Ihre I / O-Schicht die Last handhaben? Wahrscheinlich, ja.

Und wenn Ihre Frage lautet: "Kann ich ZeroMQ in einer Wolke von 10K-16K-Boxen verwenden?", lautet die Antwort "Ja, das hat sich bereits in der Praxis bewährt".

    
Pieter Hintjens 15.02.2012 18:59
quelle
5

Beachten Sie, dass, obwohl ZeroMQ intern Multithread ist, es möglicherweise nicht sinnvoll ist, sich allein darauf zu verlassen, um es auf eine große Anzahl von Kernen zu skalieren. Da ZeroMQ jedoch die gleiche API für die Kommunikation zwischen Maschinen, zwischen Prozessen und zwischen Threads verwendet, ist es einfach, Anwendungen mit ZeroMQ zu schreiben, die sich nahtlos in ein Szenario mit einem Prozess pro Kern oder in ein Gittergewebe davon verschieben lassen viele, viele Maschinen.

ZeroMQ hat bereits den Ruf, das schnellste strukturierte Messaging-Protokoll zu sein. Wenn Sie also Benchmarks zur Auswahl einer Technologie verwenden würden, sollte ZeroMQ definitiv einer davon sein.

Die zwei Hauptgründe für die Verwendung von ZeroMQ sind die einfach zu verwendende sprachübergreifende API (siehe alle Beispiele auf der ZeroMQ Guide-Site) und der geringe Overhead sowohl hinsichtlich der Bytes auf der Leitung als auch bezüglich der Latenzzeit . Zum Beispiel kann ZeroMQ das UDP-Multicasting nutzen, um schneller als jedes TCP-Protokoll zu laufen, aber der Anwendungsprogrammierer braucht keine neue API zu lernen. Es ist alles enthalten.

    
Michael Dillon 15.02.2012 01:41
quelle

Tags und Links