Server Unit pokreće cijeli glasovni sistem za jednog klijenta: obradu poziva, prepoznavanje, jezički model i sintezu govora. Svaka jedinica nosi 100 istovremenih poziva. Prije nego što taj broj uđe u ugovor, treba ga testirati, pa smo napravili test opterećenja i proveli ga dvaput.
Željeli smo znati nosi li jedinica svojih nazivnih 100 poziva uz odgovore koji i dalje zvuče kao razgovor, i kako se ponaša iznad njih, na 120%, 150% i 176%.
Izmjereno na jednom Server Unitu, s agentom za zapošljavanje i simuliranim pozivaocima 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 dato kao udio nazivnog kapaciteta (100 istovremenih 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 uz rani start do oko 117%. Na 176% su se svi pozivi povezali i nijedan nije prekinut. Više od 99% replika pozivalaca dobilo je odgovor na svakom koraku, a jedan krug optimizacije za visoko opterećenje udvostručio je opterećenje koje jedinica nosi u ocjeni Standard.
Kako smo mjerili
- Simulirani pozivaoci na istoj jedinici. Svaki razgovor su dva telefonska poziva: agent koji se testira i simulirani pozivalac. Dvadeset simuliranih pozivalaca, svaki sa svojim glasom, manirom i raspoloženjem, pita o poslu, pravi pauze 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.
- Realistične zavisnosti. Vanjski sistemi koje agent poziva odgovaraju nakon fiksnog, realističnog kašnjenja.
- Jedno mjerilo vremena na liniji. Mjerni most stoji na putanji zvuka. Bilježi trenutak kada pozivaočeva fraza završi i trenutak kada stigne prvi zvuk agentovog odgovora. Vrijeme odgovora je taj interval. Obuhvata sve unutar jedinice, uključujući pauzu za kraj replike i prijenos zvuka.
- Koraci. Opterećenje raste u koracima od jednog razgovora do 176% nazivnog kapaciteta. Svaki korak se dva minuta stabilizira, a zatim se 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 polovina nije sporija od prve), neuspjele replike, ispravnost mjernog mosta, preklapanje govora, usklađenost događaja mosta sa agentovim logom, izgubljena telemetrija, odbijanje poziva i ograničenja resursa.
- Dva režima. Agenta smo mjerili u standardnom režimu i s ranim startom, u kojem jezički model počinje s prepoznatim tekstom prije nego što je replika formalno zatvorena.
Šta se desilo
Pojasevi opterećenja
Ocjene opisuju kako odgovor doživljava pozivalac. Svaka ocjena završava na indeksu vremena odgovora.
| Pojas opterećenja | Opterećenje, % nazivnog kapaciteta | Ocjena odgovora | Indeks do | Šta pozivalac 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 pauza; ovaj pojas završava na nazivnom kapacitetu |
| Vrhunac | 100–137 | Minimum | 2,71 | Primjetna pauza, i dalje razgovor |
| Nalet | 137–176 | Stretch | — | Duža pauza, a svi pozivi su i dalje povezani |
Uz rani start svaki pojas se proteže dalje: Platinum do oko 57% nazivnog kapaciteta, Gold do oko 78%, Standard do oko 117%. Rani start smo mjerili do 128% nazivnog kapaciteta.
Nazivni kapacitet je ispunjen
Na 100 istovremenih poziva prosječno vrijeme odgovora je oko dvostruko veće od vrijednosti za jedan poziv (indeks 2,02), a odgovori ostaju u ocjeni Standard. Uz rani start jedinica drži Standard do oko 117% nazivnog kapaciteta.
| Opterećenje, % nazivnog kapaciteta | Indeks odgovora | Uz rani start | 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 vrijeme odgovora raste 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 na krivulji nema prijeloma na kojem bi se okrenula naviše. Klijent koji radi 20% iznad nazivnog kapaciteta dobija mjerljivo dužu pauzu, ali na sistemu koji i dalje radi.
Rep ostaje u razmjeri
Medijan odgovora i odgovor na 95. percentilu zadržavaju isti omjer na svakom koraku, od jednog poziva do 176%:
Odgovor na 95. percentilu iznosi oko 1,6 do 1,7 puta medijan na svakom koraku opterećenja.
Spori odgovori rastu zajedno s ostalima, pa klijent koji zna uobičajenu pauzu može procijeniti i najgoru.
Propusnost se drži
Broj odgovora u sekundi raste s opterećenjem, vrhunac dostiže 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 medijski tok
- Odgovorene replike. Više od 99% replika pozivalaca dobilo je odgovor na svakom koraku.
- Medijski tok. Mjerna linija nije izgubila nijedan RTP paket ni na jednom koraku.
- Prihvat poziva. Na 176% nazivnog kapaciteta istovremeno je bilo uspostavljeno 352 SIP poziva. Svi su se povezali i nijedan nije prekinut.
- Modeli. Red jezičkog modela i red sinteze govora ostali su prazni na svakom koraku.
Prvi i drugi krug
Proveli smo test, optimizirali sistem za visoko opterećenje i ponovo proveli test. Optimizacija je obuhvatila putanju medija, način na koji se detekcija glasa raspoređuje među pozivima, obradu tišine u sintetiziranom govoru i trenutak u kojem se pokreće jezički 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 | polazna vrijednost | 22% manje |
| Vrijeme odgovora na pola nazivnog kapaciteta | polazna vrijednost | 34% manje |
| Vršna propusnost | polazna vrijednost | gotovo dvostruko |
Drugi krug je dostigao nazivnih 100 poziva, pa je broj u tehničkom listu izmjeren. Stranica Tehnologije pokazuje gdje se test opterećenja nalazi u sistemu. U tekstu Voicecore (na engleskom) opisujemo sljedeći korak u obradi zvuka: jezgro napisano u Rustu.
Postavka testa
Izmjereno preko G.711 na telefonskoj testnoj liniji, s dvadeset simuliranih pozivalaca i agentom za zapošljavanje; 94% prvih fraza dolazilo je iz glasovnog keša.