HOOFDSTUK 1: Performantie van webgebaseerde toepassingen §1. Basisprincipes componenten en tijden
is totale antwoordtijd is transfertijd is transfertijd http-request is transfertijd http-reply (data) is residentietijd server is residentietijd client is verwerkingstijd actie gebruiker + zoeken in cache is verwerkingstijd presentatie
cache hit: cache miss: client cache is aantal cache hits is aantal cache requests cache success rate
analoog voor proxy caches 1 Tim De Backer 2009-2010
H1
bottlenecks situatie succesvolle webapplicatie plotse sterke verhoging van aantal clients + servers mogelijk globale performantie vaak beperkt door klein aantal deelsystemen vb. server, netwerk, clients, … ‘werking van globaal systeem gelimiteerd door verwerkingsnelheid van meest restrictieve systeem’ bottleneck = deelsysteem dat globale performantie beperkt identificatie zeer belangrijk hierop eerst focussen bij verhoging globale performantie anders verbeteren andere deelsystemen geen nut! voorbeeld -> stel
(
stel
2 Tim De Backer 2009-2010
H1
§2. Performantiematen perceptie van performantie standpunt gebruiker vs. systeembeheerder gebruiker: beschikbaarheid, antwoordtijd, correctheid,… systeembeheerder: vereiste bandbreedte, uptime garantie,… relativiteit perceptie afhankelijk van situatie vb. kwaliteit YouTube slecht, maar mensen tevreden (situatie + geen alternatief) <-> zelfde kwaliteit op DVD onaanvaardbaar meetbaarheid wel kwantitatieve performantiematen <-> perceptie van performantie moeilijk kwantitatief meetbaar believers meer onderzoek nodig doel = objectieve metriek voor perceptie vinden non-believers geen objectieve en kwantitatieve meting mogelijk focussen op meer en betere testruns testgroepen algemene resultaten + verschillen (jong vs. oud, leken vs. experts, …) gevaar: kwaliteit vs. schoonheid probleem: ZEER duur problemen met performantiemetingen werklast potentiële doelgroep enorm groot aantal effectieve gebruikers moeilijk te voorspellen mate van gebruik moeilijk te voorspellen manier van gebruik moeilijk te voorspellen (verspreid in tijd <-> bursts) grote diversiteit in componenten <-> TV, GSM, … 1 of beperkt aantal afgesproken standaarden * enorme variatie in end-user devices en systemen <-> vroeger: enkel pc -> vrij gelijklopend * enorme variatie in netwerktoegang (‘last mile’) door andere technologie, ander device + trage evolutie <-> vroeger: inbelnetwerk en later breedbandnetwerk -> vrij gelijklopend * variatie in browsers, webservers, … invloed externe factoren beschikbare netwerkbandbreedte of netwerkcongestie internet inherent onbetrouwbaar netwerk 3 Tim De Backer 2009-2010
H1
belangrijke performantiematen verwerkingssnelheid connectie (requests/s of bps) snelheid waarmee http-requests beantwoord kunnen worden latentie v/d server (ms) tijd die server nodig heeft om antwoord te formuleren ‘latency’ vaak anders gebruikt (vb. i.p.v. ‘delay’ ) totale antwoordtijd (ms) afhankelijk van latentie, transfertijd, verwerkingstijd in client, … fouten pakketverlies (%) volledig eenduidig <-> zegt weinig aantal ‘fouten’ per seconde allerminst eenduidig -> ‘fout’ objectief (data foutief verzonden) of subjectief (storend gebruiker) -> corrigeerbare/onmerkbare fouten ook? -> gradatie in fout (effect, relevantie,…) oplossingen error resilience (server side) doel: minder datafouten <-> prijs: meer redundantie 1. voorspellen gedrag netwerk/systeem VOOR verzenden 2. bewust extra redundantie inbouwen vb. 2% pakketverlies en alles 2 keer doorsturen error concealing (client side) doel: minder subjectieve fouten <-> prijs: meer comlexiteit 1. detecteer fouten in binnengekomen data 2. verbeter/verberg fouten naar gebruiker toe (geheel/gedeeltelijk) -> probleem bij vb. mobiele toepassingen (extra complexiteit) populariteit (http aanvragen/sec) aantal gevraagde connecties met server voorbeeld 12000 http-requests per uur 3 soorten antwoorden tekstpagina (20% v/d aanvragen) -> 6 kB afbeelding (55% v/d aanvragen) -> 30 kB video (25% v/d aanvragen) -> 700 kB berekening aanvragen per seconde = tot aanvragen per uur * aandeel / 3600 bits per aanvraag = kB per aanvraag * 1024 * 8 bps = aanvragen per seconde * bits per aanvraag som van alle bps 4 Tim De Backer 2009-2010
H1
§3. Invloed deelsystemen proxyservers, caches, mirrors doel verkorting antwoordtijden vermindering data over netwerk (dus minder bandbreedte nodig) proxyserver handelt als agent is server t.o.v. clients en client t.o.v. server uitgerust met lokale cache performantiematen proxyservers succesverhouding houdt geen rekening met omvang objecten minder relevant (variabele objectomvang) byte-succesverhouding = succesverhouding gewogen met objectomvang relevanter <-> objectomvang moeilijk voorspelbaar hoeveelheid getransfereerde data totaal aantal bytes van cache naar clients mirrors en content networks replica’s van content op verschillende servers dataconsistentie cruciaal ->dataintegriteit op alle nodes -> correcte versies tussen nodes verzenden (0 fouten!) <-> niet evident
5 Tim De Backer 2009-2010
H1
verwerkingssnelheid van webservers scripting voegt interactiviteit/functionaliteit toe aan applicatie client scripting vs. server scripting per functie fundamentele keuze belangrijke impact op globale performantie client scripting + schaalbaar want gedecentraliseerd + keuzevrijheid van client - moet op alle clients werken (vb. devices, browsers, …) - complexe operaties probleem voor sommige devices => slechte perceptie van performantie <-> client schuld server scripting + zeer flexibele antwoorden per gebruiker vb. rechten, toegang, voorkeuren, … + geheimhouding indien meerwaarde in algoritme/script - minder schaalbaar - performantie verantwoordelijkheid server => extra kosten - geen keuzevrijheid client service net goed genoeg om klant te houden alternatief: QoS distributie van de bestandsgrootte vb. Pareto distributie
kans op zeer grote bestanden niet te verwaarlozen (zie lange staart) afgeleide grootheden (bv. gemiddelde) zeer variabel voorbeeld globaal gemiddelde vs. gewogen gemiddelde na clustering globaal gemiddelde te sterk beïnvloed door staart
6 Tim De Backer 2009-2010
H1
populariteit van webobjecten Wet van Zipf experimentele wet <-> theoretische < frequentieanalyse voor woorden in teksten is frequentie van optreden is populariteitsrang
voorbeeld aantal bezoekers applicatie: 300000/dag document rangnummer frequentie homepage 1 1/1 = 1 docA 4 1/4 = 0.25 docB 2 1/2 = 0.5 docC 3 1/3 = 0.33…
bezoekers/dag 300000 75000 150000 100000
Netwerk performantiematen latentie of vertraging v/h netwerk (s) tijd om 1 bit of pakket te transfereren over netwerk round-trip-time (s) tijd om 1 bit of pakket te transferen en een bevestiging te ontvangen bandbreedte (bps) snelheid waarmee data kunnen verzonden worden via netwerk bandbreedte-latentieproduct (bit of byte) capaciteit voor datatransfer van client naar server
7 Tim De Backer 2009-2010
H1