Kõikide Windowsi Probleemide Ja Muude Programmide Lahendamine

Avalike veebisaitide koormuse testimine

Avalik veebisait kujutab endast tavaliselt märkimisväärset investeeringut. Kõik tahavad, et see toimiks tõrgeteta; arendus- ja toimimismeeskondadele avaldatakse suurt survet tagamaks, et uue või muudetud saidi tootmisse minnes ei tekiks probleeme.

Kas ma peaksin kasutama Microsoft Edge'i või Google Chrome'i?

Kuid tundub, et seal on lõputu uudisvoog suurte saitide kokkuvarisemisest koormuste all, mida tavaliselt võis ette näha. Mis toimub? Miks ei avastatud neid probleeme enne käivitamist või enne seda, kui kallis reklaamikampaania kasutajad saidile juhtis? Tavaliselt pole asi selles, et testimist ei toimunud; selle asemel andsid testid eksitavaid tulemusi või neid tulemusi tõlgendati valesti. Testid viidi läbi, tulemused näisid ütlevat, et saidiga saab kõik korras, töötajad magasid korralikult ja seejärel läks maailm platsi avamisel laiali.



Selles artiklis kirjeldatakse probleeme, mis on põhjustatud pärandvara ja veebikoormuse testimise üllatavatest erinevustest, ning seejärel antakse mõned soovitused selle kohta, mida peaksite tegema, et testid oleksid kasulikud ja täpsed.

Veebipõhised süsteemiprobleemid

Veebipõhine süsteem on keeruline kombinatsioon koormuse tasakaalustamise seadmetest, serveritest, andmebaasisüsteemidest, Interneti-teenuse pakkujatest, nende ühendustest (võrdluspunktid), spetsialiseeritud teenustest (vahemällu salvestamine, sisu levitusvõrgud, reklaamiserverid ja muud kolmanda osapoole serverid) ja kataloogid (domeeninimede süsteem). Brauseri esitatud veebileht sõltub seetõttu serverite toimimisest erinevates võrguühendustes erinevates kohtades-ning see serverite ja võrguühenduste komplekt on lõppkasutaja eri asukohtades erinev. Paljud teenindussüsteemi osad, näiteks Interneti selgroo käitumine ja Interneti -vahemälud, ei ole ilmselgelt veebisaidi omanikorganisatsiooni otsese kontrolli all. Sellest hoolimata peavad kõik nad korralikult koostööd tegema, et lõppkasutajale head kogemust pakkuda.



Lisaks suhtlevad veebikasutajad otse taustsüsteemidega, selle asemel, et kõnekeskuses klienditeenindajast läbi käia. Nende ühendamiskatsed tabasid arvutisüsteemi koheselt, selle asemel, et telefonikõnede levitaja sees järjekorda seada. Nad näevad mingeid probleeme kohe, selle asemel, et inimoperaator neid puhverdada.

