Erlangs 99,9999999% (neun Neunen) Zuverlässigkeit


98

Es wurde berichtet, dass Erlang seit über 20 Jahren in Produktionssystemen mit einer Verfügbarkeit von 99,9999999% eingesetzt wird.

Ich habe wie folgt gerechnet:

20*365.25*24*60*60*(1 - 0.999999999) == 0.631 s

Das bedeutet, dass das System innerhalb von 20 Jahren nur weniger als eine Sekunde Ausfallzeit hat. Ich versuche nicht, die Gültigkeit davon in Frage zu stellen, ich bin nur neugierig, wie wir ein System (absichtlich oder versehentlich) für nur 0,631 Sekunden herunterfahren können. Könnte uns jemand, der mit großen Softwaresystemen vertraut ist, dies erklären? Danke dir.


Weiß jemand, wie man die Ausfallzeit eines Dienstes über einen Cluster von Verarbeitungseinheiten (oder Maschinen) berechnet?


28
Vielleicht wird es auf waayyyyyy mehr als nur einem Computer verwendet - einige Länder haben eine Geburtenrate von 1,2 Kindern ...
weltraumpirat

3
@weltraumpirat Dies ist sinnvoll, da Erlang aufgrund seiner Verbreitung auf vielen Computern verwendet werden muss.
Ning

12
Ja. Es ist die Betriebszeit des Dienstes, nicht die Computer, auf denen er ausgeführt wird.
RCE

Antworten:


85

Die Zuverlässigkeitszahl sollte nicht die Gesamtzeit messen, die ein Teil AXD301(fragliches Projekt) jemals über 20 Jahre lang heruntergefahren wurde. Dies ist die Gesamtzeit in diesen 20 Jahren, in der der vom AXD301System bereitgestellte Dienst jemals offline war. Subtiler Unterschied. Wie Joe Armstrong hier sagt :

Der AXD301 hat eine Zuverlässigkeit von neun Neunen erreicht (ja, Sie haben das richtig gelesen, 99,9999999%). Lassen Sie uns dies in einen Zusammenhang bringen: 5 Neunen werden als gut angesehen (5,2 Minuten Ausfallzeit / Jahr). 7 Neunen fast unerreichbar ... aber wir haben 9.

Warum ist das? Kein gemeinsamer Status sowie ein ausgeklügeltes Fehlerbehebungsmodell.

Wenn Sie etwas tiefer gehen, AXD301lesen Sie in der Doktorarbeit von Joe, dem ursprünglichen Autor von Erlang (einschließlich einer Fallstudie von ):

Eines der in diesem Kapitel untersuchten Projekte ist das Ericsson AXD301, ein hochleistungsfähiger, hochzuverlässiger Geldautomatenschalter .

Solange das Netzwerk, zu dem der Switch gehörte, ohne Ausfallzeit lief, kann der Autor "Neun-Neun-Zuverlässigkeit" angeben AXD301(was alles war, was er jemals gesagt hat, um Einzelheiten zu vermeiden). Dies bedeutet nicht unbedingt, dass Erlang die einzige Ursache für eine derart hohe Zuverlässigkeit ist.

EDIT: In der Tat scheint "20 Jahre" selbst eine Fehlinterpretation. Joe erwähnt im selben Artikel eine Zahl von 20 Jahren, die jedoch nicht mit der Neun-Neun-Zuverlässigkeitszahl zusammenhängt, die möglicherweise aus einer viel kürzeren Studie hervorgegangen ist (wie andere bereits erwähnt haben).


13
"Ja. Es ist die Betriebszeit des Dienstes, nicht die Computer, auf denen er ausgeführt wird." - Sagt RCE
Luke Stanley

Es ist, als wäre ich wieder in der Schule bei GT MSCS 1993! Du hast den Nagel auf den Kopf getroffen.
Mike Polen

2
Wie ich in meiner Antwort erklärt habe, basierte diese Zahl nicht auf 20 Jahren AXD301-Betrieb. Es basierte auf 14 Knoten über einen Zeitraum von 8 Monaten in einem einzigen Versuch von British Telecom. Dies ist kaum repräsentativ für die Betriebseigenschaften der gesamten AXD301-Linie über 20 Jahre (von denen ich sicher bin, dass sie immer noch herausragend sind, nur nicht neun Neunen).
Edwin Fine

56

Während die anderen den speziellen Fall angesprochen haben, nach dem Sie fragen, scheint Ihre Frage auf einem Missverständnis zu beruhen. Die Art und Weise, wie Sie die Frage gestellt haben, lässt mich glauben, dass Sie glauben, dass es einen manuellen Prozess gibt, um das System wieder zum Laufen zu bringen, nachdem es abgestürzt ist oder zur Wartung heruntergefahren wurde.

