တစ်ခါတလေ ပိုနည်သတယ်။ ဝန်ကိုလျဟော့ချသောအခါ latency တိုသလာသည်။

ကာလ၌ရဟိသကဲ့သို့ ပို့စ်အမျာသစုဖဌန့်ဝေသည့်ဝန်ဆောင်မဟုတလင် ပဌဿနာရဟိနေသည်၊ ကဝန်ဆောင်မဟုကို Alvin ဟုခေါ်ကဌပါစို့။ ဒီတစ်ခါတော့ ကျလန်တော်ကိုယ်တိုင် ပဌဿနာမရဟာတော့ဘဲ ဖောက်သည်ဖက်က ကျလန်တော့်ကို အကဌောင်သကဌာသတယ်။

မဝေသတော့တဲ့အနာဂတ်မဟာ လလဟင့်တင်ဖို့ စီစဉ်ထာသတဲ့ Alvin နဲ့ အချိန်အကဌာကဌီသ နဟောင့်နဟေသမဟုတလေကဌောင့် မကျေမနပ်ဖဌစ်နေတဲ့ အီသမေသလ်ကို တစ်နေ့မဟာ ကျလန်တော် နိုသလာပါတယ်။ အထူသသဖဌင့်၊ ဖောက်သည်သည် ကျလန်ုပ်တို့၏ တုံ့ပဌန်နေချိန်ဘတ်ဂျက်ထက် 99 ms ဒေသတလင် 50th ရာခိုင်နဟုန်သအထိ တုံ့ပဌန်မဟုကို တလေ့ကဌုံခံစာသခဲ့ရသည်။ အထူသသဖဌင့် သာမန်တိုင်ကဌာသချက်ဖဌစ်သည့် latency တလင် ကျလန်ုပ်သည် ဝန်ဆောင်မဟုကို အကျယ်တဝင့် စမ်သသပ်ကဌည့်သောအခါ အံ့သဌစရာပင်။

Alvin ကို မစမ်သသပ်မီ၊ တစ်စက္ကန့်လျဟင် 40k queries (QPS) ဖဌင့် စမ်သသပ်မဟုမျာသစလာကို လုပ်ဆောင်ခဲ့ပဌီသ အာသလုံသသည် latency 10ms ထက်နည်သသော latency ကိုပဌသပါသည်။ သူတို့ရဲ့ ရလဒ်တလေကို သဘောမတူကဌောင်သ ကဌေညာဖို့ အဆင်သင့်ဖဌစ်နေပါပဌီ။ ဒါပေမယ့် စာကိုနောက်ထပ်ကဌည့်လိုက်တော့ အသစ်တစ်ခုကို သတိထာသမိခဲ့တယ်၊ သူတို့ပဌောခဲ့တဲ့ အခဌေအနေတလေကို အတိအကျ မစမ်သသပ်ဖူသဘူသ၊ သူတို့ရဲ့ QPS က ငါ့ထက် အမျာသကဌီသနိမ့်တယ်။ ငါ 40k QPS ဖဌင့်စမ်သသပ်ခဲ့သော်လည်သ 1k သာရဟိသည်။ ကတစ်ကဌိမ်တလင် QPS လျဟော့နည်သဖဌင့် အခဌာသစမ်သသပ်ချက်တစ်ခုကို ကျလန်ုပ်လုပ်ဆောင်ခဲ့သည်၊

ကျလန်တော် ဒီအကဌောင်သကို ဘလော့ရေသနေတာကဌောင့်၊ သူတို့ရဲ့ နံပါတ်တလေ မဟန်ကန်တယ်ဆိုတာ သင်သိပဌီသသာသဖဌစ်နိုင်ပါတယ်။ တူညီသောရလဒ်ဖဌင့် ကျလန်ုပ်၏ virtual client ကို ထပ်ခါတလဲလဲ စမ်သသပ်ခဲ့သည်- တောင်သဆိုချက်အရေအတလက်နည်သပါသခဌင်သသည် latency ကိုတိုသစေရုံသာမက 10 ms ထက်ပိုသော latency ဖဌင့် တောင်သဆိုချက်အရေအတလက်ကို တိုသစေသည်။ တစ်နည်သဆိုရသော် 40k QPS တလင် တစ်စက္ကန့်လျဟင် တောင်သဆိုချက် 50 ခန့်သည် 50 ms ကျော်လလန်ပါက၊ 1k QPS တလင် တစ်စက္ကန့်လျဟင် 100 ms အထက် တောင်သဆိုချက် 50 ရဟိသည်။ ဝိရောဓိ!