Kõik need keerukused ja erinevused toovad kaasa mõningaid suuri probleeme veebikoormuse testimisel, mida ei olnud terminali-/hosti- või kliendi-/serverisüsteemides ja mida seetõttu ei testita nende süsteemide jaoks loodud tehnoloogiate abil.

  • Kättesaadavust ja jõudlust mõjutavad paljud Interneti-põhised arhitektuurikomponendid: DNS, Interneti-ühendus, vahemällu salvestamine, sisu levitamise võrgud ja palju muud. Neid tuleb testida koormusgeneraatorite kaudu, mis on Internetis kohtades, mis on ligikaudsed tegelike lõppkasutajate omadega, ning testimisskriptid peavad sisaldama piisavalt juhuslikkust, et andmeid ei esitataks alati vahemälust.
  • Lõppkasutaja seansi käitumine võib sõltuda mitte ainult veebiteenindussüsteemist; see sõltub ka Interneti üldisest käitumisest. Sidepaketid võivad kaduda või aeguda põhjustel, millel pole testitava süsteemiga mingit pistmist. Katsetulemuste statistiline käsitlus peab seda olukorda käsitlema.
  • Veebibrauserid tavaliselt seansi hülgamisest ei teata. Pärandterminali/hosti või kliendi/serveri süsteemide puhul teatati rakendusest peaaegu alati kiiresti loobutud seansist. Modemi lahtiühendamine, terminali algatatud seansi katkestamine ja kliendiühenduse kadumine tekitasid häire, mida saaks kasutada ressursside vabastamiseks.



    Veebis esitatakse rakendusele harva aruanne, kui seansi kasutaja seansist loobub, olgu siis modemiühenduse kaotamise, konkurendi veebisaidi aadressi brauserisse sisestamise või lihtsalt uue brauseriakna avamisega ja unustades seanss, mis on pooleli. Seansiressursse hoitakse seansi jätkamiseks, mis võib häirida uute seansside alustamise võimet. Paljudel juhtudel võib näha, et süsteemi koguvõimsus aja jooksul väheneb, kuna mittetäielikud, mahajäetud seansid neelavad järjest rohkem süsteemiressursse.
  • Erinevalt kõnekeskuse operaatoritest või andmesisestustöötajatest, kes jäävad lõppkasutajaga vesteldes aeglaseks tehinguks, loobuvad üldsuse liikmed veebipõhistest seanssidest, kui need kestavad liiga kaua või neil on probleeme. See loobumiskäitumine mõjutab tohutult süsteemi võimsust.

    Mahajäetud seansid neelavad jätkuvalt ressursse ja tehingu tavapärane voog läbi kõigi selle toimingute katkeb. Veebipõhise süsteemi jõudluse vähenedes kipub koormus kanduma tehingu esimestesse etappidesse, kuna tehing loobutakse enne hilisemate toimingute algust.
  • Kõnekeskuste või andmesisestustöötajate tööjärjekorda hoitakse väljaspool arvutisüsteemi. Iga kord, kui kõnekeskuse operaator tehingu lõpetab, ootab telefonijärjekorras juba teine. Iga kord, kui andmekeskuse ametnik lõpetab ühe tellimusega, ootab hunnikus teine. Tööpäeva jooksul on aktiivsete tehingute arv seega konstantne - see on sama, mis kõnekeskuse operaatorite või andmesisestajate arv.

    Veebis seevastu varieerub aktiivsete tehingute arv päeva jooksul tohutult ja juhuslikult. Teoreetilist maksimaalset kasutajate arvu pole ja ühe konkreetse tehingu lõpuleviimine ei ole järgmise algusega kuidagi seotud - vähemalt koormuse osas. Klassikalise „samaaegsete tehingute” koormuskäsitlusmeetodi kasutamine ei tööta seetõttu veebis; tõepoolest, see on tagurpidi.

    Tehingusüsteemi tõhususe kasvades saavad kasutajad peale, teevad oma tööd ja väljuvad - ning samaaegsete tehingute meede väheneb. Selle asemel tuleks veebikoormusi mõõta saabumiskiiruse või „seansi algus” järgi.
  • Avalikkuse liikmed ei ole teie veebisaidil koolitatud. Erinevalt kõnekeskuse operaatoritest ja andmesisestustöötajatest pole veebikasutajad alati kindlad, kuhu nad lähevad. Seetõttu on nende käitumine palju juhuslikum kui enamikus terminali-/hosti- või kliendi-/serverisüsteemides.

Veebikoormuse testimise soovitused

Arvestades kõiki neid suuri erinevusi, mida peaks süsteemidisainer tegema, et vältida eksitamist mittetäieliku või valesti tõlgendatud koormustestimisega?

netflix h500

Kaasa juhuslik käitumine

Lisage juhuslik käitumine ja juhuslik loobumine - palju rohkem, kui terminali/hosti või kliendi/serveri süsteemi puhul oodata võiksite. Teatud protsent avalikke kasutajaid teeb vigu, rändab tupikusse, kasutab otsingumootorit, selle asemel et otse sihtkoha lingile klõpsata ja loobub ilma selge põhjuseta. Kogu see tegevus on siiski teie süsteemi koormav ja seda tuleks modelleerida täpseks testimiseks. Nende kasutajate juhuslikud toimingud võivad avaldada mõju ka serveri- ja Interneti-põhistele vahemäludele ning muudele taustsüsteemi käitumistele. Kui see on juba aktiivne, saab teie olemasoleva saidi mõõtmisi kasutada, et saada aimu sellest, mida kasutajad teevad ja kui sageli nad seda teevad.

Test Internetis

millised telefonid koos projektiga fi töötavad

Soovite käivitada kõik probleemid, mida teie tegelikud kasutajad näevad, nii et peate testima Internetis, mitte ainult võrgus või masinaruumis. Isegi kui te ei vasta oma kasutajate asukohtadele, leiab koormuse testimine Internetis probleeme teie juurdepääsulinkide mahu, DNS-i seadistuse, koormuse jagamise süsteemide ja võimalike sisuvõrguga. . Treenivad ka teie veebisaitidele manustatud reklaamiserverid ja muud kolmanda osapoole saidid.

