Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Is van toepassing op deze aanbeveling voor de controlelijst prestatie-efficiëntie van Azure Well-Architected Framework:
| PE:12 | Optimaliseer voortdurend de prestaties. Richt u op onderdelen die de prestaties in de loop van de tijd verslechteren, zoals databases en netwerkfuncties. |
|---|
In deze handleiding worden de aanbevelingen voor continue optimalisatie van prestaties beschreven. Continue prestatieoptimalisatie is het proces van voortdurend bewaken, analyseren en verbeteren van de prestaties. Prestatie-efficiëntie past zich aan toenames en afnames in de vraag. Prestatieoptimalisatie moet een doorlopende activiteit zijn gedurende de hele levensduur van de workload. De prestaties van workloads verslechteren vaak of worden overdreven in de loop van de tijd, en factoren om rekening te houden met wijzigingen in gebruikspatronen, vraag, functies en technische schulden.
Definities
| Termijn | Definition |
|---|---|
| Gegevenslagen | Een opslagstrategie waarbij gegevens worden gecategoraliseerd op basis van de toegangsfrequentie en dienovereenkomstig worden opgeslagen in opslaglagen. |
| Technische schulden | De verzamelde inefficiënties, suboptimale ontwerpkeuzen of snelkoppelingen die opzettelijk zijn genomen tijdens het ontwikkelingsproces om sneller code te leveren. |
| Time-to-live | Een mechanisme waarmee een verlooptijd voor gegevens wordt ingesteld. |
Prestatie-efficiëntie is wanneer de workloadcapaciteit overeenkomt met het werkelijke gebruik. Een workload die te veel presteert, is net zo problematisch als een workload die minder goed presteert. De compromissen verschillen. Overperformance is van invloed op kostenoptimalisatie. Slechte prestaties zijn van invloed op gebruikers. De sleutel tot prestatie-efficiëntie is het bewaken, aanpassen en testen in de loop van de tijd. U moet regelmatig prestatiegegevens controleren en zo nodig aanpassingen aanbrengen om ervoor te zorgen dat de workload efficiënt is. Het testen van alle wijzigingen vóór en na de implementatie is vereist om prestatiedoelen te bereiken.
Een prestatiecultuur ontwikkelen
Een prestatiecultuur is een omgeving waarin continue verbetering wordt verwacht en het team leert van productie. Prestatieoptimalisatie vereist gespecialiseerde vaardigheden. Workloadteams hebben de juiste vaardigheden en mindset nodig om hun prestaties te optimaliseren om te voldoen aan de toename en afname van de vraag. U moet ook hun tijd toewijzen om de vereiste bewaking en herstel van prestatieproblemen te ondersteunen wanneer deze zich voordoen. Deze teams hebben duidelijke verwachtingen nodig. Prestatiedoelen, basislijnen en afwijkingsdrempels (hoe ver van de basislijn is acceptabel) moeten bijvoorbeeld zeer zichtbaar en sociaal worden gemaakt.
Compromis: continue prestatieoptimalisaties vereisen een team met de juiste vaardigheden en tijd om prestatieproblemen te vinden en op te lossen. Het toewijzen van personeel aan prestaties voegt operationele kosten toe. Als u beperkte personeelsbronnen hebt, kan continue optimalisatie van prestaties tijd in beslag nemen van andere operationele taken.
Nieuwe platformfuncties evalueren
Het evalueren van nieuwe platformfuncties omvat het onderzoeken van de nieuwe functies en hulpprogramma's van een platform die de prestatie-efficiëntie kunnen verbeteren, zoals geoptimaliseerde opslagoplossingen, cachingmechanismen of hulpprogramma's voor resourcebeheer. Nieuwe platformfuncties kunnen mogelijkheden openen om de prestatie-efficiëntie te verbeteren. Houd uw platform en hulpprogramma's up-to-date om ervoor te zorgen dat u de nieuwste innovaties en aanbevolen procedures gebruikt. Bewaak feedback en prestatiegegevens van deze nieuwe toevoegingen consistent om uw benadering te verfijnen.
Optimalisatie-inspanningen prioriteren
Het proactief optimaliseren van de prestaties betekent dat proactieve maatregelen worden genomen om de prestaties van de workload te verbeteren en te verbeteren voordat er prestatieproblemen optreden. Het gebruik van proactieve maatregelen omvat het identificeren van potentiële knelpunten, het bewaken van metrische prestatiegegevens en het implementeren van optimalisaties om ervoor te zorgen dat de workload efficiënt werkt en voldoet aan de gewenste prestatiedoelen. Op basis van de analyse van verslechterende onderdelen, kritieke stromen en technische schulden kunt u prestatieoptimalisaties implementeren die specifiek zijn voor elk gebied. Verbeteringen kunnen betrekking hebben op codewijzigingen, infrastructuuraanpassingen of configuratie-updates.
Prioriteit geven aan verslechterende onderdelen
Een workload bevat vaak onderdelen zoals databases en netwerkonderdelen die na verloop van tijd gevoelig zijn voor prestatieverminderingen. Naarmate de workload zich ontwikkelt en gebruikspatronen veranderen, zijn deze wijzigingen vaak van invloed op de prestaties van afzonderlijke onderdelen in de workload. Verhoogde gegevens in databases kunnen leiden tot langere uitvoeringstijden van query's en tragere gegevens ophalen. Wijzigingen in gebruikspatronen kunnen leiden tot suboptimaal queryontwerp. Query's die eenmaal efficiënt waren, kunnen inefficiënt worden naarmate de workload zich ontwikkelt. Inefficiënte query's kunnen overmatige resources verbruiken en databaseprestaties verminderen. Verhoogd workloadgebruik kan leiden tot een hoger netwerkverkeer, waardoor congestie- en latentieproblemen ontstaan.
Het is belangrijk om continue inspanningen te leveren om de prestaties van deze onderdelen te optimaliseren. Identificeer en los prestatieproblemen in uw workload proactief op. Door bekende verslechterende onderdelen te prioriteren, kunt u proactief potentiële prestatieproblemen oplossen en zorgen voor een soepele werking van uw workload. Het kan nodig zijn om technieken voor het afstemmen van prestaties te implementeren, resourcetoewijzing te optimaliseren of hardware- of softwareonderdelen te upgraden.
Kritieke stromen prioriteren
Kritieke stromen zijn de belangrijkste en belangrijkste processen of werkstromen in de workload. Door deze kritieke stromen te prioriteren, zorgt u ervoor dat de belangrijkste onderdelen van de workload zijn geoptimaliseerd voor prestaties. Als u weet welke stromen essentieel zijn, kunt u prioriteit geven aan optimalisatie-inspanningen. Het optimaliseren van de prestatie-efficiëntie van de belangrijkste gebieden van uw toepassing biedt het hoogste rendement op investeringen. U moet kritieke stromen en de populairste pagina's bewaken. Zoek naar manieren om ze efficiënter te maken.
Prestaties optimaliseren automatiseren
Automatisering kan terugkerende en tijdrovende handmatige processen elimineren, zodat ze efficiënt kunnen worden uitgevoerd. Automatisering vermindert de kans op menselijke fouten en zorgt voor consistentie bij het uitvoeren van optimalisatietaken. Door deze taken te automatiseren, kunt u mensen ook vrijmaken om zich te richten op complexere activiteiten en activiteiten die waarde toevoegen. U kunt automatisering toepassen op verschillende taken, zoals prestatietests, implementatie en bewaking:
Geautomatiseerde prestatietests: gebruik geautomatiseerde hulpprogramma's voor prestatietests zoals JMeter, K6 of Selenium om verschillende workloads en scenario's te simuleren.
Geautomatiseerde implementatie: implementeer geautomatiseerde implementatieprocessen om consistente en foutloze implementaties te garanderen. Gebruik CI/CD-hulpprogramma's om het implementatieproces te automatiseren. Met deze hulpprogramma's kunt u prestatieknelpunten identificeren terwijl u ze gebruikt om te testen op eindpunten, HTTP-statussen te controleren en zelfs gegevenskwaliteit en variaties te valideren.
Bewaking en waarschuwingen: stel geautomatiseerde bewakings- en waarschuwingssystemen in om continu metrische prestatiegegevens te bewaken en afwijkingen of afwijkingen te detecteren. Wanneer prestatieproblemen worden gedetecteerd, kunnen geautomatiseerde waarschuwingen worden geactiveerd om de juiste teams of personen op de hoogte te stellen.
Incidentbeheer: Implementeer een geautomatiseerd systeem voor incidentbeheer dat waarschuwingen kan ontvangen, tickets kan maken en tickets kan toewijzen aan de juiste teams voor oplossing. Deze stappen helpen ervoor te zorgen dat prestatieproblemen onmiddellijk worden opgelost en aan de juiste resources worden toegewezen.
Geautomatiseerde diagnostische gegevens: ontwikkel geautomatiseerde diagnostische hulpprogramma's of scripts die prestatiegegevens kunnen analyseren en de hoofdoorzaken van prestatieproblemen kunnen identificeren. Deze hulpprogramma's kunnen helpen specifieke gebieden of onderdelen van het systeem vast te stellen die prestatieproblemen veroorzaken.
Geautomatiseerde herstelacties: geautomatiseerde herstelacties definiëren en implementeren die kunnen worden geactiveerd wanneer er specifieke prestatieproblemen worden gedetecteerd. Deze acties kunnen bestaan uit het opnieuw opstarten van services, het aanpassen van resourcetoewijzing, het wissen van caches of het implementeren van andere technieken voor prestatieoptimalisatie.
Zelfherstelsystemen: bouw zelfherstelmogelijkheden in uw systeem door het herstelproces te automatiseren voor bekende prestatieproblemen. Deze mogelijkheid kan betrekking hebben op het automatisch herstellen of aanpassen van de systeemconfiguratie om optimale prestaties te herstellen.
Technische schulden oplossen
Technische schuld verwijst naar de verzamelde inefficiënties, suboptimale ontwerpkeuzen of snelkoppelingen die tijdens het ontwikkelingsproces worden genomen die van invloed kunnen zijn op de prestaties. Technische schuld, onduidelijke code en te complexe implementaties kunnen prestatie-efficiëntie moeilijker te bereiken maken. Het aanpakken van technische schulden omvat het identificeren en oplossen van deze problemen om de algehele prestaties en onderhoudbaarheid van de workload te verbeteren. Dit werk kan bestaan uit het herstructureren van code, het optimaliseren van databasequery's, het verbeteren van het architectuurontwerp of het implementeren van best practices. Misschien hebt u technische schulden geïntroduceerd om aan een deadline te voldoen, maar u moet de technische schuld aanpakken wanneer u de prestatie-efficiëntie in de loop van de tijd optimaliseert.
Databases optimaliseren
Het continu optimaliseren van databases omvat het identificeren en implementeren van optimalisaties om ervoor te zorgen dat databases belastingen kunnen verwerken, snelle reactietijden kunnen leveren en het resourcegebruik minimaliseren. Door databases regelmatig te optimaliseren, kunt u de prestaties van toepassingen verbeteren, downtime verminderen en de algehele gebruikerservaring verbeteren.
Databasequery's optimaliseren: slecht geschreven SQL-instructies kunnen de databaseprestaties verminderen. Inefficiënte JOIN-voorwaarden kunnen onnodige gegevensverwerking veroorzaken. Complexe subquery's, geneste query's en overmatige functies kunnen de snelheid van de uitvoering verminderen. Query's die te veel gegevens ophalen, moeten opnieuw worden geschreven. U moet uw meest voorkomende of kritieke databasequery's identificeren en optimaliseren. De optimalisatie zorgt voor snellere query's.
Indexen onderhouden: evalueer uw indexeringsstrategie om ervoor te zorgen dat indexen correct zijn ontworpen en onderhouden. Indexonderhoud omvat het identificeren van ongebruikte of redundante indexen en het maken van indexen die zijn afgestemd op de querypatronen. Databaseindexen helpen bij het versnellen van bewerkingen voor het ophalen van gegevens. Voor relationele databases moet u indexfragmentatie bewaken. U moet indexen regelmatig herbouwen of opnieuw ordenen. Voor niet-relationele databases moet u het juiste indexeringsbeleid voor uw workload kiezen. Gebruik waar beschikbaar automatische afstemming op databases. Deze functies omvatten het automatisch maken van ontbrekende indexen, het verwijderen van ongebruikte indexen en het corrigeren van plannen. Zie Indexen onderhouden om de prestaties te verbeteren voor meer informatie.
Modelontwerp controleren: controleer het gegevensmodel om ervoor te zorgen dat u het optimaliseert voor de specifieke vereisten van de toepassing. Het verbeteren van queryprestaties en het ophalen van gegevens kan betrekking hebben op denormalisatie, partitionering of andere technieken.
Databaseconfiguratie optimaliseren: databaseconfiguratie-instellingen optimaliseren, zoals geheugentoewijzing, schijf-I/O en gelijktijdigheidsinstellingen om de prestaties en het resourcegebruik te maximaliseren.
Gegevensefficiëntie optimaliseren
Het optimaliseren van gegevensefficiëntie is het proces om ervoor te zorgen dat gegevens zo efficiënt mogelijk worden opgeslagen, verwerkt en geopend. Gegevenslagen en het gebruik van time-to-live (TTL) zijn technieken die kunnen worden gebruikt om de efficiëntie van gegevens te optimaliseren. U kunt deze technieken toepassen in verschillende scenario's voor gegevensopslag, zoals databases, bestandssystemen of objectopslag.
Gegevenslagen gebruiken: gegevenslagen moeten gegevens categoriseren op basis van het belang of de frequentie van toegang en het opslaan van gegevens in verschillende lagen dienovereenkomstig. Het instellen van gegevenslagen maakt efficiënter gebruik van opslagresources mogelijk en verbetert de prestaties. Veelgebruikte of kritieke gegevens kunnen worden opgeslagen in hoogwaardige lagen, terwijl minder vaak gebruikte of minder kritieke gegevens kunnen worden opgeslagen in lagere kostenlagen. Het doel is om het gegevensgebruik in de loop van de tijd te controleren om ervoor te zorgen dat gegevens zich in de juiste laag bevinden. Naarmate de gegevensprioriteiten veranderen, moeten gegevens van de ene laag naar de andere worden verplaatst.
Time-to-live implementeren: Time-to-live is een mechanisme waarmee een verlooptijd voor gegevens wordt ingesteld. Met Time-to-Live kunnen gegevens na een bepaalde periode automatisch worden verwijderd of gearchiveerd, waardoor de opslagvereisten worden verminderd en het gegevensbeheer wordt verbeterd. Door een geschikte time-to-live in te stellen, kunt u onnodige gegevens verwijderen, opslagruimte vrijmaken en de algehele efficiëntie verbeteren. Sessiegegevens, tijdelijke bestanden en cachegegevens zijn frequente doelen voor time-to-live. Databasevermeldingen kunnen ook een time-to-live hebben.
Risico: Een time-to-live die te kort is, kan prestatieproblemen tot gevolg hebben.
Azure-ondersteuning
Optimalisatie van prestaties automatiseren: Azure Advisor biedt aanbevelingen voor automatische prestaties op basis van telemetrie van workloads. U moet deze aanbevelingen regelmatig controleren en aanpakken. Azure Monitor biedt realtime inzicht in de prestaties van uw systeem en stelt u in staat om waarschuwingen in te stellen op basis van specifieke prestatiegegevens. Azure Log Analytics biedt geautomatiseerde diagnostische gegevens en analyses over verzamelde logboeken en metrische gegevens. Hulpprogramma's zoals Azure Application Insights bieden inzichten en aanbevelingen voor het optimaliseren van prestaties.
Als u herstel wilt automatiseren, gebruikt u automatiseringshulpprogramma's of scripts om herstelacties automatisch uit te voeren wanneer de waarschuwingen worden geactiveerd. U kunt Azure Automation-, Azure Functions- of aangepaste automatiseringsoplossingen gebruiken.
Met Azure kunt u prestatietests uitvoeren om verschillende gebruikersscenario's en workloads te simuleren. Met geautomatiseerde tests kunt u prestatieknelpunten identificeren en uw systeem dienovereenkomstig optimaliseren. Hulpprogramma's zoals Azure DevOps kunnen prestatietests automatiseren.
Databases optimaliseren: de SQL-serie producten heeft veel ingebouwde functies waarmee u de prestaties van SQL-databases kunt bewaken en herstellen. U moet deze functies gebruiken om de databaseprestaties te behouden. Azure SQL Database heeft een functie voor automatisch afstemmen waarmee query's continu worden bewaakt en verbeterd. U moet deze functie gebruiken om SQL-query's automatisch te verbeteren.
U kunt uw indexeringsbeleid aanpassen met behulp van de functies van Azure Cosmos DB. Pas het beleid aan om te voldoen aan de prestatiebehoeften van uw workload.
Gegevensefficiëntie optimaliseren: met gegevenslagen kunt u gegevens opslaan in verschillende lagen op basis van de toegangsfrequentie en het belang ervan. Hiermee kunt u de opslagkosten en prestaties optimaliseren. Azure biedt verschillende opslaglagen, zoals dynamische, statische en archieflagen voor blobgegevens. Dynamische lagen zijn geoptimaliseerd voor veelgebruikte gegevens, statische lagen zijn voor niet-gebruikte gegevens en archieflagen zijn bedoeld voor zelden gebruikte gegevens. Door de opslagtoegangslaag te gebruiken die het meest geschikt is voor uw gegevens, kunt u ervoor zorgen dat gegevens efficiënt worden opgeslagen en opgehaald.
Verwante koppelingen
- Indexonderhoud optimaliseren om de queryprestaties te verbeteren en het resourceverbruik te verminderen
- De prestaties van Azure-toepassingen verbeteren met behulp van Azure Advisor
- Automatisch afstemmen in Azure SQL Database en Azure SQL Managed Instance
- Indexeringsbeleid in Azure Cosmos DB
Controlelijst voor prestatie-efficiëntie
Raadpleeg de volledige set aanbevelingen.