Netidee Blog Bild
Ressourcenverbrauch von Load Balancern
Messungen an echter Hardware (24.04.2022)
Förderjahr 2020 / Stipendien Call #15 / ProjektID: 5115 / Projekt: Improving Serverless Edge Computing for Network Bound Workloads

Wie die Load Balancer im Detail funktionieren und wie sie sich verhalten haben wir nun im Detail erklärt. Was wir allerdings noch nicht besprochen haben, und was für Edge Computing enorm wichtig ist, ist der Ressourcenverbrauch. Besonders bei Edge-Computing, wo spezialisierte Hardware zum Einsatz kommt und Ressourcen potenziell rar sind, ist es wichtig effizient zu argieren. Methodologisch arbeite ich mit einer simulierten Serverless Computing Umgebung. Um die Ergebnisse aber so realistisch wie möglich zu halten werden so viele Aspekte wie möglich aus echen Daten abgeleitet. Die Berechnungszeiten für Anfragen werden bespielsweise anhand von echten Experimenten gesetzt, bei denen die selben Anfragen tatsächlich auf verschiedenster Hardware ausgeführt und die Zeit gemessen wurden. Um den Simulator zu verbessern, und nachdem die Daten für Load Balancer fehlen führe ich ebenfalls solche Experimente durch, die ich in diesem Blogpost beschreiben werde.

Hierzu benutze ich einen experimentellen Cluster der Distributed Systems Group, bei der ich diese Diplomarbeit schreibe. Der Cluster hat eine weite Bandbreite an Geräten, angefangen von solchen mit leistungsfähigen Intel Xeon Prozessoren, über NVIDIA Jetson Boards mit Machine Learning Beschleunigern bis hin zu einem einfachen ARM Raspberry Pi 3. Die Experimente sind vergleichsweise simpel: Während Anfragen an den Load Balancer geschickt werden misst eine Software den Ressourcenverbraucht des Load Balancers mit. Konkret senden wir eine steigende Anzahl an Anfragen, beginnend mit 1 Anfrage pro Sekunde bis hin zu 250 Anfragen pro Sekunde. Die Anfragen sind zwar nicht echt, aber wir simulieren realistische Serverless Antworten, inklusive realistischen Antwortzeiten. Als simulierte Serverless Functions-Instanzen benutze ich Responder, eine Software welche ich speziell für diesen Zweck geschrieben habe. Die Software wird nach wie vor an der Gruppe verwendet und ist selbstverständlich Open Source: https://github.com/jjnp/responder. Zum Messen der Daten verwenden wir telemd, eine Monitoring Lösung welche ebenfalls in der DSG entwickelt wurde, und welche ich um die für mich notwendigen Metriken erweitert habe. Auch telemd ist OSS: https://github.com/edgerun/telemd Ausgeführt wird alles in Kubernetes, was ein repräsentativer Unterbau für Serverless Computing ist, wie OpenFaaS zeigt. In einem weiteren Experiment testen wir den Effekt von Antwortzeiten auf den Ressourcenverbrauch, indem wir unterschiedliche Antwortzeiten bei Responder konfigurieren.

Ressourcenverbrauch pro Gerät

Ressourcenverbrauch nach Antwortzeit

 

Die beiden folgenden Grafiken zeigen die Ergebnisse. Ohne sich nun besonder in Details zu verlieren (Interessierte Leser*Innen verweise ich hier an die fertige Arbeit) zeigt das Experiment folgende Interessante Ergebnisse:

  • Der Ressourcenverbrauch unterscheidet sich dramatisch zwischen den unterschiedlichen Geräten.
  • Beim CPU Verbrauch liegen die Ergebnisse innerhalb der Erwartungen, ein Load Balancer belastet also vergleichsweise langsame Geräte mehr als Leistungsstarke.
  • Beim RAM Verbrauch allerdings zeigen sich erstsaunliche Muster. Manche Geräte verbrauchen ein vielfaches von anderen. Wodurch genau dieses Verhalten hervorgerufen wird konnte ich nicht zeigen, allerdings scheint es nicht durch die Prozessorarchitektur oder etwas vergleichbares ausgelöst zu werden. Eventuell liegt der Unterschied an den teilweise unterschiedlichen Linux Distributionen und Versionen der Geräte. Was es allerdings Eindrucksvoll zeigt ist die unvorhersehbare Heterogenität von Edge Computing und wie wenig man sich auf sonst typische Annahmen verlasen kann.
  • Ein interessantes Ergebnis ist auch, dass längere Antwortzeiten mehr Ressourcen verbrauchen, insbesondere RAM. Dies ist auch verständlich, weil die Anfrage länger im Speicher gehalten werden muss, und daher insgesamt auch mehr Speicher belegt wird. Es zeigt allerdings, dass die schnelleren Antwortzeiten unserer Load Balancer Implementierung nicht nur bessere Performance bieten, sondern hierdurch auch den Ressourcenverbrauch senken. Der Aufwand zusätzlicher Berechnungen beim Load Balancing wird also durch gerineren Speicherverbrauch ausgeglichen.
CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.

    Weitere Blogbeiträge

    Datenschutzinformation
    Der datenschutzrechtliche Verantwortliche (Internet Privatstiftung Austria - Internet Foundation Austria, Österreich) würde gerne mit folgenden Diensten Ihre personenbezogenen Daten verarbeiten. Zur Personalisierung können Technologien wie Cookies, LocalStorage usw. verwendet werden. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, können Sie Ihre Einwilligung jederzeit via unserer Datenschutzerklärung anpassen oder widerrufen.