Bi ninu
Ni ọjọ kan Mo ji si imeeli aibalẹ nitori awọn idaduro pipẹ pẹlu Alvin, eyiti a gbero lati ṣe ifilọlẹ ni ọjọ iwaju nitosi. Ni pataki, alabara ni iriri airi ipin ogorun 99th ni agbegbe 50 ms, daradara ju isuna airi wa lọ. Eyi jẹ iyalẹnu bi Mo ṣe idanwo iṣẹ naa lọpọlọpọ, paapaa lori lairi, eyiti o jẹ ẹdun ti o wọpọ.
Ṣaaju ki Mo to fi Alvin sinu idanwo, Mo ran ọpọlọpọ awọn adanwo pẹlu awọn ibeere 40k fun iṣẹju keji (QPS), gbogbo n ṣafihan lairi ti o kere ju 10ms. Mo ti ṣetan lati kede pe Emi ko gba pẹlu awọn abajade wọn. Ṣugbọn ni wiwo miiran ni lẹta naa, Mo ṣe akiyesi nkan tuntun: Emi ko ṣe idanwo awọn ipo gangan ti wọn mẹnuba, QPS wọn kere pupọ ju temi lọ. Mo ṣe idanwo ni 40k QPS, ṣugbọn wọn nikan ni 1k. Mo tun ṣe idanwo miiran, ni akoko yii pẹlu QPS kekere kan, lati tù wọn loju.
Niwọn igba ti Mo n ṣe bulọọgi nipa eyi, o ti rii tẹlẹ pe awọn nọmba wọn tọ. Mo ṣe idanwo alabara foju mi leralera, pẹlu abajade kanna: nọmba kekere ti awọn ibeere kii ṣe alekun lairi nikan, ṣugbọn mu nọmba awọn ibeere pọ si pẹlu airi ti o ju 10 ms. Ni awọn ọrọ miiran, ti o ba jẹ ni 40k QPS nipa awọn ibeere 50 fun iṣẹju keji ti kọja 50 ms, lẹhinna ni 1k QPS awọn ibeere 100 wa loke 50 ms ni iṣẹju-aaya kọọkan. Paradox!
Din awọn wiwa
Nigbati o ba dojuko iṣoro lairi ni eto pinpin pẹlu ọpọlọpọ awọn paati, igbesẹ akọkọ ni lati ṣẹda atokọ kukuru ti awọn ifura. Jẹ ki a jinlẹ diẹ si inu faaji Alvin:
Ibẹrẹ ti o dara jẹ atokọ ti awọn iyipada I/O ti pari (awọn ipe nẹtiwọọki / wiwa disk, ati bẹbẹ lọ). Jẹ ki a gbiyanju lati ro ero ibi ti idaduro naa wa. Yato si I/O ti o han gbangba pẹlu alabara, Alvin ṣe igbesẹ afikun: o wọle si ile itaja data naa. Sibẹsibẹ, ibi ipamọ yii n ṣiṣẹ ni iṣupọ kanna bi Alvin, nitorinaa lairi nibẹ yẹ ki o kere ju pẹlu alabara. Nitorinaa, atokọ ti awọn ifura:
- Ipe nẹtiwọki lati ọdọ alabara si Alvin.
- Ipe nẹtiwọki lati Alvin si ile itaja data.
- Wa lori disk ni ile itaja data.
- Ipe nẹtiwọki lati ibi ipamọ data si Alvin.
- Ipe nẹtiwọki lati ọdọ Alvin si alabara kan.
Jẹ ká gbiyanju lati sọdá jade diẹ ninu awọn ojuami.
Ibi ipamọ data ko ni nkankan lati ṣe pẹlu rẹ
Ohun akọkọ ti Mo ṣe ni iyipada Alvin si olupin ping-ping ti ko ṣe ilana awọn ibeere. Nigbati o ba gba ibeere kan, o da esi sofo pada. Ti idaduro ba dinku, lẹhinna kokoro kan ninu Alvin tabi imuse ile-itaja data kii ṣe nkan ti a ko gbọ. Ninu idanwo akọkọ a gba aworan atẹle:
Bi o ti le rii, ko si ilọsiwaju nigba lilo olupin ping-ping. Eyi tumọ si pe ile-itaja data ko ni alekun lairi, ati pe atokọ ti awọn ifura ti ge ni idaji:
- Ipe nẹtiwọki lati ọdọ alabara si Alvin.
- Ipe nẹtiwọki lati ọdọ Alvin si alabara kan.
Nla! Awọn akojọ ti wa ni sunki ni kiakia. Mo ro pe mo ti fẹrẹ mọ idi naa.
gRPC
Bayi ni akoko lati ṣafihan ọ si ẹrọ orin tuntun kan: gRPC
iṣapeye daradara ati lilo pupọ, eyi ni igba akọkọ mi ni lilo lori eto ti iwọn yii ati pe Mo nireti imuse mi lati jẹ suboptimal - lati sọ o kere ju.
Wiwa gRPC
ninu akopọ naa funni ni ibeere tuntun: boya o jẹ imuse mi tabi funrararẹ gRPC
nfa iṣoro lairi? Ṣafikun ifura tuntun si atokọ:
- Onibara pe ile-ikawe
gRPC
- ìkàwé
gRPC
ṣe ipe nẹtiwọki kan si ile-ikawe lori alabaragRPC
lori olupin - ìkàwé
gRPC
awọn olubasọrọ Alvin (ko si iṣẹ ni ọran ti olupin ping-pong)
Lati fun ọ ni imọran kini koodu naa dabi, alabara mi / imuse Alvin ko yatọ pupọ si awọn olupin-olupin
Akiyesi: Akojọ ti o wa loke jẹ irọrun diẹ nitori
gRPC
mu ki o ṣee ṣe lati lo ti ara rẹ (awoṣe?) Titẹ awoṣe, ninu eyiti akopọ ipaniyan ti wa ni intertwinedgRPC
ati imuse olumulo. Fun idi ti ayedero, a yoo Stick si awoṣe yii.
Profaili yoo ṣatunṣe ohun gbogbo
Lẹhin ti o ti kọja awọn ile itaja data, Mo ro pe Mo ti fẹrẹ ṣe: “Bayi o rọrun! Jẹ ki a lo profaili naa ki o wa ibiti idaduro naa ti waye. ” I
Mo mu awọn profaili mẹrin: pẹlu QPS giga (lairi kekere) ati pẹlu olupin ping-pong pẹlu QPS kekere (lairi giga), mejeeji ni ẹgbẹ alabara ati ni ẹgbẹ olupin. Ati pe ni ọran, Mo tun mu profaili ero isise apẹẹrẹ kan. Nigbati a ba ṣe afiwe awọn profaili, Mo maa n wa akopọ ipe ailorukọ kan. Fun apẹẹrẹ, ni ẹgbẹ buburu pẹlu lairi giga ọpọlọpọ awọn iyipada ọrọ-ọrọ diẹ sii (awọn akoko 10 tabi diẹ sii). Ṣugbọn ninu ọran mi, nọmba awọn iyipada ọrọ-ọrọ jẹ fere kanna. Si ẹru mi, ko si nkankan pataki nibẹ.
Afikun N ṣatunṣe aṣiṣe
Mo ti wà desperate. Emi ko mọ kini awọn irinṣẹ miiran ti MO le lo, ati pe ero atẹle mi jẹ pataki lati tun awọn idanwo naa ṣe pẹlu awọn iyatọ oriṣiriṣi dipo ki o ṣe iwadii iṣoro naa kedere.
Boya ti
Lati ibere pepe, Mo ni aniyan nipa lairi 50ms pato. Eyi jẹ akoko nla pupọ. Mo pinnu pe Emi yoo ge awọn ege kuro ninu koodu naa titi Emi yoo fi rii gangan apakan wo ni o nfa aṣiṣe yii. Lẹhinna ṣe idanwo kan ti o ṣiṣẹ.
Gẹgẹbi igbagbogbo, ni ẹhin o dabi pe ohun gbogbo han gbangba. Mo ti gbe awọn ose lori kanna ẹrọ bi Alvin - ati ki o rán a ìbéèrè lati localhost
. Ati ilosoke ninu lairi ti lọ!
Ohun kan ti ko tọ pẹlu nẹtiwọki.
Awọn ọgbọn ẹlẹrọ nẹtiwọọki kikọ
Mo gbọdọ gba: imọ mi ti awọn imọ-ẹrọ nẹtiwọọki jẹ ẹru, paapaa ni akiyesi otitọ pe Mo ṣiṣẹ pẹlu wọn lojoojumọ. Ṣugbọn nẹtiwọọki naa jẹ ifura akọkọ, ati pe Mo nilo lati kọ bi a ṣe le ṣatunṣe rẹ.
Ni Oriire, Intanẹẹti nifẹ awọn ti o fẹ kọ ẹkọ. Apapo ping ati tracert dabi ẹnipe o dara to bẹrẹ lati ṣatunṣe awọn iṣoro irinna nẹtiwọọki.
Ni akọkọ, Mo ṣe ifilọlẹ
Nigbana ni mo gbiyanju
Nitorinaa kii ṣe koodu mi, imuse gRPC, tabi nẹtiwọọki ti o fa idaduro naa. Mo bẹrẹ lati ṣe aniyan pe Emi kii yoo loye eyi.
Bayi kini OS wa lori
gRPC
o gbajumo ni lilo lori Linux, ṣugbọn nla, on Windows. Mo pinnu lati gbiyanju idanwo kan, eyiti o ṣiṣẹ: Mo ṣẹda ẹrọ foju Linux kan, ṣajọ Alvin fun Linux, mo si gbe e lọ.
Ati pe eyi ni ohun ti o ṣẹlẹ: olupin ping-pong Linux ko ni awọn idaduro kanna bi ogun Windows kan ti o jọra, botilẹjẹpe orisun data ko yatọ. O han pe iṣoro naa wa ninu imuse gRPC fun Windows.
algorithm Nagle
Ni gbogbo akoko yii Mo ro pe Mo padanu asia kan gRPC
. Bayi Mo loye kini o jẹ gaan gRPC
Asia Windows sonu. Mo rii ile-ikawe RPC inu ti Mo ni igboya yoo ṣiṣẹ daradara fun gbogbo awọn asia ti a ṣeto
Fere Ti ṣe: Mo bẹrẹ yiyọ awọn asia ti a ṣafikun ni ẹẹkan titi ti ipadasẹhin yoo fi pada ki MO le ṣe afihan idi naa. O je ailokiki
gRPC
yi Flag ti a ṣeto ni Linux imuse fun TCP sockets, sugbon ko ni Windows. Emi ni eyi
ipari
Lairi ti o ga julọ ni QPS kekere jẹ idi nipasẹ iṣapeye OS. Ni ifojusọna, profaili ko ṣe awari idaduro nitori pe o ti ṣe ni ipo ekuro kuku ju sinu
Bi fun idanwo localhost, o ṣee ṣe ko fi ọwọ kan koodu Nẹtiwọọki gangan ati algorithm Nagle ko ṣiṣẹ, nitorinaa awọn ọran lairi lọ kuro nigbati alabara de Alvin nipasẹ localhost.
Nigbamii ti o ba rii ilosoke ninu lairi bi nọmba awọn ibeere fun iṣẹju keji dinku, algorithm Nagle yẹ ki o wa lori atokọ awọn ifura rẹ!
orisun: www.habr.com