Joalo ka
Ka letsatsi le leng ke ile ka tsoha ke fumana lengolo-tsoibila le sa khotsofalang ka lebaka la ho lieha nako e telele le Alvin, eo re neng re rerile ho e qala haufinyane. Haholo-holo, moreki o bile le 99th percentile latency sebakeng sa 50 ms, ka holimo ho tekanyetso ea rona ea latency. Sena se ne se makatsa ha ke ntse ke leka tšebeletso haholo, haholo-holo ka latency, e leng tletlebo e tloaelehileng.
Pele ke kenya Alvin tekong, ke ile ka etsa liteko tse ngata ka lipotso tsa 40k motsotsoana (QPS), kaofela li bontša latency e ka tlase ho 10ms. Ke ne ke itokiselitse ho bolela hore ha ke lumellane le liphello tsa bona. Empa ha ke sheba lengolo le leng, ke ile ka hlokomela ntho e ncha: Ke ne ke sa lekoa hantle maemo ao ba a buileng, QPS ea bona e ne e le tlase haholo ho feta ea ka. Ke lekile ho 40k QPS, empa ke 1k feela. Ke ile ka etsa teko e 'ngoe, lekhetlong lena ka QPS e tlase, ho ba khahlisa.
Kaha ke blogga ka sena, mohlomong u se u hlokometse hore linomoro tsa bona li ne li nepahetse. Ke lekile moreki oa ka oa nnete khafetsa, ka sephetho se ts'oanang: palo e tlase ea likopo ha e eketse feela latency, empa e eketsa palo ea likopo ka latency e fetang 10 ms. Ka mantsoe a mang, haeba ho 40k QPS hoo e ka bang likopo tse 50 motsotsoana li feta 50 ms, joale ho 1k QPS ho ne ho e-na le likōpo tse 100 ka holimo ho 50 ms motsotsoana o mong le o mong. Ho makatsa!
Ho fokotsa ho batla
Ha u tobane le bothata ba latency tsamaisong e ajoang e nang le likarolo tse ngata, mohato oa pele ke ho etsa lethathamo le lekhutšoanyane la babelaelloa. Ha re cheke ka botebo boqapi ba Alvin:
Sebaka se setle sa ho qala ke lethathamo la liphetoho tsa I/O tse phethiloeng (li-call tsa marang-rang / li-disk lookups, joalo-joalo). Ha re leke ho fumana hore na tieho e hokae. Ntle le I / O e hlakileng le moreki, Alvin o nka mohato o eketsehileng: o kena lebenkeleng la data. Leha ho le joalo, polokelo ena e sebetsa ka har'a sehlopha se tšoanang le sa Alvin, kahoo latency e lokela ho ba tlase ho feta ea moreki. Kahoo, lethathamo la babelaelloa:
- Mohala oa marang-rang o tsoang ho moreki ho ea ho Alvin.
- Mohala oa marang-rang o tsoang ho Alvin ho ea lebenkeleng la data.
- Batla ka disk polokelong ea data.
- Ho letsetsa marang-rang ho tsoa polokelong ea data ho ea ho Alvin.
- Mohala oa marang-rang o tsoang ho Alvin o ea ho moreki.
Ha re leke ho hlakisa lintlha tse ling.
Polokelo ea data ha e amane le eona
Ntho ea pele eo ke e entseng ke ho fetolela Alvin ho seva sa ping-ping se sa sebetseng likopo. Ha e fumana kopo, e khutlisa karabo e se nang letho. Haeba latency e fokotseha, joale phoso ho Alvin kapa ts'ebetsong ea polokelo ea data ha ho letho le sa utloahaleng. Tekong ea pele re fumana kerafo e latelang:
Joalokaha u ka bona, ha ho na ntlafatso ha u sebelisa seva sa ping-ping. Sena se bolela hore polokelo ea data ha e eketse latency, mme lenane la babelaelloa le khaoloa ka halofo:
- Mohala oa marang-rang o tsoang ho moreki ho ea ho Alvin.
- Mohala oa marang-rang o tsoang ho Alvin o ea ho moreki.
E kholo! Lenane le ntse le fokotseha ka potlako. Ke ne ke nahana hore ke batlile ke utloisisa lebaka.
GRPC
Joale ke nako ea ho u tsebisa sebapali se secha: gRPC
e ntlafalitsoe hantle ebile e sebelisoa haholo, lena e ne e le lekhetlo la ka la pele ke e sebelisa tsamaisong ea boholo bona mme ke ne ke lebelletse hore ts'ebetsong ea ka e tla ba ea bohlokoa - ho bua hanyane.
ho fumaneha gRPC
ka har'a stack e hlahisitse potso e ncha: mohlomong ke ts'ebetsong ea ka kapa 'na gRPC
ho baka bothata ba latency? Ho kenya 'melaelloa e mocha lenaneng:
- Moreki o letsetsa laeborari
gRPC
- laebrari
gRPC
etsa mohala oa netweke ho laeborari ho morekigRPC
ho seva - laebrari
gRPC
mabitso Alvin (ha ho na ts'ebetso haeba ho na le seva sa ping-pong)
Ho u fa leseli la hore na khoutu e shebahala joang, ts'ebetsong ea moreki oa ka / Alvin ha e fapane hole le li-server-server.
Ela hloko: Lenane le ka holimo le nolofalitsoe hanyane hobane
gRPC
e etsa hore ho khonehe ho sebelisa mohlala oa hau (thempleite?) oa khoele, oo ho oona mokoloko oa ho bolaoa o kopantsoeng.gRPC
le ts'ebetsong ea basebelisi. Molemong oa ho nolofatsa, re tla khomarela mohlala ona.
Ho etsa profil ho tla lokisa tsohle
Ha ke se ke tlohile mabenkele a data, ke ile ka nahana hore ke se ke qetile: "Joale ho bonolo! Ha re sebeliseng profil 'me re fumane hore na tieho e etsahala hokae. ” I
Ke ile ka nka litlaleho tse 'nè: ka QPS e phahameng (low latency) le seva sa ping-pong se nang le QPS e tlaase (high latency), ka bobeli ka lehlakoreng la bareki le ka lehlakoreng la seva. Mme ha ho ka etsahala, ke boetse ke nkile mohlala oa profil ea processor. Ha ke bapisa li-profile, hangata ke batla mehala e makatsang. Ka mohlala, ka lehlakoreng le lebe le nang le latency e phahameng ho na le liphetoho tse ling tse ngata tsa moelelo (makhetlo a 10 kapa ho feta). Empa molemong oa ka, palo ea li-switches tsa maemo e ne e batla e tšoana. Ke ile ka tšoha, ho ne ho se letho la bohlokoa moo.
Tlatsetso Debugging
Ke ne ke tsielehile. Ke ne ke sa tsebe hore na ke lisebelisoa life tse ling tseo nka li sebelisang, 'me morero oa ka o latelang e ne e le ho pheta liteko ka mefuta e fapaneng ho e-na le ho hlahloba bothata ka ho hlaka.
Haeba
Ho tloha qalong, ke ne ke amehile ka 50ms latency e itseng. Ena ke nako e kholo haholo. Ke ile ka etsa qeto ea hore ke tla khaola likaroloana tsa khoutu ho fihlela ke tseba hantle hore na ke karolo efe e bakang phoso ena. Eaba ho latela teko e ileng ea sebetsa.
Joalo ka tloaelo, ho bonahala eka ntho e 'ngoe le e 'ngoe e ne e hlakile. Ke behile moreki mochining o tšoanang le oa Alvin - mme ka romella kopo ho localhost
. 'Me keketseho ea latency e felile!
Ho bile le phoso ka marang-rang.
Ho ithuta bokhoni ba moenjiniere oa marang-rang
Ke tlameha ho lumela: tsebo ea ka ea theknoloji ea marang-rang e tšabeha, haholo-holo ha ke nahana ka taba ea hore ke sebetsa le bona letsatsi le leng le le leng. Empa marang-rang e ne e le 'melaelloa ea ka sehloohong,' me ke ne ke hloka ho ithuta ho e lokisa.
Ka lehlohonolo, Marang-rang a rata ba batlang ho ithuta. Motsoako oa ping le tracert o ne o bonahala e le qalo e ntle ea ho rarolla mathata a lipalangoang tsa marang-rang.
Ntlha ea pele, ke ile ka qala
Eaba ke leka
Kahoo e ne e se khoutu ea ka, ts'ebetsong ea gRPC, kapa marang-rang a neng a baka tieho. Ke ne ke qala ho tšoenyeha hore nke ke ka utloisisa taba ena.
Joale ke OS efe eo re leng ho eona
gRPC
e sebelisoa haholo Linux, empa e sa tloaelehang ho Windows. Ke ile ka etsa qeto ea ho leka teko, e ileng ea sebetsa: Ke thehile mochine o sebetsang oa Linux, ka bokella Alvin bakeng sa Linux, 'me ka e sebelisa.
'Me sena ke se etsahetseng: seva sa Linux ping-pong ha sea ka sa ba le tieho e tšoanang le ea moamoheli ea tšoanang oa Windows, leha mohloli oa data o ne o sa fapana. Hoa fumaneha hore bothata bo ts'ebetsong ea gRPC bakeng sa Windows.
Algorithm ea Nagle
Nakong ena eohle ke ne ke nahana hore ke lahleheloa ke folakha gRPC
. Joale kea utloisisa hore na ha e le hantle ke eng gRPC
Folakha ea Windows ha e eo. Ke fumane laebrari ea ka hare ea RPC eo ke neng ke kholisehile hore e tla sebetsa hantle bakeng sa lifolakha tsohle tse behiloeng
Hoo e ka bang E entsoe: Ke ile ka qala ho tlosa lifolakha tse ekelitsoeng ka bonngoe ho fihlela khatello e khutla e le hore nka supa sesosa. E ne e tumme hampe
gRPC
folakha ena e behiloe ts'ebetsong ea Linux bakeng sa li-sockets tsa TCP, empa eseng Windows. Ke sena
fihlela qeto e
The latency e phahameng ho QPS e tlase e bakiloe ke ntlafatso ea OS. Ha re hetla morao, profiling ha ea ka ea bona latency hobane e entsoe ka mokhoa oa kernel ho fapana le ka
Ha e le teko ea localhost, mohlomong ha ea ka ea ama khoutu ea nnete ea marang-rang mme algorithm ea Nagle ha ea ka ea sebetsa, kahoo litaba tsa latency li ile tsa fela ha moreki a fihla Alvin ka localhost.
Nakong e tlang ha u bona keketseho ea latency ha palo ea likopo motsotsoana e fokotseha, algorithm ea Nagle e lokela ho ba lethathamong la hau la babelaelloa!
Source: www.habr.com