Linux io_uring సబ్‌సిస్టమ్‌ని ఉపయోగించి hinsightd HTTP సర్వర్‌ని పరిచయం చేసింది

ఒక కాంపాక్ట్ HTTP సర్వర్, hinsightd, ప్రచురించబడింది, ఇది Linux కెర్నల్‌లో అందించబడిన io_uring అసమకాలిక I/O ఇంటర్‌ఫేస్‌ని ఉపయోగించడం ద్వారా గుర్తించదగినది. సర్వర్ HTTP/1.1 ప్రోటోకాల్‌కు మద్దతు ఇస్తుంది మరియు డిమాండ్‌లో కార్యాచరణను అందించేటప్పుడు తక్కువ వనరుల వినియోగం కోసం రూపొందించబడింది. ఉదాహరణకు, hinsightd TLS, రివర్స్ ప్రాక్సీయింగ్ (rproxy), స్థానిక ఫైల్ సిస్టమ్‌లో డైనమిక్‌గా ఉత్పత్తి చేయబడిన కంటెంట్‌ను కాషింగ్ చేయడం, ప్రసారం చేయబడిన డేటా యొక్క ఫ్లై కంప్రెషన్, స్థాపించబడిన కనెక్షన్‌లను విచ్ఛిన్నం చేయకుండా పునఃప్రారంభించడం, FastCGI మరియు CGI మెకానిజమ్‌లను ఉపయోగించి డైనమిక్ అభ్యర్థన హ్యాండ్లర్‌లను కనెక్ట్ చేయడం వంటి వాటికి మద్దతు ఇస్తుంది. ప్రాజెక్ట్ కోడ్ C లో వ్రాయబడింది మరియు BSD లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.

కాన్ఫిగరేషన్‌ను ప్రాసెస్ చేయడానికి, జోడింపులను వ్రాయడానికి మరియు అభ్యర్థన హ్యాండ్లర్‌లను సృష్టించడానికి, లువా భాషను ఉపయోగించడం సాధ్యమవుతుంది మరియు అటువంటి హ్యాండ్లర్‌లను నేరుగా సర్వర్ కాన్ఫిగరేషన్ ఫైల్‌లో నిర్వచించవచ్చు. ప్లగిన్‌ల రూపంలో, లాగ్ రికార్డింగ్ ఆకృతిని మార్చడం, వ్యక్తిగత లాగ్‌లను వర్చువల్ హోస్ట్‌లకు లింక్ చేయడం, లోడ్ బ్యాలెన్సింగ్ స్ట్రాటజీని నిర్వచించడం, HTTP ప్రమాణీకరణ, URL తిరిగి వ్రాయడం మరియు షెడ్యూల్ చేసిన పనిని చేయడం (ఉదాహరణకు, లెట్స్ ఎన్‌క్రిప్ట్ సర్టిఫికేట్‌లను నవీకరించడం) వంటి ఫీచర్లు అమలు చేయబడతాయి.

సర్వర్ మీ అప్లికేషన్‌లలో హిన్‌సైట్డ్ ఫంక్షనాలిటీని ఇంటిగ్రేట్ చేయడానికి లైబ్రరీతో వస్తుంది. Hinsightd కమాండ్ లైన్ నుండి HTTP అభ్యర్థనలను పంపడానికి ఇంటిగ్రేటెడ్ కార్యాచరణను కూడా కలిగి ఉంటుంది, ఉదాహరణకు, మీరు పేజీని లోడ్ చేయడానికి "hinsightd -d URL" ఆదేశాన్ని అమలు చేయవచ్చు. సర్వర్ చాలా కాంపాక్ట్ మరియు కంపైల్డ్ రూపంలో సుమారు 200KB తీసుకుంటుంది (100KB ఎక్జిక్యూటబుల్ ఫైల్ మరియు 100KB షేర్డ్ లైబ్రరీ). బాహ్య డిపెండెన్సీలలో libc, lua, liburing మరియు zlib మరియు ఐచ్ఛికంగా openssl/libressl మరియు ffcall మాత్రమే ఉంటాయి.

మరింత అభివృద్ధి కోసం ప్రణాళికలు కంప్రెస్డ్ ఫైల్‌లను కాష్ చేయగల సామర్థ్యం, ​​ఫిల్టరింగ్ సిస్టమ్ కాల్‌ల ఆధారంగా శాండ్‌బాక్స్ ఐసోలేషన్ మరియు నేమ్‌స్పేస్‌లను ఉపయోగించడం, ట్రాఫిక్ షేపింగ్, మల్టీ-థ్రెడింగ్, మెరుగైన ఎర్రర్ హ్యాండ్లింగ్ మరియు మాస్క్-ఆధారిత వర్చువల్ హోస్ట్ డిటెక్షన్.

250 మరియు 500 (కుండలీకరణాల్లో) సమాంతర అభ్యర్థనలను (“ab -k -c 250 -n 10000 http://localhost/”) అమలు చేస్తున్నప్పుడు ab యుటిలిటీతో సింథటిక్ పనితీరు పరీక్ష ఫలితాలు (కాన్ఫిగరేషన్‌లో ఆప్టిమైజేషన్‌లు లేకుండా)

  • hinsightd/0.9.17 – సెకనుకు 63035.01 అభ్యర్థనలు (54984.63)
  • lighttpd/1.4.67 - సెకనుకు 53693.29 అభ్యర్థనలు (1613.59)
  • అపాచీ/2.4.54 - సెకనుకు 37474.10 అభ్యర్థనలు (34305.55)
  • కేడీ/2.6.2 – సెకనుకు 35412.02 అభ్యర్థనలు (33995.57)
  • nginx/1.23.2 - సెకనుకు 26673.64 అభ్యర్థనలు (26172.73)

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి