Latenz zwischen Azure-Webrolle und SQL Azure- und Anwendungsleistung

8

Azure-Webrolle und SQL Azure Latency

Hi Nur um zu wissen, dass es zwischen der Web-Worker-Rolle und SQL Azure eine Latenz und ein Timeout gibt, Event a Timeout zu bestimmten Zeiten (Diese a sind nicht zufällig häufig) 40% von 100 Pings haben kein 0ms Timeout

Wenn Web Worker-Rolle und SQL Azure im selben Rechenzentrum WARUM gibt es eine Zeitüberschreitung, da sie über ihr internes Netzwerk kommunizieren

Bitte beachten Sie die beigefügten Screenshots:

Die Anwendung, die auf dieser Web-Worker-Rolle läuft, hat mysteriöse Performance-Ups und -Downs. Das kann verschiedene Gründe haben, aber was muss ich wissen: Beeinflussen diese Statistiken über Latenz und Timeout die Performance von Webanwendungen? p>

Danke,

    
Sudantha 20.07.2012, 07:08
quelle

2 Antworten

7

Zunächst müssen Sie wissen, dass die Windows Azure SQL-Datenbank ein mandantenfähiges RDBMS mit hoher Dichte ist, das als Dienst angeboten wird. Das bedeutet, dass ein einzelner Server von möglicherweise hunderten von Kunden verwendet wird.

Ich schlage auch vor, dass Sie die SLA für die Dienste kennenlernen, Windows Azure SQL-Datenbank im Besonderen. Niemand hat jemals behauptet, dass es 0ms Latenz geben wird. Es gibt auch so etwas wie "Transient Conditions" (Transiente Bedingungen) "in der Windows Azure SQL-Datenbank.

Ein guter Vorschlag ist die Windows Azure SQL Datenbank Performance und Elasticity Guide .

Was die Leistung der Webanwendung anbelangt, so glaube ich nicht, dass nach dem Lesen des Leistungs- und Elastizitätsleitfadens die 200ms, die gelegentlich auftreten, der Kern-Engpass sind.

UPDATE nach dem ersten Kommentar

Sie werden immer Höhen und Tiefen in einer gemeinsamen Umgebung haben. Sie sollten auch erwarten, dass sich die Ausführungszeiten von Abfragen ändern. Dies ist in dieser Umgebung unvermeidlich und es muss etwas entworfen und gelebt werden. Hier gibt es keinen Zauberstab, und im Fall von Windows Azure SQL Database gibt es keinen dedizierten Server für Sie. Wenn Sie der Meinung sind, dass Ihre App zuverlässigere SQL Server-Dienste benötigt, können Sie die Windows Azure Virtual Machines versuchen und einen SQL Server-Cluster selbst erstellen. Ich denke (und das ist nur eine Vermutung), dass die Kommunikation zwischen Ihrem Cloud-Dienst und Ihren VMs, vorausgesetzt, dass alles in derselben Verfügbarkeit ist, vorhersehbarer ist.

Aktualisierung nach dem zweiten und dritten Kommentar:

Nun ja, vielleicht haben Sie Lizenzprobleme (ich bin der Experte für Lizenzierung). Ist das Ticket für die Höhen und Tiefen geöffnet? Wenn ja, können Sie versuchen, es zu eskalieren (weiß nicht wie, aber Sie haben Ihre Ticket-ID, Sie müssen auch einen Techniker zugewiesen haben und eine E-Mail über das Ticket - Antwort an alle auf diese E-Mail) . Wenn Sie das Ticket erstellt haben, muss auch ein kleiner Fragebogen vorhanden sein, um die geschäftlichen Auswirkungen Ihres Problems widerzuspiegeln. Dann muss dem Ticket eine übliche Antwortzeit zugewiesen worden sein. Wenn der Support nicht innerhalb dieser Zeit zu Ihnen zurückkommt, können Sie es definitiv eskalieren.

AKTUALISIEREN

Interessante Beobachtung, die ich habe, ist, dass in all Ihren Screenshots nur das erste Paket verzögert ist, dann hat jedes aufeinanderfolgende 0 Latenz. In allen Proben, die Sie zur Verfügung stellen. Wenn dies in 10 von 10 Fällen der Fall ist, haben Sie definitiv keine Probleme mit der Latenz. Ich schlage vor, dass Sie die Option "-t" im regulären Ping verwenden, um mehr als 4 Pakete zu senden und zu beobachten. Ich schlage vor, bei etwa 100 Paketen zu brechen und dann die Ergebnisse zu beobachten. Ich würde 4 Paketproben nicht berücksichtigen, wo nur die erste Latenz für jede Leistungsüberprüfung hat.

    
astaykov 20.07.2012, 07:46
quelle
15

