Performance

Monitoring

Die RabbitMQ liefert als Message Broker System ein Monitoring mit, welches detailliert Aufschluss zur Nachrichtenverarbeitung der einzelnen Komponenten gibt. Hier sind bespielsweise die Queues und deren Nachrichtendurchsatz zu sehen: RabbitMQ Monitoring Service-Archivierung

In diesem Beispiel fällt sofort auf: Es sammeln sich einige Nachrichten in der PersistenceQueue vor den archive-writern an. Die nächste Maßnahme zur Performance-Steigerung wäre hier also eine (weitere) Skalierung der archive-writer Komponenten, soweit wie

  • die Schnittstelle zum Archiv-System hergibt
  • CPU/RAM Ressourcen für (aktive) archive-writer auf dem Server zur Verfügung stehen
  • bei erhöhter Performance an einer anderen Stelle ein Bottleneck entsteht, welches als nächstes skaliert werden kann.

Ergebnisse

Wie beschrieben hängen die Ergebnisse von der individuellen Implementierung und den Möglichkeiten der (Um-)Systeme ab. Wir haben hiermit aber eine Lösung, die nicht eine feste Performance mitliefert, sondern die individuell angepasst werden kann, insbesondere nach oben. Die Performance wird so in der Regel begrenzt durch z.B.

  • maximaler Datendurchsatz je Umsystem (Archiv-System, B2B Datenbank, Archiv-Index, RabbitMQ) der Archiv-Lösung erreicht
  • CPU/RAM Grenzen für die Services zur Archivierung erreicht

Beispiel

Bei einem Kunden konnten wir damit so die Performance um den Faktor 5 auf 4 Nachrichten/s = 350.000 Nachrichten/Tag steigern, bis die Schnittstelle zum Archiv-System erkennbar ausgelastet war. Für eine weitere Performance-Steigerung (wenn benötigt) muss diese Schnittstelle verbessert werden. Die Archiv-Lösung selbst lässt sich noch (theoretisch beliebig) weiter skalieren.

View Me   Edit Me