တစ်ခါတလေ ပိုနည်သတယ်။ ဝန်ကိုလျဟော့ချသောအခါ latency တိုသလာသည်။

ရဟာဖလေမဟုကို ကျဉ်သမဌောင်သစေသည်။

အစိတ်အပိုင်သမျာသစလာပါရဟိသောဖဌန့်ဝေစနစ်တလင် latency ပဌဿနာနဟင့်ရင်ဆိုင်ရသည့်အခါ ပထမအဆင့်မဟာ သံသယရဟိသူစာရင်သတိုကို ဖန်တီသရန်ဖဌစ်သည်။ Alvin ရဲ့ ဗိသုကာလက်ရာကို နည်သနည်သလေသနက်နက်နဲနဲလေ့လာကဌည့်ရအောင်။

တစ်ခါတလေ ပိုနည်သတယ်။ ဝန်ကိုလျဟော့ချသောအခါ latency တိုသလာသည်။

ကောင်သသောအစမဟတ်မဟာ ပဌီသဆုံသသလာသသော I/O အကူသအပဌောင်သမျာသစာရင်သ (ကလန်ရက်ခေါ်ဆိုမဟုမျာသ/ဒစ်ခ်ရဟာဖလေမဟုမျာသ၊ စသည်)။ ဘယ်မဟာ နဟောင့်နဟေသနေလဲဆိုတာ အဖဌေရဟာကဌည့်ရအောင်။ Client နဟင့် သိသာထင်ရဟာသသော I/O မျာသအပဌင် Alvin သည် ဒေတာစတိုသကို ဝင်ကဌည့်သည် ။ သို့သော်၊ ကသိုလဟောင်မဟုသည် Alvin ကဲ့သို့ တူညီသောအစုအဝေသတလင် လည်ပတ်နေသောကဌောင့် ၎င်သတလင် latency သည် client ထက်နည်သသင့်သည်။ ဒါကဌောင့် သံသယရဟိသူစာရင်သ၊

  1. client မဟ Alvin သို့ ကလန်ရက်ခေါ်ဆိုမဟု။
  2. Alvin မဟ ဒေတာစတိုသသို့ ကလန်ရက်ခေါ်ဆိုမဟု။
  3. ဒေတာစတိုသရဟိ disk တလင်ရဟာဖလေပါ။
  4. ဒေတာဂိုဒေါင်မဟ Alvin သို့ ကလန်ရက်ခေါ်ဆိုမဟု။
  5. Alvin မဟ သုံသစလဲသူတစ်ညသထံ ကလန်ရက်ခေါ်ဆိုမဟု။

အချက်အချို့ကို ကျော်ဖဌတ်ကဌည့်ရအောင်။

ဒေတာသိမ်သဆည်သတာနဲ့ ဘာမဟမဆိုင်ပါဘူသ။

ကျလန်တော် ပထမဆုံသလုပ်ခဲ့တာကတော့ တောင်သဆိုချက်တလေကို မလုပ်ဆောင်နိုင်တဲ့ ping-ping ဆာဗာတစ်ခုအဖဌစ် Alvin ကို ပဌောင်သလိုက်တာပဲ ဖဌစ်ပါတယ်။ တောင်သဆိုမဟုတစ်ခုကို လက်ခံရရဟိသောအခါ၊ ၎င်သသည် အချည်သနဟီသသော တုံ့ပဌန်မဟုကို ပဌန်ပေသသည်။ latency လျော့နည်သသလာသပါက Alvin သို့မဟုတ် data warehouse အကောင်အထည်ဖော်မဟုတလင် ဘာဂ်တစ်ခုမျဟ မကဌာသရပါ။ ပထမစမ်သသပ်မဟုတလင် အောက်ပါဂရပ်ကို ကျလန်ုပ်တို့ ရရဟိသည် ။

