I etahi wa ka nui ake te iti. A, no te whakaiti i te kawenga, ka piki ake te roanga

Ka rite ki te nuinga o nga pou, he raru mo te ratonga tohatoha, me karanga tenei ratonga ko Alvin. I tenei wa kaore au i kite i te raru i a au ano, na nga taangata mai i te taha o te kiritaki i korero mai ki ahau.

I tetahi ra ka oho ake ahau ki tetahi imeera pouri na te roa o te whakaroa ki a Alvin, i whakamaherehia e matou ki te whakarewa i nga wa e heke mai nei. Otirā, i rongo te kiritaki i te 99 ōrau o te torohūtanga i roto i te rohe o te 50 ms, kei runga ake i ta maatau tahua tahua. He mea miharo tenei i te mea i whakamatauria e au te ratonga, ina koa mo te roa, he amuamu noa tenei.

I mua i taku whakamatautau i a Alvin, he maha nga whakamatautau i whakahaerehia e au me te 40k patai mo ia hekona (QPS), he iti iho i te 10ms. I reri ahau ki te whakapuaki kaore au i te whakaae ki o raatau hua. Engari ka titiro ano ahau ki te reta, ka kite ahau i tetahi mea hou: kaore au i tino whakamatauria nga tikanga i kiia e ratou, he iti ake to ratou QPS i taku. I whakamatau ahau i te 40k QPS, engari i te 1k anake. I whakahaerehia e ahau tetahi atu whakamatautau, i tenei wa he iti ake te QPS, hei whakamarie i a raatau.

I te mea kei te tuhi korero ahau mo tenei, kua mohio pea koe he tika o raatau nama. I whakamatauria e ahau taku kaihoko mariko i nga wa katoa, me te hua ano: ko te iti o nga tono kaore i te whakanui ake i te waahi, engari ka piki ake te maha o nga tono me te roanga o te neke atu i te 10 ms. I etahi atu kupu, ki te 40k QPS mo te 50 tono mo ia hekona neke atu i te 50 ms, na i te 1k QPS he 100 nga tono i runga ake i te 50 ms ia hekona. Paradox!

I etahi wa ka nui ake te iti. A, no te whakaiti i te kawenga, ka piki ake te roanga

Te whakaiti i te rapu

I te wa e pa ana ki te raru o te waatea i roto i te punaha tohatoha me te maha o nga waahanga, ko te mahi tuatahi ko te hanga rarangi poto o nga whakapae. Kia keri hohonu ake ki te hoahoanga a Alvin:

I etahi wa ka nui ake te iti. A, no te whakaiti i te kawenga, ka piki ake te roanga

Ko te timatanga pai ko te rarangi o nga whakawhitinga I/O kua oti (nga waea whatunga/titiro kōpae, me etahi atu). Kia ngana tatou ki te mohio kei hea te whakaroa. I tua atu i te I/O e kitea ana me te kiritaki, he mahi ano a Alvin: ka uru ia ki te toa raraunga. Heoi, ko tenei putunga e mahi ana i roto i te roopu rite ki a Alvin, no reira me iti ake te roanga i te taha o te kiritaki. Na, ko te rarangi o nga whakapae:

  1. Waea whatunga mai i te kiritaki ki a Alvin.
  2. Waea whatunga mai i a Alvin ki te toa raraunga.
  3. Rapua i runga i te kōpae i te toa raraunga.
  4. Waea whatunga mai i te whare putunga raraunga ki a Alvin.
  5. Waea whatunga mai i a Alvin ki tetahi kaihoko.

Me ngana ki te whakawhiti i etahi waahanga.

Ko te rokiroki raraunga kaore he mahi

Ko te mea tuatahi i mahia e au ko te huri i a Alvin ki te tūmau ping-ping karekau e tukatuka tono. Ka tae mai he tono, ka whakahokia he whakautu kore. Ki te heke iho te torohūtanga, karekau he hapa i roto i te Alvin, i te whare putunga raraunga ranei te whakatinanatanga. I te whakamatautau tuatahi ka whiwhi tatou i te kauwhata e whai ake nei:

I etahi wa ka nui ake te iti. A, no te whakaiti i te kawenga, ka piki ake te roanga

Ka kite koe, kaore he whakapai ake i te wa e whakamahi ana i te tūmau ping-ping. Ko te tikanga ko te whare putunga raraunga kaore e piki ake te roanga, ka tapahia te rarangi o nga whakapae kia haurua:

  1. Waea whatunga mai i te kiritaki ki a Alvin.
  2. Waea whatunga mai i a Alvin ki tetahi kaihoko.