Ich habe dies in einem anderen Thread gepostet, aber es ist alt und wurde geschlossen. Ich denke, dass es einige Ihrer Probleme hervorhebt.

Ich habe versucht, unsere Business-App in die Cloud zu verschieben. In Anbetracht der Tatsache, dass unsere Server vor Ort über 8 Jahre alt sind, sollte es bei den Azure-Diensten eine deutliche Verbesserung geben. Als wir jedoch unsere App testeten und die Cloud versus onsite verglichen, stellten wir fest, dass es in der Cloud fast dreimal so viel Latenz gab wie vor Ort (mehr als 8 Jahre alte Server) und 20% latenter, wenn man sie mit modernen Geräten vergleicht. Unsere App ist eine asp.net App und die DB ist etwa 11 GB groß.

SQL Azure und Leistung

  1. Verwenden Sie niemals eine gepoolte Verbindung in der Cloud. Wenn Sie dies tun, werden Ihre Abfragen links und rechts zentriert. Öffnen Sie stattdessen eine Verbindung und halten Sie sie offen, bis Sie fertig sind.
  2. Verwenden Sie das Zwischenspeichern. Sie haben keine Wahl, wenn Sie hoffen, dass dies funktioniert. Ich habe eine Website erfolgreich in der Cloud, aber ich musste Caching verwenden, um eine angemessene Leistung daraus zu machen.
  3. Erkenne, dass es nicht deine Schuld ist! Das Azure-Team muss ihr Ende mehr beheben als Ihr eigenes. Wir haben eine schlanke App, wir haben zehn Jahre lang Upgrades, Optimierungen und Optimierungen durchgeführt, und wenn wir es nicht schaffen, werden Sie es auch nicht tun.

Ich mag Azure als Konzept. Ich mag die Optionen. Ich mag die Erweiterbarkeit, aber ich mag die Leistung nicht. Ich hoffe, dass Microsoft etwas mehr Aufmerksamkeit darauf verwendet und einige Änderungen vornimmt, da niemand sein Geschäft dorthin verlagern sollte, bis dies behoben wurde.

Tests

Tests werden ausgeführt, indem eine Reihe von Abfragen ausgeführt wird, die auf genau die gleichen Daten zugreifen und über eine benutzerdefinierte Funktion im Code ausgeführt werden, die die Antwortzeit von der Erstellung eines Objekts bis zur entsorgten Zeit misst (gezwungen, in die Datenbank zu schreiben) ). Dieses Objekt umschließt den Code, der getestet wird.

Es wurde kein Caching für den Test aktiviert, aber ich habe den Code und die DB bereits einmal ausgeführt und die besten Ergebnisse erzielt, so dass der DB-Server die Abfrage optimieren konnte und der Webserver die Baugruppen ordnungsgemäß laden konnte .

Test 1 - Web und DB auf demselben guten Rechner

  • Quad-Core 2,5 GHz, 8 GB Ram @ 800Mhz mit 1300 FSB und SQL 2005
  • ergibt 290 ms Antwortzeit.

Test 2 - Web und DB auf demselben Rechner

  • SQL und Web auf 2 Proc (Dual-Core 3.0 GHz), 16 GB Ram @ 200Mhz mit 200 FSB und SQL 2005 Wirklich alter IBM Server.
  • Web und SQL sind lokal zueinander
  • ergibt 656 ms Antwortzeit.

Test 3 - Web getrennt von DB

  • SQL auf 2 Proc (Dual-Core 3.0 GHz), 16 GB Ram @ 200Mhz mit 200 FSB und SQL 2005
  • Web auf 1 Proc Dual-Core 3.0 GHz, 8 GB Ram @ 200Mhz mit 200 FSB
  • Wirklich alter IBM Server.
  • Web auf einer Maschine und SQL auf der anderen.
  • ergibt 796 ms Antwortzeit.

Test 4 - Azure

  • Mittlere VM auf Azure
  • SQL Azure DB
  • ergibt 3.174 ms Antwortzeit.

Schlussfolgerungen

  • Der Unterschied in der Latenzzeit beim Wechsel von einem Szenario mit einem Server zu einem Szenario mit zwei Servern betrug 140 ms .
  • Der Wechsel von diesem Szenario zu Azure war 2.518 ms . das ist 17,98 mal schlechter als auf meinen 8 Jahre alten Maschinen.

Tun Sie es nicht, bis sie das Problem behoben haben und nehmen Sie sich die Zeit, sie wissen zu lassen, dass es auch für Sie ein Problem ist.

    
Middletone 27.10.2012 12:42
quelle