Kompromisser för prestandaeffektivitet

När du utformar arbetsbelastningen bör du överväga kompromisser mellan prestandaoptimering och andra aspekter av designen, till exempel kostnadseffektivitet, driftsbarhet, tillförlitlighet och säkerhet.

Prestandaeffektivitet jämfört med kostnadseffektivitet

Kostnaden kan öka till följd av att prestandan ökar. Här är några faktorer att tänka på när du optimerar för prestanda och hur de påverkar kostnaderna:

  • Undvik kostnadsuppskattning av en arbetsbelastning med konsekvent hög användning. Förbrukningsbaserad prissättning blir dyrare än motsvarande etablerade priser. Jämna ut topparna för att få ett konsekvent flöde av beräkning och data. Vi rekommenderar att du använder manuell och automatisk skalning för att hitta rätt balans. Att skala upp är vanligtvis dyrare än att skala ut.

  • Kostnaden skalas direkt med antalet regioner. Att hitta resurser i billigare regioner bör inte ta bort kostnaden för nätverksingress och utgående eller försämrad programprestanda på grund av längre svarstider.

  • Varje renderingscykel för en nyttolast förbrukar både beräkning och minne. Du kan använda cachelagring för att minska belastningen på servrar och spara med förkonterade kostnader för lagring och bandbredd. Besparingarna kan vara dramatiska, särskilt för tjänster med statiskt innehåll.

    • Cachelagring kan minska kostnaderna, men det finns vissa prestanda kompromisser. Till exempel Azure Traffic Manager baseras på antalet DNS-frågor (Domain Name Service) som når tjänsten. Du kan minska det antalet genom cachelagring och konfigurera hur ofta cachen ska uppdateras. Om du förlitar dig på cacheminnet som inte uppdateras ofta kommer det att leda till längre redundanstider för användaren om en slutpunkt inte är tillgänglig.
  • Om du använder dedikerade resurser för batchbearbetning av långvariga jobb ökar kostnaden. Du kan sänka kostnaderna genom att etablera virtuella datorer för VM med vm för VM med punkt men vara beredd på att jobbet avbryts varje gång Azure tar bort den virtuella datorn.

Kostnadsöverväganden finns i grundpelaren för kostnadsoptimering.

Prestandaeffektivitet jämfört med driftseffektivitet

När du bestämmer hur du skalar din arbetsbelastning för att uppfylla användarnas krav på det på ett effektivt sätt bör du överväga de driftsprocesser som håller ett program igång i produktion. Se till att distributionerna är tillförlitliga och förutsägbara för att uppnå driftskvalitet med dessa processer. De bör automatiseras för att minska risken för mänskliga fel. De bör vara en snabb rutinunderhållsprocess, så att de inte fördröjer nya funktioner eller felkorrigeringar. Det är lika viktigt att snabbt kunna återställa eller göra framåtriktade återställningar om det är problem med en uppdatering.

Automatiserad prestandatestning

En driftprocess som kan hjälpa dig att identifiera prestandaproblem tidigt är automatiserad prestandatestning. Effekten av ett allvarligt prestandaproblem kan vara lika allvarlig som en bugg i koden. Automatiserade funktionstester kan förhindra programbuggar, men de kanske inte identifierar prestandaproblem. Definiera godtagbara prestandamål för mått som svarstid, inläsningstider och resursanvändning. Inkludera automatiserade prestandatester i din lanseringspipeline för att se till att programmet uppfyller dessa mål.

Snabba byggen

En annan process för driftseffektivitet är att se till att produkten är i ett distribuerat tillstånd via en snabb byggprocess. Byggen ger viktig information om produktens status.

Följande kan hjälpa dig att få snabbare byggen:

  • Välj rätt storlek på de virtuella datorerna.
  • Se till att byggservern finns nära källorna och en målplats, så att det kan minska byggets varaktighet avsevärt.
  • Skalningsbyggservrar.
  • Optimera bygget.

En förklaring av dessa objekt finns i Builds.

Övervaka prestandaoptimering

När du överväger att förbättra prestandan bör du övervaka att programmet körs korrekt. Övervakningen bör omfatta program, plattform och nätverk. Mer information finns i Övervaka.

Driftöverväganden finns i grundpelaren för driftskvalitet.

Prestandaeffektivitet jämfört med tillförlitlighet

