Prestandatester främjar systemharmoni

Peter Rothin
28.02.2018

Att bygga rätt kan ge bra förutsättningar för ett skalbart system men det är lätt att missa vissa begränsande samband. Begränsade samband kan vara tunga klienter, stora bilder eller bara anrop som inte längre är relevanta. Därför behövs prestandatester som en del i din verktygslåda. Antingen du utför dem själv eller anlitar någon annan för att genomföra testerna.

Det går inte nog att poängtera hur viktigt det är att testa. Som alltid i systemutveckling kan några sena otestade ändringar äventyra hela det arbete som har lagts ned för att uppnå skalbarhet och bra prestanda. Därför gäller det att  prestandatesta väl. Idag skapas det fler och fler molnlösningar. Det är även, som reklamen lovar, enkelt att anpassa datakraft efter behov över tiden. Företagen köper endast de resurser som behövs. En förutsättning är dock att den byggda applikationen är skalbar vilket inte alltid är självklart.

Konfigurera harmoniskt 

I mitt senaste projekt användes modern teknik med ett flertal leverantörers webkomponenter. När vi försökte skala upp prestandan gav mer datakraft knappt någon effekt alls. Efter djupare analyser insåg vi att det bildades en kraftig köbildning på flera platser, ett resultat av att ocachat innehåll hämtades om och om igen. Cachningen åtgärdades vilket ökade prestandan och ledde till ett antal tappade anrop mot databasen. Det visade sig att för få trådar mot databasen användes. Varje session behövde en tråd vilket resulterade i att trådarna tog slut vid den hårda belastning. För att lösa problemet med de tappade anropen ökade vi antalet trådar. Köerna flyttades sedan tillbaka till middleware, vilket medförde en bättre prestandanivå. När testerna avslutades hade vi uppnått en prestanda som var 20 gånger högre än vid det första testet. 

Vad är lärdomen? 

Konfigurera harmoniskt! De olika komponenterna behöver samarbeta på ett avvägt sätt. Vilket uppnås genom att prestandatesta. Prestandatester ger kunskap om hur man ska konfigurera komponenterna och vad som ska göras inför en möjlig eller förväntad lasthöjning. Vilket blir ännu vikigare i projekt där komponenterna plockas från olika leverantörer. 

7 tips att tänka på vid prestandaarbete:  

  1. Vilken last ska systemet klara av i en peak? Vet du när en peak kommer att inträffa?
  2. Fungerar automatisk uppskalning eller måste den hanteras manuellt?
  3. Hur samspelar dina använda molnkomponenter och hur konfigureras de?
  4. Anropas komponenter som inte längre är relevanta? Ta bort dem!
  5. När du testar - motsvarar testsystemet det system som är i produktion?
  6. Hur stor skada blir det om sajten skulle gå ner? Denna punkt motiverar oftast en investering i prestandatester.
  7. Framförallt - starta testerna i god tid! Det kan krävas ett antal testomgångar innan prestandaproblemen har hittats och tillsist åtgärdats.

Software Test

Bloggen för alla som är intresserade av test och kvalitet. Vi pratar om allt från ledarskap till test, testautomatisering och prestandatest.

Relaterade artiklar