Linux io_uring စနစ်ခွဲကို အသုံးပြု၍ hinsightd HTTP ဆာဗာကို မိတ်ဆက်ခဲ့သည်။

Linux kernel တွင် ပံ့ပိုးထားသော io_uring asynchronous I/O အင်တာဖေ့စ်ကို အသုံးပြုခြင်းအတွက် သိသာထင်ရှားသော ကျစ်လစ်သိပ်သည်းသော HTTP ဆာဗာကို ထုတ်ဝေလိုက်ပါသည်။ ဆာဗာသည် HTTP/1.1 ပရိုတိုကောကို ပံ့ပိုးထားပြီး လိုအပ်သလောက် လုပ်ဆောင်နိုင်စွမ်းကို ပံ့ပိုးပေးနေစဉ် အရင်းအမြစ်သုံးစွဲမှု နည်းပါးရန်အတွက် ဒီဇိုင်းထုတ်ထားသည်။ ဥပမာအားဖြင့်၊ hinsightd သည် TLS ကို ပံ့ပိုးပေးသည်၊ ပြောင်းပြန် proxying (rproxy)၊ local file system တွင် ဒိုင်းနမစ်ထုတ်ထားသော အကြောင်းအရာများကို ကက်ရှ်လုပ်ခြင်း၊ ပို့လွှတ်ထားသော ဒေတာများကို တိုက်ရိုက်ချုံ့ခြင်း၊ သတ်မှတ်ထားသော ချိတ်ဆက်မှုများကို မချိုးဖျက်ဘဲ ပြန်လည်စတင်ခြင်း၊ FastCGI နှင့် CGI ယန္တရားများကို အသုံးပြု၍ dynamic တောင်းဆိုချက်ကိုင်တွယ်သူများကို ချိတ်ဆက်ခြင်း။ ပရောဂျက်ကုဒ်ကို C ဖြင့်ရေးသားထားပြီး BSD လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

ဖွဲ့စည်းမှုပုံစံကို လုပ်ဆောင်ရန်၊ အပိုများရေးပြီး တောင်းဆိုချက်ကိုင်တွယ်သူများကို ဖန်တီးရန်၊ ၎င်းသည် Lua ဘာသာစကားကို အသုံးပြုရန် ဖြစ်နိုင်ပြီး ထိုသို့သော ကိုင်တွယ်သူများကို ဆာဗာဖွဲ့စည်းပုံဖိုင်တွင် တိုက်ရိုက်သတ်မှတ်နိုင်သည်။ ပလပ်အင်ပုံစံတွင်၊ မှတ်တမ်းမှတ်တမ်းတင်ခြင်းဖော်မတ်ကိုပြောင်းလဲခြင်း၊ တစ်ဦးချင်းစီမှတ်တမ်းများကို virtual host များသို့ချိတ်ဆက်ခြင်း၊ load balancing strategy ကိုသတ်မှတ်ခြင်း၊ HTTP စစ်မှန်ကြောင်းအထောက်အထားပြခြင်း၊ URL ပြန်လည်ရေးသားခြင်းနှင့်အချိန်ဇယားဆွဲထားသောအလုပ်များလုပ်ဆောင်ခြင်း (ဥပမာ၊ Let's Encrypt လက်မှတ်များကိုမွမ်းမံခြင်း) ကဲ့သို့သောအင်္ဂါရပ်များကိုအကောင်အထည်ဖော်သည်။

ဆာဗာသည် သင့်အပလီကေးရှင်းများတွင် နက်နဲသောလုပ်ဆောင်နိုင်စွမ်းကို ပေါင်းစပ်ရန်အတွက် စာကြည့်တိုက်တစ်ခုပါရှိသည်။ Hinsightd သည် command line မှ HTTP တောင်းဆိုမှုများကို ပေးပို့ခြင်းအတွက် ပေါင်းစပ်လုပ်ဆောင်နိုင်စွမ်းလည်း ပါ၀င်သည်၊ ဥပမာ၊ သင်သည် စာမျက်နှာတစ်ခုဖွင့်ရန် "hinsightd -d URL" အမိန့်ကို သင် run နိုင်ပါသည်။ ဆာဗာသည် အလွန်ကျစ်လျစ်ပြီး စုစည်းထားသောပုံစံ (200KB ဖိုင်နှင့် 100KB မျှဝေထားသည့်စာကြည့်တိုက်) တွင် 100KB ခန့် နေရာယူပါသည်။ ပြင်ပမှီခိုမှုများတွင် libc၊ lua၊ liburing နှင့် zlib တို့နှင့်သာ ရွေးချယ်နိုင်ပြီး openssl/libressl နှင့် ffcall တို့ပါဝင်သည်။

ထပ်ဆင့်ဖွံ့ဖြိုးတိုးတက်မှုအစီအစဥ်များတွင် ချုံ့ထားသောဖိုင်များကို ကက်ရှ်လုပ်နိုင်စွမ်း၊ စနစ်ခေါ်ဆိုမှုများကို စစ်ထုတ်ခြင်းနှင့် namespaces များကိုအသုံးပြုခြင်း၊ အသွားအလာပုံသဏ္ဍာန်များအသုံးပြုခြင်း၊ လိုင်းပေါင်းစုံ၊ ပိုမိုကောင်းမွန်သော အမှားအယွင်းများကို ကိုင်တွယ်ခြင်းနှင့် မျက်နှာဖုံးအခြေပြု virtual host ထောက်လှမ်းခြင်းတို့ကို အခြေခံ၍ sandbox သီးခြားခွဲထားခြင်းတို့ ပါဝင်သည်။

250 နှင့် 500 (ကွင်းအတွင်း) အပြိုင်တောင်းဆိုမှုများ (“ab -k -c 250 -n 10000 http://localhost/”) ကို run သောအခါ ab utility ဖြင့် ပေါင်းစပ်စွမ်းဆောင်ရည်စမ်းသပ်ခြင်း၏ရလဒ်များ (“ab -k -c XNUMX -n XNUMX http://localhost/”)

  • hinsightd/0.9.17 – တစ်စက္ကန့်လျှင် တောင်းဆိုမှု 63035.01 (54984.63)
  • lighttpd/1.4.67 - 53693.29 တစ်စက္ကန့်လျှင် တောင်းဆိုမှုများ (1613.59)
  • Apache/2.4.54 - 37474.10 တောင်းဆိုမှု (34305.55) တစ်စက္ကန့်
  • Caddy/2.6.2 – တစ်စက္ကန့်လျှင် 35412.02 တောင်းဆိုမှု (33995.57)
  • nginx/1.23.2 - 26673.64 တစ်စက္ကန့်လျှင် တောင်းဆိုမှု (26172.73)

source: opennet.ru

မှတ်ချက် Add