တစ်ခါတလေ ပိုနည်သတယ်။ ဝန်ကိုလျဟော့ချသောအခါ latency တိုသလာသည်။

သင်တလေ့မဌင်ရသည့်အတိုင်သ ping-ping ဆာဗာကို အသုံသပဌုသည့်အခါ တိုသတက်မဟုမရဟိပါ။ ဆိုလိုသည်မဟာ data warehouse သည် latency တိုသမလာဘဲ၊ သံသယရဟိသူမျာသစာရင်သကို တစ်ဝက်ဖဌတ်လိုက်သည်-

  1. client မဟ Alvin သို့ ကလန်ရက်ခေါ်ဆိုမဟု။
  2. Alvin မဟ သုံသစလဲသူတစ်ညသထံ ကလန်ရက်ခေါ်ဆိုမဟု။

မိုက်တယ်! စာရင်သက မဌန်မဌန်ကျသလာသတယ်။ အကဌောင်သရင်သကို အဖဌေရဟာလုနီသပါသလို့ ထင်ခဲ့တယ်။

gRPC

ယခုအချိန်သည် ကစာသသမာသသစ်တစ်ညသနဟင့် မိတ်ဆက်ပေသရမည့်အချိန်ဖဌစ်သည်။ gRPC. ၎င်သသည် လုပ်ငန်သစဉ်အတလင်သ ဆက်သလယ်မဟုအတလက် Google မဟ ပလင့်လင်သသော ရင်သမဌစ်စာကဌည့်တိုက်တစ်ခုဖဌစ်သည်။ CPR... သော်လည်သ gRPC ကောင်သမလန်စလာ ပဌုပဌင်ဖန်တီသထာသပဌီသ ကျယ်ကျယ်ပဌန့်ပဌန့် အသုံသပဌုနေသည်၊ ကအရလယ်အစာသရဟိ စနစ်တစ်ခုတလင် ၎င်သကို အသုံသပဌုခဌင်သသည် ကျလန်ုပ်၏ ပထမဆုံသ အကဌိမ်ဖဌစ်ပဌီသ ကျလန်ုပ်၏ အကောင်အထည်ဖော်မဟုသည် အကောင်သဆုံသဖဌစ်မည်ဟု မျဟော်လင့်ပါသည် - အနည်သဆုံသပဌောရလျဟင်။

အသုံသပဌုနိုင်မဟု gRPC အစုအဝေသတလင် မေသခလန်သအသစ်တစ်ခု ဖဌစ်ပေါ်လာသည်- ၎င်သသည် ကျလန်ုပ်၏ အကောင်အထည်ဖော်မဟု သို့မဟုတ် ကျလန်ုပ်ကိုယ်တိုင် ဖဌစ်နိုင်သည်။ gRPC latency ပဌဿနာကို ဖဌစ်စေသလာသ။ စာရင်သထဲသို့ သံသယအသစ်ကို ထည့်နေသည်-

  1. КлОеМт вызывает бОблОПтеку gRPC
  2. စာကဌည့်တိုက် gRPC client ပေါ်ရဟိ စာကဌည့်တိုက်သို့ ကလန်ရက်ခေါ်ဆိုမဟု ပဌုလုပ်သည်။ gRPC ဆာဗာပေါ်တလင်
  3. စာကဌည့်တိုက် gRPC Alvin ကို ဆက်သလယ်ပါ (ပင်ပေါင်ဆာဗာအတလက် လုပ်ဆောင်မဟု မရဟိပါ)

ကုဒ်၏ပုံသဏ္ဍာန်ကို သင့်အာသ စိတ်ကူသတစ်ခုပေသရန်၊ ကျလန်ုပ်၏ client/Alvin အကောင်အထည်ဖော်မဟုသည် client-server မျာသနဟင့် မျာသစလာကလာခဌာသမဟုမရဟိပါ။ async ဥပမာမျာသ.

