Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für diese Checkliste für azure Well-Architected Framework Performance Efficiency:
| PE:12 | Kontinuierliche Leistungsoptimierung. Konzentrieren Sie sich auf Komponenten, die die Leistung im Laufe der Zeit verschlechtern, z. B. Datenbanken und Netzwerkfeatures. |
|---|
In diesem Leitfaden werden die Empfehlungen für eine kontinuierliche Leistungsoptimierung beschrieben. Kontinuierliche Leistungsoptimierung ist der Prozess der kontinuierlichen Überwachung, Analyse und Verbesserung der Leistungseffizienz. Die Leistungseffizienz passt sich an Erhöhungen und Abnahmen der Nachfrage an. Die Leistungsoptimierung muss eine fortlaufende Aktivität während der gesamten Lebensdauer der Arbeitsauslastung sein. Die Arbeitsauslastung beeinträchtigt häufig oder wird im Laufe der Zeit zu stark, und Faktoren, die Änderungen an Nutzungsmustern, Nachfrage, Features und technischen Schulden berücksichtigen sollten.
Definitionen
| Begriff | Definition |
|---|---|
| Datentiering | Eine Speicherstrategie, die daten basierend auf ihrer Zugriffshäufigkeit kategorisiert und entsprechend auf Speicherebenen speichert. |
| Technische Schulden | Die gesammelten Ineffizienzen, suboptimale Designentscheidungen oder Verknüpfungen, die während des Entwicklungsprozesses absichtlich durchgeführt wurden, um Code schneller zu liefern. |
| Time-to-Live | Ein Mechanismus, der eine Ablaufzeit für Daten festlegt. |
Die Leistungseffizienz ist der Zeitpunkt, an dem die Auslastung an der tatsächlichen Nutzung ausgerichtet ist. Eine Arbeitsauslastung, die überlastet ist, ist so problematisch wie eine, die unterperformt ist. Die Kompromisse unterscheiden sich. Die Überleistung wirkt sich auf die Kostenoptimierung aus. Schlechte Leistung wirkt sich auf Benutzer aus. Der Schlüssel zur Leistungseffizienz ist die Überwachung, Anpassung und Tests im Laufe der Zeit. Sie müssen die Leistungsmetriken regelmäßig überprüfen und bei Bedarf Anpassungen vornehmen, um sicherzustellen, dass die Workload effizient ist. Das Testen aller Änderungen vor und nach der Implementierung ist erforderlich, um Leistungsziele zu erreichen.
Entwickeln einer Leistungskultur
Eine Leistungskultur ist eine Umgebung, in der eine kontinuierliche Verbesserung erwartet wird und das Team aus der Produktion lernt. Leistungsoptimierung erfordert spezielle Fähigkeiten. Workload-Teams benötigen die richtigen Fähigkeiten und Denkweisen, um ihre Leistung zu optimieren, um Die Nachfrage zu steigern und zu verringern. Außerdem müssen Sie deren Zeit zuweisen, um die erforderliche Überwachung und Behebung von Leistungsproblemen zu unterstützen, sobald sie auftreten. Diese Teams benötigen klare Erwartungen. Beispielsweise müssen Leistungsziele, Basispläne und Abweichungsschwellenwerte (wie weit von der Basislinie akzeptabel ist) hoch sichtbar und sozialisiert werden.
Kompromiss: Kontinuierliche Leistungsoptimierungen erfordern ein Team, das über die richtigen Fähigkeiten und Zeit verfügt, um Leistungsprobleme zu finden und zu beheben. Das Dedidieren von Personal zur Leistung erhöht die Betriebskosten. Wenn Sie über begrenzte Personalressourcen verfügen, kann die kontinuierliche Leistungsoptimierung zeitabend von anderen betrieblichen Aufgaben in Anspruch nehmen.
Bewerten neuer Plattformfeatures
Die Auswertung neuer Plattformfeatures umfasst die Untersuchung der neuen Funktionen und Tools einer Plattform, die die Leistungseffizienz verbessern können, z. B. optimierte Speicherlösungen, Cachingmechanismen oder Ressourcenverwaltungstools. Neue Plattformfeatures können Wege eröffnen, um die Leistungseffizienz zu verbessern. Halten Sie Ihre Plattform und Tools up-to-datum, um sicherzustellen, dass Sie die neuesten Innovationen und bewährten Methoden verwenden. Überwachen Sie Feedback- und Leistungsmetriken aus diesen neuen Ergänzungen konsistent, um Ihren Ansatz zu verfeinern.
Priorisieren von Optimierungsbemühungen
Proaktives Optimieren der Leistung bedeutet, proaktive Maßnahmen zu ergreifen, um die Leistung der Workload zu verbessern und zu verbessern, bevor Leistungsprobleme auftreten. Die Verwendung proaktiver Maßnahmen umfasst das Identifizieren potenzieller Engpässe, überwachung von Leistungsmetriken und die Implementierung von Optimierungen, um sicherzustellen, dass die Workload effizient funktioniert und die gewünschten Leistungsziele erfüllt. Basierend auf der Analyse verschlechterter Komponenten, kritischer Abläufe und technischer Schulden können Sie Leistungsoptimierungen implementieren, die für jeden Bereich spezifisch sind. Verbesserungen können Codeänderungen, Infrastrukturanpassungen oder Konfigurationsupdates umfassen.
Priorisieren von verschlechterten Komponenten
Eine Workload verfügt häufig über Komponenten wie Datenbanken und Netzwerkkomponenten, die im Laufe der Zeit anfällig für Leistungsbeeinträchtigungen sind. Wenn sich die Workload weiterentwickelt und Sich die Nutzungsmuster ändern, wirken sich diese Änderungen häufig auf die Leistung einzelner Komponenten in der Workload aus. Erhöhte Daten in Datenbanken können zu längeren Abfragelaufzeiten und langsamerem Datenempfang führen. Änderungen in Verwendungsmustern können zu einem suboptimalen Abfrageentwurf führen. Abfragen, die einmal effizient waren, können ineffizient werden, da sich die Workload weiterentwickelt. Ineffiziente Abfragen können übermäßige Ressourcen verbrauchen und die Datenbankleistung beeinträchtigen. Eine höhere Auslastungsauslastung kann zu einem höheren Netzwerkdatenverkehr führen, was zu Überlastungs- und Latenzproblemen führt.
Es ist wichtig, kontinuierliche Anstrengungen zu unternehmen, um die Leistung dieser Komponenten zu optimieren. Identifizieren und beheben Sie Leistungsprobleme in Ihrer Workload proaktiv. Indem Sie bekannte, sich verschlechternde Komponenten priorisieren, können Sie potenzielle Leistungsprobleme proaktiv beheben und den reibungslosen Betrieb Ihrer Workload sicherstellen. Dies kann die Implementierung von Leistungsoptimierungstechniken, das Optimieren der Ressourcenzuweisung oder das Upgrade von Hardware- oder Softwarekomponenten nach Bedarf umfassen.
Priorisieren kritischer Flüsse
Kritische Abläufe sind die wichtigsten und wichtigsten Prozesse oder Workflows in der Workload. Indem Sie diese kritischen Abläufe priorisieren, stellen Sie sicher, dass die wichtigsten Teile der Workload für die Leistung optimiert sind. Das Wissen, welche Flüsse wichtig sind, hilft bei der Priorisierung der Optimierungsbemühungen. Die Optimierung der Leistungseffizienz der wichtigsten Bereiche Ihrer Anwendung bietet die höchste Rendite für Investitionen. Sie sollten kritische Flüsse und die beliebtesten Seiten überwachen. Suchen Sie nach Möglichkeiten, um sie effizienter zu gestalten.
Automatisieren der Leistungsoptimierung
Automatisierung kann sich wiederholende und zeitaufwendige manuelle Prozesse beseitigen, sodass sie effizient ausgeführt werden können. Die Automatisierung reduziert die Chancen auf menschliche Fehler und sorgt für Konsistenz bei der Ausführung von Optimierungsaufgaben. Durch die Automatisierung dieser Aufgaben können Sie auch Personen freigeben, um sich auf komplexere Aktivitäten und Aktivitäten zu konzentrieren, die Einen mehrwertigen. Sie können Automatisierung auf verschiedene Aufgaben anwenden, z. B. Leistungstests, Bereitstellung und Überwachung:
Automatisierte Leistungstests: Verwenden Sie automatisierte Leistungstesttools wie JMeter, K6 oder Selenium, um verschiedene Workloads und Szenarien zu simulieren.
Automatisierte Bereitstellung: Implementieren Sie automatisierte Bereitstellungsprozesse, um konsistente und fehlerfreie Bereitstellungen sicherzustellen. Verwenden Sie CI/CD-Tools, um den Bereitstellungsprozess zu automatisieren. Diese Tools können Ihnen dabei helfen, Leistungsengpässe zu erkennen, während Sie sie zum Testen auf Endpunkte verwenden, HTTP-Status überprüfen und sogar die Datenqualität und -variationen überprüfen.
Überwachung und Warnung: Richten Sie automatisierte Überwachungs- und Alarmsysteme ein, um Leistungsmetriken kontinuierlich zu überwachen und Abweichungen oder Anomalien zu erkennen. Wenn Leistungsprobleme erkannt werden, können automatisierte Warnungen ausgelöst werden, um die entsprechenden Teams oder Einzelpersonen zu benachrichtigen.
Vorfallverwaltung: Implementieren Sie ein automatisiertes Vorfallverwaltungssystem, das Warnungen empfangen, Tickets erstellen und den entsprechenden Teams Tickets zur Lösung zuweisen kann. Mit diesen Schritten wird sichergestellt, dass Leistungsprobleme umgehend behoben und den richtigen Ressourcen zugewiesen werden.
Automatisierte Diagnose: Entwickeln Sie automatisierte Diagnosetools oder Skripts, die Leistungsdaten analysieren und die Ursachen von Leistungsproblemen identifizieren können. Diese Tools können dabei helfen, bestimmte Bereiche oder Komponenten des Systems zu ermitteln, die Leistungsprobleme verursachen.
Automatisierte Wartungsaktionen: Definieren und Implementieren automatisierter Wartungsaktionen, die ausgelöst werden können, wenn bestimmte Leistungsprobleme erkannt werden. Diese Aktionen können das Neustarten von Diensten, das Anpassen der Ressourcenzuordnung, das Löschen von Caches oder die Implementierung anderer Leistungsoptimierungstechniken umfassen.
Self-Healing-Systeme: Erstellen Sie Selbstheilungsfunktionen in Ihr System, indem Sie den Wiederherstellungsprozess für bekannte Leistungsprobleme automatisieren. Diese Funktion kann das automatische Reparieren oder Anpassen der Systemkonfiguration umfassen, um eine optimale Leistung wiederherzustellen.
Technische Schulden angehen
Technische Schulden beziehen sich auf die angesammelten Ineffizienzen, suboptimale Designentscheidungen oder Verknüpfungen, die während des Entwicklungsprozesses getroffen werden, die sich auf die Leistung auswirken können. Technische Schulden, unklarer Code und übermäßig komplexe Implementierungen können die Leistungseffizienz erschweren. Die Bewältigung der technischen Schulden umfasst die Identifizierung und Lösung dieser Probleme, um die Gesamtleistung und Verhaltbarkeit der Arbeitsauslastung zu verbessern. Diese Arbeit kann das Umgestalten von Code, das Optimieren von Datenbankabfragen, die Verbesserung des Architekturdesigns oder die Implementierung bewährter Methoden umfassen. Vielleicht haben Sie technische Schulden eingeführt, um einen Stichtag zu erfüllen, aber Sie müssen die technischen Schulden beheben, während Sie die Leistungseffizienz im Laufe der Zeit optimieren.
Optimieren von Datenbanken
Die fortlaufende Optimierung von Datenbanken umfasst das Identifizieren und Implementieren von Optimierungen, um sicherzustellen, dass Datenbanken Lasten verarbeiten, schnelle Reaktionszeiten bereitstellen und die Ressourcenauslastung minimieren können. Durch die regelmäßige Optimierung von Datenbanken können Sie die Anwendungsleistung verbessern, Ausfallzeiten reduzieren und die Benutzerfreundlichkeit insgesamt verbessern.
Optimieren von Datenbankabfragen: Schlecht geschriebene SQL-Anweisungen können die Datenbankleistung beeinträchtigen. Ineffiziente JOIN-Bedingungen können zu nicht benötigten Datenverarbeitungen führen. Komplexe Unterabfragen, geschachtelte Abfragen und übermäßige Funktionen können die Ausführungsgeschwindigkeit verringern. Abfragen, die zu viele Daten abrufen, sollten umgeschrieben werden. Sie sollten Ihre am häufigsten verwendeten oder kritischen Datenbankabfragen identifizieren und optimieren. Die Optimierung trägt dazu bei, schnellere Abfragen sicherzustellen.
Verwalten Sie Indizes: Bewerten Sie Ihre Indizierungsstrategie, um sicherzustellen, dass Indizes ordnungsgemäß entworfen und verwaltet werden. Die Indexwartung umfasst das Identifizieren nicht verwendeter oder redundanter Indizes und das Erstellen von Indizes, die mit den Abfragemustern übereinstimmen. Datenbankindizes helfen beim Beschleunigen von Datenempfangsvorgängen. Für relationale Datenbanken müssen Sie die Indexfragmentierung überwachen. Sie sollten Indizes regelmäßig neu erstellen oder neu organisieren. Für nichtrelationale Datenbanken müssen Sie die richtige Indizierungsrichtlinie für Ihre Workload auswählen. Verwenden Sie die automatische Optimierung für Datenbanken, sofern verfügbar. Zu diesen Features gehören das automatische Erstellen fehlender Indizes, das Ablegen nicht verwendeter Indizes und die Plankorrektur. Weitere Informationen finden Sie unter Verwalten von Indizes zur Verbesserung der Leistung.
Modellentwurf überprüfen: Überprüfen Sie das Datenmodell, um sicherzustellen, dass Sie es für die spezifischen Anforderungen der Anwendung optimieren. Die Verbesserung der Abfrageleistung und des Datenabrufs kann zu Denormalisierung, Partitionierung oder anderen Techniken führen.
Optimieren Sie die Datenbankkonfiguration: Optimieren Sie Die Datenbankkonfigurationseinstellungen wie Speicherzuweisung, Datenträger-E/A und Parallelitätseinstellungen, um die Leistung und Ressourcenauslastung zu maximieren.
Optimieren der Dateneffizienz
Die Optimierung der Dateneffizienz ist der Prozess, um sicherzustellen, dass Daten auf möglichst effiziente Weise gespeichert, verarbeitet und darauf zugegriffen werden. Daten tiering and using time-to-live (TTL) are techniques that can be used to optimize data efficiency. Sie können diese Techniken in verschiedenen Datenspeicherszenarien anwenden, z. B. Datenbanken, Dateisysteme oder Objektspeicher.
Datenebenen verwenden: Die Datenebenen beinhalten das Kategorisieren von Daten basierend auf ihrer Wichtigkeit oder Häufigkeit des Zugriffs und dem entsprechenden Speichern von Daten in verschiedenen Ebenen. Das Einrichten von Datenebenen ermöglicht eine effizientere Nutzung von Speicherressourcen und verbessert die Leistung. Häufig verwendete oder kritische Daten können in Leistungsstufen gespeichert werden, während weniger häufig oder weniger kritische Daten in niedrigeren Kostenebenen gespeichert werden können. Ziel ist es, die Datennutzung im Laufe der Zeit zu überprüfen, um sicherzustellen, dass sich Daten auf der richtigen Ebene befinden. Wenn sich die Datenprioritäten ändern, sollten Daten von einer Ebene in eine andere verschoben werden.
Implementieren von Time-to-Live: Time-to-Live ist ein Mechanismus, der eine Ablaufzeit für Daten festlegt. Zeit-zu-Live ermöglicht das automatische Löschen oder Archivieren von Daten nach einem bestimmten Zeitraum, die Reduzierung der Speicheranforderungen und die Verbesserung der Datenverwaltung. Durch Festlegen einer geeigneten Zeit-zu-Live-Zeit ermöglichen Sie es, unnötige Daten zu entfernen, Speicherplatz freizugeben und die Gesamteffizienz zu verbessern. Sitzungsdaten, temporäre Dateien und Cachedaten sind häufige Ziele für die Zeit-zu-Live-Zeit. Datenbankeinträge können auch eine Zeit-zu-Live-Funktion aufweisen.
Risiko: Ein zu kurzes Zeitlimit kann Leistungsprobleme erzeugen.
Azure-Unterstützung
Automatisierung der Leistungsoptimierung: Azure Advisor bietet basierend auf der Workload-Telemetrie empfehlungen für die automatische Leistung . Sie sollten diese Empfehlungen regelmäßig überprüfen und behandeln. Azure Monitor bietet Echtzeit-Einblicke in die Leistung Ihres Systems und ermöglicht Ihnen das Einrichten von Warnungen basierend auf bestimmten Leistungsmetriken. Azure Log Analytics bietet automatisierte Diagnosen und Analysen zu gesammelten Protokollen und Metriken. Tools wie Azure Application Insights bieten Einblicke und Empfehlungen zur Optimierung der Leistung.
Zum Automatisieren der Korrektur verwenden Sie Automatisierungstools oder Skripts, um Wartungsaktionen automatisch auszuführen, wenn die Warnungen ausgelöst werden. Sie können Azure Automation, Azure Functions oder benutzerdefinierte Automatisierungslösungen verwenden.
Azure ermöglicht Leistungstests, um verschiedene Benutzerszenarien und Workloads zu simulieren. Automatisierte Tests können Ihnen helfen, Leistungsengpässe zu erkennen und Ihr System entsprechend zu optimieren. Tools wie Azure DevOps können Leistungstests automatisieren.
Optimieren von Datenbanken: Die SQL-Produktfamilie verfügt über viele integrierte Features, mit denen Sie die SQL-Datenbankleistung überwachen und beheben können. Sie sollten diese Features verwenden, um die Datenbankleistung aufrechtzuerhalten. Azure SQL-Datenbank verfügt über ein Feature zur automatischen Optimierung , das Abfragen kontinuierlich überwacht und verbessert. Sie sollten dieses Feature verwenden, um SQL-Abfragen automatisch zu verbessern.
Sie können Ihre Indizierungsrichtlinien mithilfe der Features von Azure Cosmos DB anpassen. Passen Sie die Richtlinien an, um die Leistungsanforderungen Ihrer Workload zu erfüllen.
Optimierung der Dateneffizienz: Mithilfe der Datenebenen können Sie Daten basierend auf ihrer Zugriffshäufigkeit und Wichtigkeit in verschiedenen Ebenen speichern. Sie hilft dabei, Die Speicherkosten und die Leistung zu optimieren. Azure bietet verschiedene Speicherebenen, z. B. hot, cool und archive tiers for blob data. Heiße Ebenen sind für häufig zugegriffene Daten optimiert, kühle Ebenen sind für selten zugegriffene Daten vorgesehen, und Archiv-Ebenen sind für sehr selten genutzte Daten geeignet. Durch die Verwendung der Speicherzugriffsstufe, die am besten für Ihre Daten geeignet ist, können Sie eine effiziente Datenspeicherung und -abruf gewährleisten.
Verwandte Links
- Optimale Wartung von Indizes zum Verbessern der Leistung und Verringern der Ressourcenauslastung
- Verbessern der Leistung von Azure-Anwendungen mithilfe von Azure Advisor
- Automatische Optimierung in Azure SQL-Datenbank und azure SQL Managed Instance
- Indizierungsrichtlinien in Azure Cosmos DB
Prüfliste zur Leistungseffizienz
Lesen Sie die vollständigen Empfehlungen.