Server Unit za klijenta pokreće cijeli glasovni sustav: obradu poziva, prepoznavanje govora, jezični model i sintezu govora. Svaka jedinica nosi 100 istodobnih poziva. Prije nego što taj broj uđe u ugovor, treba ga provjeriti, pa smo izgradili test opterećenja i pokrenuli ga dvaput.
Željeli smo znati nosi li jedinica svojih nazivnih 100 poziva s odgovorima koji i dalje zvuče kao razgovor te kako se ponaša iznad njih, na 120%, 150% i 176%.
Izmjereno na jednom Server Unitu s agentom za regrutaciju i simuliranim pozivateljima na istoj jedinici, preko G.711 A-law kroz mjerni most: 22 koraka opterećenja u 9 serija, 22.018 odgovora, oko 129 sati razgovora. Opterećenje je dano kao udio nazivnog kapaciteta (100 istodobnih poziva), a vrijeme odgovora kao indeks u kojem jedan poziv iznosi 1,00.
Ukratko: prosječno vrijeme odgovora ostaje u ocjeni Standard ili boljoj do nazivnog kapaciteta, a s ranim startom do oko 117%. Na 176% svi su pozivi bili spojeni i nijedan nije prekinut. Više od 99% pozivateljevih iskaza dobilo je odgovor na svakom koraku, a jedan krug optimizacije za veliko opterećenje udvostručio je opterećenje koje jedinica nosi u ocjeni Standard.
Kako smo mjerili
- Simulirani pozivatelji na istoj jedinici. Svaki razgovor čine dva telefonska poziva: agent koji se testira i simulirani pozivatelj. Dvadeset simuliranih pozivatelja, svaki sa vlastitim glasom, manirom i raspoloženjem, pita o poslu, pravi stanke i odgovara kao ljudi. Server Unit nosi oba kraja svakog razgovora, pa je telefonsko opterećenje dvostruko veće nego što bi ga stvorio stvarni razgovor iste veličine.
- Realne ovisnosti. Vanjski sustavi koje agent poziva odgovaraju nakon fiksnog, realnog kašnjenja.
- Jedan sat na liniji. Mjerni most nalazi se u audio putanji. Bilježi trenutak u kojem završava pozivateljeva fraza i trenutak u kojem stiže prvi zvuk agentova odgovora. Vrijeme odgovora je taj interval. Obuhvaća sve unutar jedinice, uključujući stanku za kraj iskaza i prijenos zvuka.
- Koraci. Opterećenje raste po koracima od jednog razgovora do 176% nazivnog kapaciteta. Svaki se korak dvije minute stabilizira, a zatim mjeri najmanje pet. Korak s jednim razgovorom traje dvadeset.
- Korak mora zaslužiti svoje mjesto. Korak se računa samo ako prođe osam provjera: stabilno stanje (druga polovica nije sporija od prve), neuspjeli iskazi, ispravnost mjernog mosta, preklapanje govora, usklađenost događaja mosta s agentovim zapisnikom, izgubljena telemetrija, odbijeni pozivi i ograničavači resursa.
- Dva načina rada. Agenta smo mjerili u standardnom načinu i s ranim startom, u kojem jezični model počinje raditi na prepoznatom tekstu prije nego što je iskaz formalno zatvoren.
Što se dogodilo
Pojasevi opterećenja
Ocjene opisuju kako odgovor doživljava pozivatelj. Svaka ocjena završava na određenom indeksu vremena odgovora.
| Pojas opterećenja | Opterećenje, % nazivnog kapaciteta | Ocjena odgovora | Indeks do | Što pozivatelj primjećuje |
|---|---|---|---|---|
| Nisko | do 42 | Platinum | 1,22 | Odgovori stižu gotovo brzinom jednog poziva |
| Umjereno | 42–65 | Gold | 1,49 | Brz odgovor |
| Visoko | 65–100 | Standard | 2,03 | Prirodna stanka; ovaj pojas završava na nazivnom kapacitetu |
| Vrhunac | 100–137 | Minimum | 2,71 | Zamjetna stanka, i dalje razgovor |
| Nalet | 137–176 | Stretch | — | Dulja stanka, uz sve pozive i dalje spojene |
S ranim startom svaki se pojas proširuje: Platinum do oko 57% nazivnog kapaciteta, Gold do oko 78%, Standard do oko 117%. Rani start izmjerili smo do 128% nazivnog kapaciteta.
Nazivni kapacitet je ispunjen
Na 100 istodobnih poziva prosječno vrijeme odgovora iznosi oko dvostruke vrijednosti jednog poziva (indeks 2,02), a odgovori ostaju u ocjeni Standard. S ranim startom jedinica drži Standard do oko 117% nazivnog kapaciteta.
| Opterećenje, % nazivnog kapaciteta | Indeks odgovora | S ranim startom | 95. percentil / medijan | Udio propusnosti |
|---|---|---|---|---|
| 1 poziv | 1,00 | 0,88 | 1,73 | 0,01 |
| 24 | 1,07 | — | 1,61 | 0,38 |
| 36 | 1,15 | — | 1,61 | 0,55 |
| 50 | 1,30 | 1,14 | 1,69 | 0,74 |
| 64 | 1,48 | — | 1,72 | 0,94 |
| 80 | 1,75 | — | 1,70 | 1,00 |
| 96 | 1,97 | 1,71 | 1,62 | 0,98 |
| 112 | 2,20 | — | 1,69 | 0,94 |
| 128 | 2,52 | 2,21 | 1,68 | 0,99 |
| 152 | 3,02 | — | 1,60 | 0,91 |
| 176 | 3,34 | — | 1,71 | 0,81 |
Vrijeme odgovora raste sporije od opterećenja
Krivulju sažimamo jednim brojem, elastičnošću opterećenja: za koliko posto naraste vrijeme odgovora na svaki posto dodanog opterećenja.
| Raspon opterećenja, % nazivnog kapaciteta | Elastičnost | Vrijeme odgovora na +10% opterećenja |
|---|---|---|
| 24–64 | 0,33 | oko 3% |
| 64–128 | 0,77 | oko 8% |
| 128–176 | 0,88 | oko 9% |
Elastičnost ostaje ispod 1 sve do 176%, a krivulja nema koljeno na kojem bi skrenula prema gore. Klijent koji radi 20% iznad nazivnog kapaciteta dobiva mjerljivo dulju stanku na sustavu koji i dalje radi.
Rep ostaje u razmjeru
Medijan odgovora i odgovor na 95. percentilu zadržavaju isti omjer na svakom koraku, od jednog poziva do 176%:
Odgovor na 95. percentilu iznosi otprilike 1,6 do 1,7 medijana na svakom koraku opterećenja.
Spori odgovori rastu zajedno s ostalima, pa klijent koji zna uobičajenu stanku može procijeniti najgoru.
Propusnost se drži
Broj odgovora u sekundi raste s opterećenjem, doseže vrhunac na oko 80% nazivnog kapaciteta i ostaje unutar 6% tog vrhunca od 64% do 128% tog kapaciteta. Na 176% jedinica i dalje obrađuje oko 80% svoje vršne propusnosti.
Pozivi i mediji
- Odgovoreni iskazi. Više od 99% pozivateljevih iskaza dobilo je odgovor na svakom koraku.
- Mediji. Mjerna linija nije izgubila nijedan RTP paket ni na jednom koraku.
- Prihvaćanje poziva. Na 176% nazivnog kapaciteta istodobno je bilo uspostavljeno 352 SIP poziva. Svi su se spojili i nijedan nije prekinut.
- Modeli. Red jezičnog modela i red sinteze govora ostali su prazni na svakom koraku.
Prvi i drugi krug
Pokrenuli smo test, optimizirali sustav za veliko opterećenje i ponovno pokrenuli test. Optimizacija je obuhvatila putanju medija, način na koji se otkrivanje glasa raspoređuje po pozivima, obradu tišine u sintetiziranom govoru i trenutak u kojem se pokreće jezični model.
| Mjera | Prvi krug | Drugi krug |
|---|---|---|
| Kapacitet u ocjeni Standard | oko pola nazivnog kapaciteta | nazivni kapacitet |
| Kapacitet u ocjeni Gold | oko 36% nazivnog kapaciteta | oko 65% nazivnog kapaciteta |
| Vrijeme odgovora, jedan poziv | početna vrijednost | 22% niže |
| Vrijeme odgovora na pola nazivnog kapaciteta | početna vrijednost | 34% niže |
| Vršna propusnost | početna vrijednost | gotovo dvostruka |
Drugi je krug dosegnuo nazivnih 100 poziva, pa je brojka u tehničkom listu izmjerena. Stranica Tehnologije pokazuje gdje se test opterećenja nalazi u sustavu. U tekstu Voicecore (na engleskom) opisujemo sljedeći korak u obradi zvuka: jezgru napisanu u Rustu.
Postav testa
Izmjereno preko G.711 na telefonskoj testnoj liniji, s dvadeset simuliranih pozivatelja i agentom za regrutaciju; 94% prvih fraza dolazilo je iz glasovne predmemorije.