Vi bekräftar direkt att fel kommer att inträffa. Målet är att minimera effekten av en enda komponent som havererar snarare än att förhindra fel helt och hållet.

Tillförlitliga program är motståndskraftigaoch har hög tillgänglig (HA). Återhämtning gör att system kan återställas på ett smidigt sätt från fel och de fortsätter att fungera med minimal avbrottstid och dataförlust innan fullständig återställning. HA-system körs som utformade i felfritt tillstånd utan betydande driftstopp. Genom att upprätthålla tillförlitligheten kan du upprätthålla prestandaeffektivitet.

Några tillförlitlighetsöverväganden är:

  • Använd kretsbrytarmönstret för att ge stabilitet när systemet återställs efter ett fel och minimerar påverkan på prestanda.

  • Uppnå nivåer av skalning och prestanda som krävs för din lösning genom att skilja läs- och skrivgränssnitt genom att implementera CQRS-mönstret.

  • Ofta kan du uppnå högre tillgänglighet genom att införa en modell för eventuell konsekvens. Mer information om hur du väljer rätt datalager finns i Använda det bästa datalagret för jobbet.

  • Om ditt program kräver fler lagringskonton än vad som för närvarande är tillgängligt i din prenumeration skapar du en ny prenumeration med ytterligare lagringskonton. Mer information finns i Skalbarhets- och prestandamål.

  • Undvik att skala upp eller ned. Välj i stället en nivå och instansstorlek som uppfyller dina prestandakrav under normal belastning och skala sedan ut instanserna för att hantera ändringar i trafikvolymen. Upp- och nedskalning kan utlösa en omstart av programmet.

  • Skapa ett separat lagringskonto för loggar. Använd inte samma lagringskonto för loggar och programdata. Detta bidrar till att förhindra att loggning minskar programmets prestanda.

  • Övervaka prestanda. Använd en prestandaövervakningstjänst som Application Insights eller New Relic för att övervaka programmets prestanda och beteende under belastning. Prestandaövervakning ger dig insyn i programmet i realtid. Det gör att du kan diagnostisera problem och utföra rotorsaksanalys av fel.

Mer information om återhämtning, tillgänglighet och tillförlitlighet finns i grundpelaren Tillförlitlighet.

Prestandaeffektivitet jämfört med säkerhet

Om prestandan är så dålig att data inte kan användas kan du betrakta dem som otillgängliga. Ur ett säkerhetsperspektiv måste du göra vad du kan för att se till att dina tjänster har optimal drifttid och prestanda.

En populär och effektiv metod för att förbättra tillgänglighet och prestanda är belastningsutjämning. Belastningsutjämning är en metod för att distribuera nätverkstrafik över servrar som ingår i en tjänst. Det hjälper prestanda eftersom processor-, nätverks- och minnesbelastningen för att betjäna begäranden distribueras över alla belastningsutjämnade servrar. Vi rekommenderar att du använder belastningsutjämning när du kan och efter behov för dina tjänster. Information om belastningsutjämningsscenarier finns i Optimera drifttid och prestanda.

Överväg dessa säkerhetsåtgärder, vilket påverkar prestandan:

  • För att optimera prestanda och maximera tillgängligheten bör programkoden först försöka hämta OAuth-åtkomsttoken tyst från en cache innan du försöker hämta en token från identitetsprovidern. OAuth är en teknisk standard som gör att du på ett säkert sätt kan dela information mellan tjänster utan att exponera ditt lösenord.

  • Se till att du integrerar kritiska säkerhetsaviseringar och loggar in i SIEM:er (säkerhetsinformation och händelsehantering) utan att införa en stor mängd data med lågt värde. Detta kan öka SIEM-kostnaden, falska positiva resultat och lägre prestanda. Mer information finns i Prioritera avisering och loggintegrering.

  • Använd Azure AD Anslut att synkronisera din lokala katalog med din molnkatalog. Det finns faktorer som påverkar prestandan för Azure AD-Anslut. Se till att Azure AD Anslut har tillräckligt med kapacitet för att hålla underpresterande system från att öka säkerheten och produktiviteten. Stora eller komplexa organisationer (organisationer som etablerar fler än 100 000 objekt) bör följa rekommendationerna för att optimera sin Azure AD-Anslut implementering.

  • Om du vill få åtkomst till prestandainformation i realtid på paketnivå kan du använda paketinfångst för att ställa in aviseringar.

Andra säkerhetsöverväganden finns i grundpelaren Säkerhet.