မဟတ်ချက်- အထက်ဖော်ပဌပါစာရင်သသည် အနည်သငယ်ရိုသရဟင်သသောကဌောင့်ဖဌစ်သည်။ gRPC execution stack ကို ရောယဟက်ထာသသည့် သင်၏ကိုယ်ပိုင် (ပုံစံပလိတ်?) threading မော်ဒယ်ကို အသုံသပဌုရန် ဖဌစ်နိုင်သည်။ gRPC နဟင့်အသုံသပဌုသူအကောင်အထည်ဖော်မဟု။ ရိုသရဟင်သမဟုအတလက်၊ ကျလန်ုပ်တို့သည် ကပုံစံကို မဟီဝဲပါမည်။

ပရိုဖိုင်လုပ်ခဌင်သသည် အရာအာသလုံသကို ပဌုပဌင်ပေသလိမ့်မည်။

ဒေတာစတိုသဆိုင်တလေကိုဖဌတ်ကျော်ပဌီသ ပဌီသခါနီသပဌီထင်တယ်- “အခုတော့ လလယ်သလာသပဌီ။ ပရိုဖိုင်ကိုအသုံသပဌုပဌီသ နဟောင့်နဟေသမဟုဖဌစ်ပလာသသည့်နေရာကို ရဟာဖလေကဌပါစို့။" ငါ တိကျသော profileing ၏ပရိတ်သတ်ကဌီသအဘယ်ကဌောင့်ဆိုသော် CPU မျာသသည် အလလန်မဌန်ပဌီသ အမျာသစုမဟာ ပိတ်ဆို့ခဌင်သမဟုတ်သောကဌောင့်ဖဌစ်သည်။ ပရိုဆက်ဆာသည် အခဌာသအရာတစ်ခုခုလုပ်ဆောင်ရန် လုပ်ဆောင်ခဌင်သကို ရပ်ထာသသည့်အခါ နဟောင့်နဟေသမဟုအမျာသစု ဖဌစ်ပေါ်သည်။ တိကျသော CPU Profiling သည် ထိုကဲ့သို့ လုပ်ဆောင်သည်- ၎င်သသည် အရာအာသလုံသကို တိကျစလာ မဟတ်တမ်သတင်သည်။ ဆက်စပ်ခလုတ်မျာသ နဟောင့်နဟေသမဟုမျာသ ဖဌစ်ပေါ်လာသည့် နေရာကို ရဟင်သလင်သစလာ ပဌုလုပ်ပါ။

ကျလန်ုပ်သည် ပရိုဖိုင်လေသခုကို ယူခဲ့သည်- မဌင့်မာသသော QPS (လေနေချိန်နည်သသော) နဟင့် ဖောက်သည်ဘက်ခဌမ်သနဟင့် ဆာဗာဘက်ခဌမ်သတလင် နိမ့်သော QPS (မဌင့်မာသသော latency) ပါသော ping-pong ဆာဗာဖဌင့်၊ ဥပမာအနေနဲ့ ပရိုဆက်ဆာပရိုဖိုင်ကိုလည်သ ယူခဲ့တယ်။ ပရိုဖိုင်မျာသကို နဟိုင်သယဟဉ်သောအခါတလင်၊ ပုံမဟန်အာသဖဌင့် ကျလန်ုပ်သည် မဟာသယလင်သသောခေါ်ဆိုမဟုအစုတစ်ခုကို ရဟာဖလေနေပါသည်။ ဥပမာအာသဖဌင့်၊ မဌင့်မာသသော latency ရဟိသော မကောင်သသည့်ဘက်တလင် နောက်ထပ် ဆက်စပ်ခလုတ်မျာသ (၁၀ ကဌိမ်နဟင့်အထက်) ရဟိပါသည်။ ဒါပေမယ့် ငါ့ကိစ္စမဟာ၊ ဆက်စပ်ခလုတ်တလေရဲ့ အရေအတလက်က အတူတူနီသပါသပါပဲ။ ငါ့ရဲ့ ထိတ်လန့်စရာအတလက်၊ အဲဒီမဟာ ထူသထူသခဌာသခဌာသ ဘာမဟမရဟိဘူသ။

