Aanbevelingen voor het prioriteren van de prestaties van kritieke stromen
Is van toepassing op deze aanbeveling voor de controlelijst voor prestatie-efficiëntie van Azure Well-Architected Framework:
PE:09 | Geef prioriteit aan de prestaties van kritieke stromen. De toewijzing van workloadresources en inspanningen voor het optimaliseren van prestaties moeten prioriteit geven aan de stromen die de belangrijkste bedrijfsprocessen, gebruikers en bewerkingen ondersteunen. |
---|
In deze handleiding worden de aanbevelingen beschreven voor het prioriteren van de prestaties van kritieke stromen in een workload. Kritieke stromen vertegenwoordigen cruciale bedrijfsprocessen die inkomsten genereren of bewerkingen met hoge prioriteit stimuleren. Wanneer u prioriteit geeft aan de prestaties van kritieke stromen, zorgt u ervoor dat de stromen die de meeste impact hebben, de resources krijgen die ze nodig hebben vóór stromen met een lagere prioriteit. Als u deze prioriteitstelling niet doet, kan dit onevenredig negatieve gevolgen hebben voor workloadprioriteiten en de gebruikerservaring.
Definities
Termijn | Definitie |
---|---|
Stroom | In een workload, de volgorde van acties waarmee een specifieke functie wordt uitgevoerd. Een stroom omvat de verplaatsing van gegevens en het uitvoeren van processen tussen onderdelen van de workload. |
Verwerking van prioriteitswachtrijen | De handeling van het verwerken van taken met hoge prioriteit vóór taken met een lage prioriteit. |
Snelheidsbeperking | Het beperken van het aantal aanvragen dat toegang heeft tot een resource. |
Systeemstroom | De stroom van informatie en processen binnen een systeem. Het systeem volgt deze stroom automatisch om gebruikersstromen of workloadfunctionaliteit in te schakelen. |
Gebruikersstroom | De volgorde die een gebruiker volgt om een taak uit te voeren. |
Belangrijke ontwerpstrategieën
Kritieke stromen verwijzen naar de belangrijkste gebruikersstromen voor klanten of de systeem- en gegevensstromen voor bewerkingen die cruciaal zijn voor de functionaliteit van de workload. Deze stromen kunnen acties omvatten zoals gebruikersregistraties, aanmeldingen, productaankopen, toegang tot pagina's achter een paywall of een ander sleutelpad of proces binnen uw workload.
Kritieke stromen hebben een aanzienlijke invloed op de gebruikerservaring of bedrijfsactiviteiten. Kritieke stromen hebben hogere prestatiedoelen en serviceovereenkomsten dan niet-kritieke stromen. Wanneer resources beperkt zijn, moeten niet-kritieke stromen resourcegebruik opleveren voor kritieke stromen. U moet alle stromen identificeren, bewaken en prioriteren voordat u kritieke stromen gaat isoleren en optimaliseren.
Alle stromen identificeren
De eerste stap bij het prioriteren van de prestaties van kritieke stromen is het identificeren van alle stromen binnen uw workload. Stroomidentificatie omvat het systematisch toewijzen en begrijpen van alle gebruikerspaden en componentcommunicatie. De focus ligt op inzicht in de metrische prestatiegegevens en de mogelijke impact van stromen op de prestaties van workloads.
Door de workload te ontleden in afzonderlijke stromen, kunt u prestatieknelpunten, inefficiënt resourcegebruik en mogelijkheden voor prestatieoptimalisatie vinden. Deze kennis biedt gebieden voor verbetering en is de eerste stap bij het identificeren van kritieke stromen. Zie Gebruikers- en systeemstromen identificeren en beoordelen voor meer informatie.
Metrische gegevens over stroomprestaties bewaken
Nadat u alle stromen binnen uw workload hebt geïdentificeerd, moet u metrische gegevens over de prestaties van elke stroom verzamelen en deze metrische gegevens bewaken. Metrische stroomgegevens bieden inzicht in reactietijden, foutsnelheden en doorvoer. Het doel is om prestatiegerelateerde metrische gegevens consistent te observeren en vast te leggen om uw inzicht in de impact van elke stroom op de prestaties van workloads verder te verfijnen. Als u metrische gegevens over de stroom wilt bewaken, kunt u de volgende hulpprogramma's gebruiken om gegevens te verzamelen:
Analyse- en traceringshulpprogramma's: deze hulpprogramma's bieden inzicht in gebruikersgedrag en interacties binnen uw toepassing. Door gebruikersgegevens te analyseren, kunt u de meest voorkomende stromen, knelpunten of potentiële problemen identificeren.
Hulpprogramma's voor het bewaken van toepassingsprestaties (APM): gebruik APM-hulpprogramma's om de prestaties van uw toepassing te bewaken en bij te houden hoe stromen worden uitgevoerd. Deze hulpprogramma's bieden inzicht in reactietijden, fouten en andere metrische prestatiegegevens, zodat u kritieke stromen kunt identificeren en de prestaties ervan kunt optimaliseren.
Hulpprogramma's voor logboekregistratie en foutopsporing: gebruik deze hulpprogramma's om logboeken en foutopsporingsgegevens vast te leggen en te analyseren terwijl uw toepassing wordt uitgevoerd. Bekijk logboeken en foutopsporingsgegevens om te traceren hoe stromen worden uitgevoerd en om problemen of fouten te identificeren.
Kritieke stromen identificeren
Nu de prestatiegegevens beschikbaar zijn, kunt u beginnen met het rangschikking van alle stromen en het identificeren van de kritieke stromen. De identificatie van kritieke stromen omvat het evalueren van de impact op de prestaties en de ernst van elke stroom. Effectieve prioriteitstelling van stromen zorgt ervoor dat de belangrijkste stromen de resources ontvangen die nodig zijn voor minder kritieke stromen. Overweeg de volgende stappen om prioriteit te geven aan stromen in uw toepassing:
De impact op het bedrijf identificeren: begin met het beoordelen van het belang van elke stroom binnen uw activiteiten. Richt u op de wijze waarop elke stroom in overeenstemming is met uw bedrijfsdoelstellingen, de impact ervan op gebruikers en de mogelijke negatieve effecten van slechte prestaties. Een gratis servicelaag kan bijvoorbeeld meer gebruikers aantrekken, maar een betaalde laag kan belangrijker zijn voor uw bedrijfsdoelen.
Houd ook rekening met de impact op de prestaties van een stroom in een of meer bedrijfsprocessen. Meerdere stromen ondersteunen mogelijk één bedrijfsproces, maar vaak heeft één stroom een aanzienlijk effect op de prestaties van dat proces. U wilt de stromen identificeren die de grootste invloed hebben op de prestaties. Omgekeerd kan één stroom verschillende processen ondersteunen. In dergelijke gevallen is de prestaties van deze stroom rechtstreeks van invloed op de effectiviteit van alle gerelateerde processen en is het waarschijnlijk een kritieke stroom.
Prestatiegegevens analyseren: analyseer de metrische prestatiegegevens die aan elke stroom zijn gekoppeld. Zoek naar patronen, afwijkingen of opvallende metrische gegevens die inzicht kunnen geven in de efficiëntie en het belang van de stroom. Systeemstromen met aanzienlijk gebruik zijn bijvoorbeeld waarschijnlijk belangrijke stromen.
Kritieke classificatie toewijzen: op basis van de bedrijfsimpact en prestatie-indicatoren moet u prioriteit geven aan de stromen. Gebruik de kritieke classificaties Hoog, Gemiddeld en Laag. Stromen met een aanzienlijke bedrijfsimpact of hoge prestatievraag moeten een classificatie 'Hoog' krijgen. Deze stromen zijn uw kritieke stromen. Richt u op stromen met veel gebruikersverkeer of hebben een direct effect op het genereren van inkomsten. De volgende tabel bevat kenmerken van kritieke (hoog) en niet-kritieke stromen (gemiddeld naar laag).
Kritieke stromen | Niet-kritieke stromen |
---|---|
Hoog gebruik | Laag gebruik |
Bedrijfskritiek | Niet bedrijfskritiek |
Dure bewerkingen | Kleine bewerkingen |
Tijdgevoelig | Niet tijdgevoelig |
Productie | Prototypen |
Realtime verwerking | Batchverwerking |
Latentiegevoelig | Niet latentiegevoelig |
Betalende gebruiker | Niet-betalende gebruiker |
Premium-laag | Basislaag |
Belangrijke taken | Niet-essentiële taken |
Accounts met hoge omzet | Accounts met lage omzet |
Kritieke stromen isoleren
Het proces voor het isoleren van kritieke stromen gaat over het leveren van toegewezen resources of capaciteit ter ondersteuning van kritieke stromen. U wilt resources en aandacht toewijzen aan de stromen die essentieel zijn voor een optimale gebruikerservaring of aanzienlijke bedrijfsresultaten. Het doel is ervoor te zorgen dat kritieke stromen voldoende rekenkracht, netwerkbandbreedte en resources ontvangen om efficiënt en effectief te werken. Door kritieke stromen te isoleren, kunt u de resources die ondersteuning bieden voor kritieke stromen eenvoudiger beheren. Hier volgen aanbevelingen voor het isoleren van kritieke stromen:
Resourcesegmentatie: maak afzonderlijke resources voor kritieke stromen, zodat deze onafhankelijk kunnen werken zonder tussenkomst van andere processen. U kunt bijvoorbeeld kritieke stromen isoleren in toegewezen netwerksegmenten of door toegewezen servers te gebruiken om de verwerkingsbehoeften van deze stromen te verwerken. Deze benadering helpt te minimaliseren hoe niet-kritieke stromen een negatieve invloed kunnen hebben op kritieke stromen.
Logische segmentatie: gebruik hulpprogramma's voor virtualisatie en containerisatie, zoals Docker of Kubernetes, om stromen op softwareniveau te isoleren. U kunt kritieke stromen scheiden in virtuele machines (VM's). Door dit te doen, maakt u een geïsoleerde omgeving, waardoor afhankelijkheden en mogelijke interferentie van andere stromen worden verminderd.
Capaciteitstoewijzing: wijs voor kritieke stromen expliciet een vaste set capaciteit toe, zoals CPU, geheugen en schijf-I/O. Deze toewijzing zorgt ervoor dat kritieke stromen altijd voldoende resources hebben om efficiënt te kunnen werken. Stel resourcequota of -limieten in met behulp van indelingsplatforms. Door resources expliciet toe te wijzen aan kritieke stromen, voorkomt u resourceconflicten en geeft u prioriteit aan hoe ze worden uitgevoerd.
Afweging: Resourcesegmentatie is van invloed op de kosten. Wanneer u resources aan een stroom toewijdt, verhoogt u vaak de kosten en laat u sommige resources onderbenut. Om de prestatieverbeteringen van kritieke stromen te rechtvaardigen, moet de toename van de bedrijfsimpact opwegen tegen de toename van de kosten.
Capaciteitstoewijzing optimaliseren
Wanneer u kritieke stromen niet kunt isoleren, is de op een na beste optie om kritieke stromen te prioriteren bij het verkrijgen van toegang tot beschikbare capaciteit. De optimalisatie van capaciteitstoewijzing gaat over het strategisch distribueren van de beschikbare capaciteit naar verschillende stromen op basis van hun kritiekheid. Capaciteit omvat CPU, geheugen, opslag en netwerkbandbreedte. Het doel is ervoor te zorgen dat de meest kritieke stromen (hoogste prioriteit) de benodigde capaciteit krijgen om effectief te kunnen werken. Als u wilt bepalen hoe u capaciteit toewijst, kunt u de volgende strategieën overwegen:
Resourcecapaciteit evalueren: evalueer hoeveel resourcecapaciteit kan worden toegewezen aan de stromen. Capaciteit kan resources omvatten zoals CPU, geheugen, opslag en netwerkbandbreedte. Inzicht in de beperkingen en beperkingen van uw infrastructuur of omgeving.
Stroomvereisten analyseren: analyseer de resourcevereisten van elke stroom. Krijg inzicht in de resources die de stroom nodig heeft om efficiënt te kunnen werken. Identificeer voor elke stroom de resourcevereisten, zoals CPU-gebruik, geheugenvereisten en netwerkbandbreedte.
Toewijzingen prioriteren: koppel de beschikbare resourcecapaciteit aan de resourcevereisten van de stromen. Wijs resources toe op basis van stroomprioriteiten, zodat stromen met een hogere prioriteit de benodigde resources ontvangen om aan hun vereisten te voldoen. Begrijp waar uw krapste beperkingen zijn en optimaliseer capaciteitstoewijzingen waar ze nodig zijn. Wachtrijen kunnen bijvoorbeeld slechts enkele berichten per minuut verwerken, maar sommige opslaglimieten zijn moeilijk te bereiken.
Frequentiebeperking gebruiken: om ervoor te zorgen dat kritieke stromen de resources kunnen gebruiken die ze nodig hebben om aan hun prestatiedoelen te voldoen, past u frequentielimieten toe op niet-kritieke stromen en taken. Met frequentielimieten wordt het aantal aanvragen beperkt voor stromen met een lagere prioriteit en kunnen gebruikers beperkte resources indienen. U kunt bijvoorbeeld niet-prioriteitsaanvragen beperken tot een API. Zie rate limiting pattern en Rate limiting an HTTP handler in .NET (Frequentiebeperking van een HTTP-handler in .NET) voor meer informatie.
Verwerking van prioriteitswachtrijen gebruiken: Verwerking van prioriteitswachtrijen geeft een hoge prioriteit aan bepaalde aanvragen. Wachtrijen hebben meestal een FIFO-structuur (first in, first out), maar u kunt uw toepassing bijwerken om een prioriteit toe te wijzen aan berichten die aan de wachtrij worden toegevoegd. Gebruik deze mogelijkheid om prioriteit te geven aan kritieke stromen en gebruikers. Zie het patroon Prioriteitswachtrij voor meer informatie.
Risico: het kan een uitdaging zijn om de behoeften van kritieke stromen in balans te houden met de algehele prestaties van een workload. Hoewel u prioriteit moet geven aan kritieke stromen, moet u niet-kritieke stromen niet negeren. De algehele prestatie-efficiëntie van een workload is afhankelijk van alle stromen. Genegeerde niet-kritieke stromen kunnen problemen veroorzaken die van invloed zijn op alle gebruikers. Te veel ruis van niet-essentiële items steelt de aandacht van kritieke items. Te weinig ruis kan echter schadelijk zijn voor de hele werkbelasting. De hoeveelheid gegevens en het aantal waarschuwingen moeten deze evenwichtige prioriteiten weerspiegelen.
Azure-facilitering
Stromen identificeren en bewaken: Azure biedt verschillende oplossingen om u te helpen de prestaties van kritieke stromen in uw workload te bewaken. Azure Monitor, Azure Monitor-logboeken en Azure-toepassing Insights zijn enkele van de services die uitgebreide bewakingsmogelijkheden bieden voor verschillende typen toepassingen en workloads.
Capaciteitstoewijzingen optimaliseren: sommige Azure-services ondersteunen resourcesegmentatie, logische segmentatie en capaciteitstoewijzingstechnieken om capaciteit en resources toe te wijzen aan kritieke stromen. U kunt kritieke stromen isoleren met behulp van technieken zoals het maken van afzonderlijke resources, het verhogen van de dichtheid, het gebruik van virtualisatie en containerisatie en het expliciet toewijzen van resources aan kritieke stromen.
Sommige Azure-services, zoals Azure API Management, bieden ingebouwde beleidsregels voor snelheidsbeperking. Azure biedt gedetailleerde richtlijnen en een voorbeeld van een implementatie van het ontwerppatroon Snelheidsbeperking.
Azure ondersteunt verwerking van prioriteitswachtrijen. Azure Functions biedt gebeurtenisgestuurde functies die u op verschillende manieren kunt activeren, waaronder door een nieuw bericht in een wachtrij of onderwerp. Combineer Azure Functions met Azure Queue Storage of Azure Service Bus om berichten te verwerken op basis van hun prioriteit.
Verwante koppelingen
- Patroon voor wachtrij met prioriteit
- Patroon voor snelheidsbeperking
- Snelheidsbeperking voor een HTTP-handler in .NET
- Azure API Management
- Azure Service Bus
Controlelijst voor efficiëntie van prestaties
Raadpleeg de volledige set aanbevelingen.