Seistes silmitsi vajadusega teha ulatuslikke teste kogu avalikus Internetis, kasutavad mõned ettevõtted testimisteenust. See on palju lihtsam ja odavam kui oma hajutatud testimisvõimaluse ehitamine ning kaugmajutuse, ribalaiuse, testide haldamise ja andmebaaside eest tasumine. Kui teil on aga suur hulk kaugkontoreid, millel on otsene juurdepääs Internetile, võiksite paigutada nendesse kontoritesse mõned koormustesti mootorid. Kuid olge kindel, et te ei kasuta ainult transpordiks oma sisevõrku! Koorem peab liikuma üle avaliku Interneti täpselt nii, nagu oleks see päriselt lõpptarbijalt pärit.

Jäljendage jõudluspõhist loobumist

Tõelised veebikasutajad loobuvad tehingutest, kui jõudlus halveneb, ja loobumisel on veebiserverisüsteemidele tohutu mõju. Seetõttu tuleb seda jäljendada.

Loobumine sõltub mitmest tegurist, sealhulgas järgmistest peamistest.

  • Kogunenud tehinguseansi aeg
  • Praeguse lehe allalaadimise aeg
  • Kasutajatüüp, kuna mõned kasutajad taluvad rohkem viivitusi kui teised
  • Lehe tüüp, kuna kasutajad ootavad tavaliselt lehte (nt otsingulehte) kauem, kui nad eeldatavalt on keskmisest aeglasemad
  • Brauseri juurdepääsukiirus, kuna kasutajad kasutavad aeglast juurdepääsu, näiteks 28,8 Kbit/s. modem, on valmis ootama kauem kui kasutajad, kellel on kiire Interneti-lingi ettevõtte kasutajad

Teie koormustesti mootor peab täpselt mõõtma iga seansi kogunenud seansiaega ja üksikute lehtede allalaadimisaegu, sobitades selle selle konkreetse lehe tüübi konkreetse jäljendatud kasutaja prognoositud toimivushälbega. See peab hälbe ületamisel loobuma ja ei tohi „hüljatud” tehingut kohe uueks alustamiseks uuesti kasutada. Selle asemel peab see kõigepealt serverisüsteemidest täielikult lahti ühendama.

Looge juhuslik koormus ja mõõtke saabumiskiiruse järgi

Klassikalised koormustestid, mis on mõeldud kõnekeskustele ja andmesisestuskeskustele, jäljendavad pühendunud operaatorite ja asjaajajate pidevat töövoogu. Tööjärjekord on väljaspool süsteemi ja töö voolab masinasse ühtlaselt. Tehingu lõpuleviimine käivitab koheselt järgmise tehingu alguse. Samaaegsete kasutajate arvu suurendamine on sujuv ja etteaimatav.

Veebisaidi laadimiskatsete puhul peavad tehingu käivitused olema teatud aja jooksul juhuslikud ja uue tehingu esitamist ei tohiks seostada eelmise tehingu lõpuga. Peaksite saama määrata koormuse uute seansikatsete tunnis (saabumiskiirus), mitte samaaegsete seansside alusel. Peaksite mõistma, et kõrgem saabumismäär ei ole sujuv; iga ajavahemiku jooksul on koormuspiike. Aga see on sama mis päriselus! Iga ajavahemiku jooksul peaks keskmine saabumismäär ja jaotus vastama teie soovile.

Test vastupidavusele

eemal režiim

Ärge katsetage ainult tippvõimsust. Erinevalt klassikalistest süsteemidest ei tuvasta veebisüsteemid tavaliselt loobumist. Nende vaba võimsus võib aja jooksul väheneda, kuna loobutud tehingud eemaldavad ressursid kogumist. Kontrollige kindlasti oma süsteemi ressursside taastamise süsteeme, katsetades vastupidavust.

Kasutage Internetis sobivat statistilist käsitlust

Pärandsüsteemides ei olnud väliseid tegureid, mis ei oleks süsteemi disainerite kontrolli all. Internetis on neid tegureid palju. Seetõttu leiate alati „kõrvalekaldeid”, mis on individuaalsed jõudlusmõõtmised, mis jäävad oodatust kaugemale. Kaotatud paketid ja sellest tulenevad aegumised Interneti-andmesidete hetkelise ülekoormuse tõttu on tüüpilised kõrvalekallete põhjused.

