Imeanzisha seva ya HTTP yenye muelekeo kwa kutumia mfumo mdogo wa Linux io_uring

Seva ya HTTP iliyoshikamana imechapishwa, inayojulikana kwa kutumia kiolesura cha io_uring kisicholingana cha I/O kilichotolewa katika kerneli ya Linux. Seva hutumia itifaki ya HTTP/1.1 na imeundwa kwa matumizi ya chini ya rasilimali huku ikitoa utendakazi unaohitajika sana. Kwa mfano, hinsightd inasaidia TLS, reverse proksiing (rproksi), akiba ya maudhui yanayozalishwa kwa nguvu katika mfumo wa faili wa ndani, ukandamizaji wa data ya on-the-fly, kuanzisha upya bila muunganisho, muunganisho wa vidhibiti vya ombi vinavyobadilika kwa kutumia mitambo ya FastCGI na CGI. Msimbo wa mradi umeandikwa kwa lugha C na kusambazwa chini ya leseni ya BSD.

Ili kuchakata usanidi, kuandika nyongeza na kuunda vidhibiti vya ombi, uwezo wa kutumia lugha ya Lua hutolewa, wakati washughulikiaji kama hao wanaweza kufafanuliwa moja kwa moja kwenye faili ya usanidi wa seva. Katika mfumo wa programu-jalizi, vipengele kama vile kubadilisha umbizo la ukataji miti, kuunganisha kumbukumbu za kibinafsi kwa seva pangishi pepe, kufafanua mkakati wa kusawazisha mzigo, uthibitishaji wa HTTP, kuandika upya URL, na kazi iliyoratibiwa (kwa mfano, kusasisha vyeti vya Hebu Tusimba kwa Fiche) hutekelezwa katika fomu ya programu-jalizi.

Seva inakuja na maktaba ya kuunganisha utendakazi wa mtazamo katika programu zako. Hinsightd pia inajumuisha utendaji jumuishi wa kutuma maombi ya HTTP kutoka kwa mstari wa amri, kwa mfano, kupakia ukurasa, unaweza kukimbia "hinsightd -d URL". Seva ni ndogo sana na inachukua takriban 200KB iliyokusanywa (100KB inayoweza kutekelezeka na maktaba ya pamoja ya KB 100). Vitegemezi vya nje ni pamoja na libc, lua, liburing na zlib pekee, na kwa hiari openssl/libressl na ffcall.

Mipango ya uendelezaji zaidi ni pamoja na uwezo wa kuhifadhi faili zilizobanwa kwenye akiba, kutenganisha kisanduku cha mchanga kulingana na uchujaji wa simu za mfumo na utumiaji wa nafasi za majina, udhibiti wa kipimo data (uundaji wa trafiki), usomaji mwingi, ushughulikiaji wa makosa ulioboreshwa na ufafanuzi wa wapangishi pepe kulingana na vinyago.

Matokeo ya majaribio ya utendakazi sintetiki (bila uboreshaji katika usanidi kama ulivyo) na matumizi ya ab wakati wa kutekeleza 250 na 500 (kwenye mabano) maombi sambamba ("ab -k -c 250 -n 10000 http://localhost/"):

  • hisightd/0.9.17 - 63035.01 maombi kwa sekunde (54984.63)
  • lighttpd/1.4.67 - 53693.29 maombi kwa sekunde (1613.59)
  • Apache/2.4.54 - maombi 37474.10 kwa sekunde (34305.55)
  • Maombi ya Caddy/2.6.2 - 35412.02 kwa sekunde (33995.57)
  • nginx/1.23.2 - maombi 26673.64 kwa sekunde (26172.73)

Chanzo: opennet.ru

Kuongeza maoni