Rawe! Kei te tere haere te rarangi. I whakaaro ahau kua tata kua mohio ahau ki te take.

gRPC

Ko te wa tenei ki te whakauru ki a koe ki tetahi kaitakaro hou: gRPC. He puna puna tuwhera tenei mai i a Google mo te whakawhitiwhiti korero Kotahi... Ahakoa gRPC he pai te arotau me te whakamahi whanui, koinei taku wa tuatahi ki te whakamahi i runga i tetahi punaha penei te rahi me te tumanako ka iti ake taku whakatinanatanga - he iti rawa te korero.

wātea gRPC i roto i te puranga i puta ake he patai hou: tera pea ko taku whakatinanatanga, ko au ranei gRPC he raruraru torohū? Te taapiri i tetahi whakapae hou ki te rarangi:

  1. Ka karanga te kiritaki ki te whare pukapuka gRPC
  2. whare pukapuka gRPC ka waea whatunga ki te whare pukapuka i runga i te kiritaki gRPC i runga i te tūmau
  3. whare pukapuka gRPC whakapā atu ki a Alvin (kaore he mahi mena he kaimau ping-pong)

Kia mohio koe he aha te ahua o te waehere, karekau he rerekee te whakatinanatanga o taku kaihoko/Alvin mai i nga mahi a te kiritaki-tūmau. tauira async.

Tuhipoka: Ko te rarangi i runga ake nei he ahua ngawari na te mea gRPC ka taea ki te whakamahi i to ake (tauira?) tauira miro, kei roto i te tuitui te puranga mahi gRPC me te whakatinanatanga kaiwhakamahi. Mo te ngawari, ka piri tatou ki tenei tauira.

Ka whakatikahia nga mea katoa e te whakaahua

I te whakawhiti i nga toa raraunga, i whakaaro ahau kua tata ahau ki te mahi: "Na he ngawari! Me tono tatou i te whaarangi ka kitea kei hea te whakaroa. I powhiriwhiri nui o te tohu tohu, no te mea he tino tere nga PTM me te nuinga o nga wa ehara i te mea ko te pounamu. Ko te nuinga o nga whakaroa ka puta ina mutu te tukatuka ki te mahi i tetahi atu mahi. Ko te Whakaaturanga PTM Tika e tika ana: ka tuhi tika i nga mea katoa huringa horopaki me te whakamarama i nga waahi ka puta nga whakaroa.

E wha nga korero i tangohia e au: he QPS teitei (he iti te roa) me te kaimau ping-pong me te QPS iti (te roanga teitei), i te taha o te kiritaki me te taha o te tūmau. A, i roto i te take, i tangohia ano e ahau he tauira tauira kōtaha pūtukatuka. Ina whakatairitehia nga korero, ka rapua e au he puranga waea rerekee. Hei tauira, i te taha kino me te roanga teitei he maha atu nga huringa horopaki (10 nga wa neke atu ranei). Engari ki taku take, he rite tonu te maha o nga huringa horopaki. Ki taku wehi, kaore he mea nui i reira.

Patuiro Atu

I pouri ahau. Kaore au i te mohio he aha etahi atu taputapu ka taea e au te whakamahi, a ko taku mahere e whai ake nei ko te whakahoki ano i nga whakamatautau me nga rereketanga rereke, kaua ki te tirotiro i te raru.

He aha mehemea

Mai i te timatanga, i awangawanga ahau mo te 50ms te roanga motuhake. He wa tino nui tenei. I whakatau ahau ka tapahia e ahau nga wahanga o te waehere kia mohio noa ahau ko tehea waahanga i puta ai tenei hapa. Na ka puta mai he whakamatautau i whai hua.

Pērā i ngā wā o mua, ki te titiro whakamuri te ahua kua kitea nga mea katoa. I whakanohoia e ahau te kaihoko ki runga i te miihini rite ki a Alvin - ka tukuna he tono ki localhost. A kua kore te pikinga o te torohūtanga!

I etahi wa ka nui ake te iti. A, no te whakaiti i te kawenga, ka piki ake te roanga

I he te whatunga.

Te ako i nga pukenga miihini whatunga