Kui kasutate kärpimata aritmeetilisi vahendeid, võivad kõrvalekalded teie üldist statistikat drastiliselt mõjutada. Nad ei peaks; need pole tüüpilised sellele, mida lõppkasutaja näeb. Seetõttu kasutage kogu internetis toimivuse hindamisel mediaane, protsentiile ja geomeetrilisi keskmisi. Nad on palju vähem tundlikud nende mõne juhusliku kõrvalekalde suhtes, mille saate mis tahes Interneti -mõõtmisel. Ja ärge kunagi kasutage Interneti -jõudluse mõõtmiseks standardhälbeid. Ainult üks kõrvalekalle võib standardhälbe arvutamisel eksitavalt tasakaalustada tuhandeid tüüpilisi mõõtmisi.

mis on usb c

Ärge taaskasutage muutmata funktsionaalse testimise skripte

Nagu alati, ärge laadimistesti skripte koostades funktsionaalseid testimisskripte taaskasutage. Funktsionaalse testimise skriptid on loodud selleks, et testida kõiki võimalikke stsenaariume ja käivitada kõik võimalikud vead; see on täiesti erinev koormustesti skriptist, mis on loodud tavaliste kasutajateede testimiseks. Veelgi hullem, funktsionaalse testimise skriptidel pole juhuslikkust; nad kordavad oma testi, kasutades iga kord täpselt sama rada. Koormustesti skriptid peavad sisaldama juhuslikku käitumist, et jäljendada kasutajaid ja tagada süsteemi vahemälu realistlik käitlemine.

Kokkuvõte

Nagu nägime, on pärand- ja veebisüsteemide vahel mõned suured erinevused ning neil erinevustel on tohutu mõju koormuse testimisele ja võimsuse planeerimisele. Nende hulgas on:

  • Interneti-põhiseid süsteeme, nagu nimeserverid, vahemälud ja kolmanda osapoole sisu tarnijad, ei saa serveriruumist testida.
  • Lõppkasutajad loobuvad sageli seanssidest.
  • Rakendusi tavaliselt ei teavitata, kui kasutajate seansid katkestatakse või muul viisil lõpetatakse.
  • „Välklaadimised” tabavad otseselt süsteemiservereid, kuna avalikul veebil ei ole võimalikku lõppkasutajate arvu.
  • Koolitamata kasutajaid on tohutult palju, mis põhjustab ebatavalisi käitumismustreid.
  • Vastamisaja statistikat mõjutab Interneti statistiline käitumine.

Arvestades kõiki neid erinevusi pärandsüsteemide ja veebisüsteemide vahel, on üllatav, et inimesed kasutavad endiselt pärandile orienteeritud koormustesti tööriistu ja tehnikaid. Ettevaatust, mõned olemasolevad koormustesti tööriistad ei sobi veebikoormuse testimiseks ilma märkimisväärsete kohandatud skriptide ja tööriistade muutmiseta, kuid on ka müüjaid, kes pakuvad sobivaid tööriistu ja teenuseid.

Aegunud tööriista kasutamise mugavuse kaalub alati kaugelt üle ebamugavused, mis tekivad esimesel tootmispäeval süsteemi krahhil, seega tasub oma koormustesti tööriistu ja plaane hoolikalt uurida. Veenduge, et teie valitud koormustestilahendus sisaldab järgmist:

  • Testimine Interneti kaudu, mitte ainult teie serveriruumides
  • Lõppkasutajate seansi hülgamise jäljendamine, kui reageerimisajad on liiga pikad
  • Realistlik koormuse genereerimine, mis sobib veebikasutajate juhusliku saabumismustriga, mitte pärandkõnekeskuse või kantseleisüsteemide pideva samaaegse kasutaja mustriga
  • Koormuse mõõtmine saabumiskiiruse, mitte samaaegsete kasutajate arvu järgi
  • Süsteemi vastupidavuse testimine, et hinnata süsteemi võimet hüljatud tehingutest ressursse taastada
  • Asjakohane statistiline käsitlus, näiteks standardhälvete ja kärpimata aritmeetiliste keskmiste vältimine
  • Käitumismustrid, mis vajaduse korral jäljendavad algajate kasutajate käitumist

Nõuetekohase testimise ja planeerimisega tegeleb teie veebisait sissetulevate koormustega sujuvalt, mõistliku hinnaga ja minimaalse arvu ebameeldivate üllatustega.