Gleichmäßigere Performance virtueller Festplatten durch IO-Limits

Mit dem nächsten Release unserer Gentoo-Plattform werden wir für alle virtuellen Maschinen die Geschwindigkeit der Festplatten neu regulieren. Die neuen Regeln sorgen dafür, dass die in unserem Cluster insgesamt verfügbare Performance gleichmäßiger verteilt wird und Lastspitzen einzelner VMs nicht übermäßig die Leistung von anderen VMs beeinträchtigen.

In der Vergangenheit haben wir allen VMs die gesamte Leistung unseres Clusters nach Bedarf unbegrenzt zur Verfügung gestellt. Dadurch konnten bei Lastspitzen sehr viele Operationen pro Sekunde durchgeführt werden. In einem gemischten System mit vielen VMs gleichen sich diese Effekte in Summe häufig aus. Allerdings ist es in den letzten Monaten häufiger dazu gekommen, dass mehrere Maschinen gleichzeitig extreme Lastspitzen gezeigt haben und kein Ausgleich mehr stattfinden konnte, sodass die Systeme anderer Kunden dadurch beeinträchtigt wurden.

Wir führen deshalb ein Limit für die Anzahl der Lese-/Schreib-Operationen pro Sekunde (IOPS) ein, um auch in Situationen mit hoher Last allen Kunden eine zufriedenstellende Performance anbieten zu können.

Das neue Limit, wird 250 IOPS betragen. Normale Festplatten mit mehr als 1 Terabyte Speicher können heute etwa 180 IOPS bereitstellen, sodass unsere VMs auch bei den typischen kleinen Speichermengen (30-100GiB) eine relativ hohe Menge an Operationen zulassen.

In der Vorbereitung zu dieser Umstellung haben wir die IOPS-Anforderungen aller VMs beobachtet und 250 als angemessenes Limit für die allermeisten Anwendungen gefunden. Einige Anwendungen, die häufig mehr in Anspruch genommen haben wurden bereits im Detail analysiert und durch optimierte Konfiguration mit dem neuen Limit in Einklang gebracht.

Durch das neue Limit können wir außerdem problematische Konfigurationen oder Programmierung schneller erkennen und Optimierungen vorschlagen. Folgende typische Szenarien können jetzt besser erkannt werden:

  • Systeme mit zu wenig RAM, die häufig swappen oder deren Dateisystem-Cache zu klein ist (haben wir beispielsweise bei Varnish gesehen)
  • Systeme mit ungünstigen Datenbankkonfigurationen, die nicht zum Zugriffsmuster der Anwendung passen (konnten wir beispielsweise bei MySQL mit MyISAM und großen Batch-Jobs mit vielen INSERT/DELETE-Operationen beobachten)

Diese Fälle können in Zukunft direkt auf einer VM erkannt werden, da die Maschine bei einen hohen Wert bei Variablen wie iowait in den CPU-Statistiken (z.B. mit top) anzeigen und das gesetzte Limit der 250 IOPS dauerhaft ausnutzen wird.

Um den Übergang sanft zu gestalten, werden wir mit dem kommenden Release alle Maschinen zuerst mit einem Limit von 1.000 IOPS ausstatten. Sollten sich daraus Probleme ergeben, dann werden wir diese gemeinsam mit Ihnen beheben. Nach einer Übergangszeit von 2 Wochen werden wir das Limit endgültig auf 250 IOPS absenken.

Sollte Ihre Anwendung trotz aller Optimierungen dauerhaft eine höhere Menge an IOPS benötigen, dann empfehlen wir Ihnen betroffene VMs auf unser SSD-basiertes Angebot umzustellen, bei dem wir jeder VM mindestens 10.000 IOPS anbieten.

Sollten Sie Fragen oder Feedback haben, dann lassen Sie es uns wissen.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s