Me whakaae ahau: he tino whakamataku taku mohio ki nga hangarau whatunga, ina koa ki te mahi ki a raatau i ia ra. Engari ko te whatunga te tino whakapae, a me ako ahau me pehea te patuiro.

Waimarie, ka aroha te Ipurangi ki te hunga e hiahia ana ki te ako. Ko te huinga o te ping me te tracert te ahua he timatanga pai ki te patuiro i nga raru kawe waka whatunga.

Tuatahi, i whakarewahia e ahau PsPing ki te tauranga TCP a Alvin. I whakamahia e ahau nga tautuhinga taunoa - kaore he mea motuhake. Neke atu i te kotahi mano nga ping, karekau i neke ake i te 10 ms, haunga te mea tuatahi mo te whakamahana. He rereke tenei ki te pikinga ake o te torohūtanga o te 50 ms i te 99 ōrau: i reira, mo ia 100 tono, me kite tatou mo te tono kotahi me te 50 ms te roa.

Na ka whakamatau ahau tohu: He raruraru kei tetahi o nga pona i te huarahi i waenganui i a Alvin me te kiritaki. Engari ka hoki kau mai te kaiwhai.

Na ehara i taku waehere, i te whakatinanatanga o te gRPC, i te whatunga ranei i whakaroa. I timata ahau ki te awangawanga kei kore ahau e mohio ki tenei.

Inaianei he aha te OS kei runga tatou

gRPC e whakamahia nuitia ana i runga i te Linux, engari he mea kee ki Windows. I whakatau ahau ki te whakamatau i tetahi whakamatautau, i pai: I hanga e ahau he miihini mariko Linux, i whakahiatohia a Alvin mo Linux, ka tukuna.

I etahi wa ka nui ake te iti. A, no te whakaiti i te kawenga, ka piki ake te roanga

A koinei te mea i tupu: kaore i rite te roa o te tūmau ping-pong Linux ki tetahi kaihautu Windows rite, ahakoa he rereke te puna raraunga. Ka puta ko te raruraru kei roto i te whakatinanatanga gRPC mo Windows.

Ko te algorithm a Nagle

I enei wa katoa i whakaaro ahau kei te ngaro tetahi haki gRPC. Inaianei kua mohio ahau he aha tena gRPC Kei te ngaro te haki Windows. I kitea e ahau he whare pukapuka RPC o roto e whakapono ana ahau ka pai te mahi mo nga haki katoa Winsock. Katahi ka taapirihia e au enei haki katoa ki te gRPC ka tukuna a Alvin ki runga Windows, i roto i te tūmau ping-pong Windows kua papaki!

I etahi wa ka nui ake te iti. A, no te whakaiti i te kawenga, ka piki ake te roanga

Tata Kua oti: I timata ahau ki te tango takitahi i nga haki kua taapiri kia hoki mai ra ano te hokinga mai kia taea ai e au te tohu te take. He mea kino TCP_NODELAY, Ko te huringa algorithm a Nagle.

Ko te algorithm a Nagle ka ngana ki te whakaiti i te maha o nga paatete ka tukuna ma te kupenga ma te whakaroa i te tuku karere kia neke ake ra ano te rahi o te paatete ki etahi paita. Ahakoa he pai tenei mo te nuinga o nga kaiwhakamahi, he kino mo nga kaitoro-waahi na te mea ka whakaroa te OS i etahi o nga karere, ka heke te iti o te QPS. U gRPC i whakaturia tenei haki i roto i te whakatinanatanga Linux mo nga turanga TCP, engari kaore i Windows. Ko ahau tenei whakatika.

mutunga

Ko te teitei ake i te QPS iti na te arotautanga OS. Ki te titiro whakamuri, karekau i kitea e te whakaahuatanga te torohūtanga na te mea i mahia i roto i te aratau kernel kaua i roto aratau kaiwhakamahi. Kaore au i te mohio mena ka kitea te algorithm a Nagle na roto i nga hopu ETW, engari he mea whakamere.

Mo te whakamatautau localhost, kaore pea i pa ki te waehere whatunga tuuturu, kaore hoki i rere te algorithm a Nagle, no reira ka ngaro nga take o te waahi ka tae atu te kaihoko ki a Alvin ma te localhost.

I te wa e whai ake nei ka kite koe i te pikinga o te roanga i te mea ka heke te maha o nga tono mo ia hēkona, me noho te algorithm a Nagle ki to rarangi o nga whakapae!

Source: will.com

Tāpiri i te kōrero