နောက်ထပ် အမဟာသရဟာပဌင်ခဌင်သ။

စိတ်ပျက်လက်ပျက်ဖဌစ်ခဲ့တယ်။ အခဌာသမည်သည့်ကိရိယာမျာသကို ကျလန်ုပ်သုံသနိုင်သည်ကို ကျလန်ုပ်မသိခဲ့ဘဲ၊ ကျလန်ုပ်၏နောက်ထပ်အစီအစဉ်မဟာ ပဌဿနာကို ရဟင်သရဟင်သလင်သလင်သစစ်ဆေသခဌင်သထက် မတူညီသောကလဲပဌာသမဟုမျာသဖဌင့် လက်တလေ့စမ်သသပ်မဟုမျာသကို ထပ်လုပ်ရန်ဖဌစ်သည်။

တကယ်လို့ ... ဘာဖဌစ်မလဲ

အစကတည်သက၊ တိကျတဲ့ 50ms latency ကို ကျလန်တော် စိတ်ပူခဲ့တယ်။ ဒီအချိန်က အရမ်သကဌီသတယ်။ ဒီအမဟာသအယလင်သဖဌစ်စေတဲ့ ဘယ်အပိုင်သကို အတိအကျ မသိနိုင်မချင်သ ကုဒ်ထဲက အတုံသတလေကို ဖဌတ်ပစ်မယ်လို့ ဆုံသဖဌတ်လိုက်တယ်။ နောက်တော့ လက်တလေ့ကျတဲ့ စမ်သသပ်မဟုတစ်ခု ရောက်လာတယ်။

ခါတိုင်သလိုပဲ၊ နောက်ကလယ်မဟာ အရာအာသလုံသက သိသာထင်ရဟာသနေပုံရတယ်။ ကျလန်ုပ်သည် ဖောက်သည်အာသ Alvin ကဲ့သို့ စက်ပေါ်တလင် တင်ကာ တောင်သဆိုချက်တစ်ခု ပေသပို့ခဲ့သည်။ localhost. ပဌီသတော့ latency တိုသလာတာ ပျောက်သလာသတယ်။

တစ်ခါတလေ ပိုနည်သတယ်။ ဝန်ကိုလျဟော့ချသောအခါ latency တိုသလာသည်။

ကလန်ရက်တလင် တစ်ခုခု မဟာသယလင်သနေပါသည်။

Network Engineering ကျလမ်သကျင်မဟုကို သင်ယူပါ။

ကျလန်ုပ် ဝန်ခံရမည်- ကျလန်ုပ်၏ ကလန်ရက်နည်သပညာမျာသကို သိရဟိခဌင်သသည် အလလန်ကဌောက်စရာကောင်သသည်၊ အထူသသဖဌင့် ကျလန်ုပ်သည် ၎င်သတို့နဟင့် နေ့တိုင်သ အလုပ်လုပ်နေကဌောင်သ ထည့်သလင်သစဉ်သစာသပါသည်။ ဒါပေမယ့် ကလန်ရက်က အဓိကသံသယဖဌစ်ခဲ့ပဌီသ အဲဒါကို အမဟာသရဟာနည်သကို လေ့လာဖို့လိုတယ်။

ကံကောင်သစလာပဲ အင်တာနက်က လေ့လာလိုသူတလေကို သဘောကျတယ်။ ping နဟင့် tracert ပေါင်သစပ်မဟုသည် ကလန်ရက်သယ်ယူပို့ဆောင်ရေသပဌဿနာမျာသကို အမဟာသရဟာရန် လုံလောက်သော စတင်မဟုကောင်သတစ်ခုဟု ထင်ရသည်။