Erlang verfügt über mehrere Funktionen, die die Arbeitszeit des Menschen als Ursache für Ausfallzeiten verringern:

  1. Hot Code Reload . In einem Erlang-System ist es einfach, ein Ersatzmodul für ein vorhandenes zu kompilieren und zu laden. Der BEAM-Emulator führt den Tausch automatisch durch, ohne anscheinend etwas anzuhalten. Es gibt zweifellos eine winzige Zeitspanne, in der diese Übertragung stattfindet, aber sie erfolgt automatisch in Computerzeit und nicht manuell in menschlicher Zeit. Dies macht es möglich , mit im Wesentlichen zu tun Upgrades null Ausfallzeiten. (Sie könnten Ausfallzeiten haben, wenn das Ersatzmodul einen Fehler aufweist, der das System zum Absturz bringt. Deshalb testen Sie dies, bevor Sie es für die Produktion bereitstellen.)

  2. Vorgesetzte . In die OTP-Bibliothek von Erlang ist ein Überwachungsframework integriert, mit dem Sie festlegen können, wie das System bei einem Absturz eines Moduls reagieren soll. Die Standardaktion besteht darin, das ausgefallene Modul neu zu starten. Angenommen, das neu gestartete Modul stürzt nicht sofort wieder ab, kann die Gesamtausfallzeit Ihres Systems Millisekunden betragen. Ein solides System, das kaum jemals abstürzt, kann im Laufe der Laufzeit nur einen Bruchteil einer Sekunde der gesamten Ausfallzeit ansammeln.

  3. Prozesse . Diese entsprechen in etwa Threads in anderen Sprachen, außer dass sie den Status nur über persistente Datenspeicher gemeinsam nutzen. Ansonsten erfolgt die Kommunikation über die Nachrichtenübermittlung. Da Erlang-Prozesse sehr kostengünstig sind (weitaus billiger als Betriebssystem-Threads), wird ein lose gekoppeltes Design gefördert, sodass bei einem Ausfall eines Prozesses nur ein winziger Teil des Systems Ausfallzeiten aufweist. In der Regel startet der Supervisor diesen einen Prozess neu, ohne dass dies Auswirkungen auf den Rest des Systems hat.

  4. Asynchrone Nachrichtenübermittlung . Wenn ein Prozess einem anderen etwas sagen möchte, gibt es einen erstklassigen Operator in der Erlang-Sprache, der dies ermöglicht. Der Nachrichtensendeprozess muss nicht warten, bis der Empfänger die Nachricht verarbeitet hat, und er muss nicht den Besitz der gesendeten Daten koordinieren. Die asynchrone Funktionsweise des Erlang-Nachrichtenübermittlungssystems sorgt dafür. Dies trägt zur Aufrechterhaltung hoher Betriebszeiten bei, da die Auswirkungen von Ausfallzeiten in einem Teil eines Systems auf andere Teile verringert werden.

  5. Clustering . Dies folgt aus dem vorherigen Punkt: Erlangs Nachrichtenübermittlungsmechanismus funktioniert transparent zwischen Computern in einem Netzwerk, sodass ein Sendevorgang nicht einmal darauf achten muss, dass sich der Empfänger auf einem separaten Computer befindet. Dies bietet einen einfachen Mechanismus zum Aufteilen einer Arbeitslast auf viele Maschinen, von denen jede separat ausfallen kann, ohne die Gesamtbetriebszeit des Systems zu beeinträchtigen.


14
Es ist auch wichtig zu beachten, wie Sie Ausfallzeiten zählen. Es spielt keine Rolle, wie oft Sie Codemodule austauschen, ausgefallene Module neu starten usw., solange der ATM-Switch-Prozess selbst nicht stoppt. Wie bei YouTube - der Download kann für Sekunden pausieren - aber solange Sie genügend Puffer haben, wird das Video noch
abgespielt

Alles, was Sie über Erlang geschrieben haben, ist korrekt. Das Missverständnis ist, dass die gesamte AXD301-Linie neun Neun verfügbar ist, die ich in meiner Antwort anspreche.
Edwin Fine

33

Die Verfügbarkeitszahl von 99,9999999% ist eine häufig zitierte, aber grundlegend irreführende Statistik. Mats Cronqvist, eines der AXD-301-Teammitglieder, hielt auf der Erlang Factory-Konferenz 2010 in San Francisco eine Präsentation (Video) (an der ich teilnahm), in der diese genaue Verfügbarkeitsstatistik erörtert wurde. Ihm zufolge wurde es von British Telecom für einen Testzeitraum (ich glaube von Januar bis September 2002) von "5 Knotenjahren" mit dem AXD-301 beansprucht. Am Ende des Versuchs befanden sich 14 Knoten mit Live-Verkehr.

Cronqvist erklärte ausdrücklich, dass dies nicht repräsentativ für die gesamte AXD-301-Geschichte oder Erlang im Allgemeinen sei und dass er nicht glücklich darüber sei, dass Joe Armstrong dies immer wieder zitierte, was zu übertriebenen Erwartungen an Erlangs Zuverlässigkeit führte. Andere haben geschrieben, dass fünf Neunen eine realistischere Zahl sind.

Es sollte gesagt werden, dass ich ein leidenschaftlicher Erlang-Unterstützer und -Entwickler bin, der glaubt, dass der fachmännische Einsatz von Erlang zwar zu sehr hoch verfügbaren Systemen führen kann, aber nur den Hype reduzieren möchte. Ich gehe natürlich davon aus, dass Cronqvists Darstellung der Fakten korrekt ist und keinen Grund hat, etwas anderes zu glauben.


7

Ich verstehe diese Statistiken so, dass sie über ALLE AXD301-Systeme in der Produktion berechnet werden. Wir können davon ausgehen, dass ein AXD301 bei einem schwerwiegenden Problem länger als 0,631 Sekunden ausfällt. Während dieser Zeit übernimmt ein anderer AXD301, um das Netzwerk betriebsbereit zu halten.

Wenn Sie jedoch die Gesamtzahl der Stunden aller laufenden AXD301 summieren und das Verhältnis für diejenige festlegen, bei der AXD301 ausfällt, erhalten Sie 99,999999%

So verstehe ich diese Figur.

Ich hoffe das hilft.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.