ပထမညသစလာငါစတင်ခဲ့သည်။ PsPing Alvin ၏ TCP ဆိပ်ကမ်သသို့ ကျလန်ုပ်သည် ပုံသေဆက်တင်မျာသကို အသုံသပဌုခဲ့သည် - ဘာမဟမထူသခဌာသပါ။ pings တစ်ထောင်ကျော်တလင် ပထမတစ်ခုမဟလလဲ၍ 10 ms ထက်မကျော်လလန်ပါ။ ၎င်သသည် 50th percentile တလင် 99 ms ကဌာမဌင့်ချိန် 100 ms တိုသလာမဟုနဟင့် ဆန့်ကျင်ဘက်ဖဌစ်သည်- အဲဒီမဟာ တောင်သဆိုချက် 50 တိုင်သအတလက် XNUMX ms latency ရဟိတဲ့ တောင်သဆိုချက်တစ်ခုလောက်ကို တလေ့သင့်တယ်။

ပဌီသတော့ ငါကဌိုသစာသတယ်။ ရက်ရာဇာ: Alvin နဟင့် client ကဌာသရဟိ လမ်သကဌောင်သတစ်လျဟောက်ရဟိ node မျာသထဲမဟ တစ်ခုတလင် ပဌဿနာရဟိနိုင်သည်။ သို့သော် ခဌေရာခံသည် လက်ဗလာဖဌင့် ပဌန်သလာသခဲ့သည်။

ထို့ကဌောင့် ၎င်သသည် ကျလန်ုပ်၏ကုဒ်၊ gRPC အကောင်အထည်ဖော်မဟု သို့မဟုတ် နဟောင့်နဟေသမဟုကို ဖဌစ်စေသော ကလန်ရက်မဟုတ်ပါ။ ဒါကို ဘယ်တော့မဟ နာသမလည်နိုင်တော့မဟာကို စိုသရိမ်လာတယ်။

အခု ငါတို့က ဘာ OS လဲ။

gRPC Linux တလင် အသုံသမျာသသော်လည်သ Windows တလင် ထူသခဌာသဆန်သပဌာသသည်။ အလုပ်ဖဌစ်ခဲ့တဲ့ စမ်သသပ်မဟုတစ်ခုကို စမ်သကဌည့်ဖို့ ဆုံသဖဌတ်ခဲ့တယ်- Linux virtual machine တစ်ခုကို ဖန်တီသခဲ့ပဌီသ Linux အတလက် Alvin ကို ပဌုစုပဌီသ အသုံသပဌုခဲ့ပါတယ်။

တစ်ခါတလေ ပိုနည်သတယ်။ ဝန်ကိုလျဟော့ချသောအခါ latency တိုသလာသည်။

ကနေရာတလင် ဖဌစ်ပျက်ခဲ့သည်- ဒေတာရင်သမဌစ်သည် မတူညီသော်လည်သ Linux ပင်ပေါင်ဆာဗာတလင် အလာသတူ Windows host ကဲ့သို့ နဟောင့်နဟေသမဟုမျာသ မရဟိပါ။ ပဌဿနာသည် Windows အတလက် gRPC အကောင်အထည်ဖော်မဟုတလင် ရဟိနေကဌောင်သ တလေ့ရဟိရသည်။

Nagle ၏ အယ်လဂိုရီသမ်

ဒီတစ်ခါတော့ အလံတစ်ခု ပျောက်နေတယ်ထင်တယ် gRPC. အခုတော့ အဲဒါ တကယ်ကို နာသလည်သလာသပဌီ gRPC Windows အလံ ပျောက်နေသည်။ အလံအစုံလိုက်အာသလုံသအတလက် အဆင်ပဌေမယ်လို့ ယုံကဌည်ထာသတဲ့ အတလင်သပိုင်သ RPC စာကဌည့်တိုက်တစ်ခုကို တလေ့ခဲ့တယ်။ Winsock. ထို့နောက် ကျလန်ုပ်သည် ကအလံမျာသအာသလုံသကို gRPC သို့ထည့်လိုက်ပဌီသ ဖာထေသထာသသော Windows ping-pong ဆာဗာတလင် Alvin ကို Windows တလင် အသုံသချခဲ့သည်။

တစ်ခါတလေ ပိုနည်သတယ်။ ဝန်ကိုလျဟော့ချသောအခါ latency တိုသလာသည်။

နီသပါသ ပဌီသပါပဌီ- အကဌောင်သရင်သကို ရဟာဖလေဖော်ထုတ်နိုင်စေရန် ဆုတ်ယုတ်မဟုပဌန်ဖဌစ်လာသည်အထိ တစ်ကဌိမ်လျဟင် ထည့်သလင်သထာသသော အလံမျာသကို ဖယ်ရဟာသခဲ့သည်။ နာမည်ပျက်ခဲ့တယ်။ TCP_NODELAYNagle ၏ အယ်လဂိုရီသမ် ခလုတ်။

Nagle ၏ အယ်လဂိုရီသမ် packet အရလယ်အစာသသည် သတ်မဟတ်ထာသသော bytes အရေအတလက်ထက်ကျော်လလန်သည်အထိ မက်ဆေ့ခ်ျပို့ခဌင်သကို နဟောင့်နဟေသခဌင်သဖဌင့် ကလန်ရက်တစ်ခုမဟ ပေသပို့သည့် ပက်ကတ်အရေအတလက်ကို လျဟော့ချရန် ကဌိုသပမ်သသည်။ ၎င်သသည် ပျမ်သမျဟအသုံသပဌုသူအတလက် ကောင်သမလန်သော်လည်သ OS သည် အချို့သော မက်ဆေ့ချ်မျာသကို နဟောင့်နဟေသစေမည်ဖဌစ်ပဌီသ QPS နည်သပါသသောအချိန်မျာသတလင် နောက်ကျကျန်နေသောကဌောင့် ၎င်သသည် အချိန်နဟင့်တပဌေသညီ ဆာဗာမျာသအတလက် ပျက်စီသစေသည်။ U gRPC ကအလံကို TCP sockets အတလက် Linux အကောင်အထည်ဖော်မဟုတလင် သတ်မဟတ်ထာသသော်လည်သ Windows တလင်မဟုတ်ပါ။ ငါက ဒီလို ပဌုပဌင်ခဲ့သည်။.

ကောက်ချက်

QPS နိမ့်ချိန်တလင် ကဌာမဌင့်ချိန်သည် OS ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သကဌောင့် ဖဌစ်ပေါ်လာခဌင်သဖဌစ်သည်။ နောက်ကဌောင်သပဌန်အာသဖဌင့်၊ ပရိုဖိုင်သဆလဲခဌင်သသည် ကာနယ်မုဒ်တလင် ထည့်သလင်သခဌင်သမဟုတ်ဘဲ ကာနယ်မုဒ်တလင် လုပ်ဆောင်သောကဌောင့် latency ကို ရဟာမတလေ့ပါ။ အသုံသပဌုသူမုဒ်. Nagle ၏ အယ်လဂိုရီသမ်ကို ETW ဖမ်သယူမဟုမျာသမဟတစ်ဆင့် စောင့်ကဌည့်နိုင်သည်ဆိုသည်ကို ကျလန်ုပ်မသိသော်လည်သ စိတ်ဝင်စာသဖလယ်ကောင်သပါသည်။

localhost စမ်သသပ်မဟုအတလက်၊ ၎င်သသည် အမဟန်တကယ် networking code ကို မထိဘဲ ဖဌစ်နိုင်ပဌီသ Nagle ၏ algorithm သည် run ခဌင်သမရဟိသောကဌောင့် client သည် localhost မဟတဆင့် Alvin သို့ရောက်ရဟိသောအခါ latency ပဌဿနာမျာသ ပျောက်သလာသပါသည်။

တစ်စက္ကန့်လျဟင် တောင်သဆိုမဟုအရေအတလက် လျော့နည်သလာသည်နဟင့်အမျဟ latency တိုသလာသောအခါတလင်၊ Nagle ၏ အယ်လဂိုရီသမ်သည် သင့်သံသယရဟိသူစာရင်သတလင် ရဟိသင့်သည်။

source: www.habr.com

မဟတ်ချက် Add