Het hinsightd HTTP-bediener bekendgestel met behulp van Linux io_uring-substelsel

'n Kompakte hinsightd HTTP-bediener is gepubliseer, opvallend vir die gebruik van die io_uring asynchrone I/O-koppelvlak wat in die Linux-kern voorsien word. Die bediener ondersteun die HTTP/1.1-protokol en is ontwerp vir lae hulpbronverbruik terwyl dit broodnodige funksionaliteit verskaf. Hinsightd ondersteun byvoorbeeld TLS, reverse proxying (rproxy), kas van dinamies gegenereerde inhoud in die plaaslike lêerstelsel, on-the-fly datakompressie, verbindinglose herbegin, verbinding van dinamiese versoekhanteerders met behulp van FastCGI en CGI meganismes. Die projekkode is in C-taal geskryf en onder die BSD-lisensie versprei.

Om die konfigurasie te verwerk, byvoegings te skryf en versoekhanteerders te skep, word die vermoë verskaf om die Lua-taal te gebruik, terwyl sulke hanteerders direk in die bedienerkonfigurasielêer gedefinieer kan word. In die vorm van inproppe word kenmerke soos die verandering van die aantekenformaat, die koppeling van individuele logs aan virtuele gashere, die definisie van 'n lasbalanseringstrategie, HTTP-verifikasie, URL-herskryf en geskeduleerde geskeduleerde werk (byvoorbeeld die opdatering van Let's Encrypt-sertifikate) geïmplementeer in die vorm van plugins.

Die bediener kom met 'n biblioteek vir die integrasie van hinsightd-funksionaliteit in u toepassings. Hinsightd bevat ook geïntegreerde funksionaliteit vir die stuur van HTTP-versoeke vanaf die opdragreël, byvoorbeeld, om 'n bladsy te laai, kan jy "hinsightd -d URL" hardloop. Die bediener is baie kompak en neem ongeveer 200KB saamgestel (100KB uitvoerbare en 100KB gedeelde biblioteek). Eksterne afhanklikhede sluit slegs libc, lua, liburing en zlib in, en opsioneel openssl/libressl en ffcall.

Planne vir verdere ontwikkeling sluit in die vermoë om saamgeperste lêers in die kas te stoor, sandbox-isolasie gebaseer op stelseloproepfiltrering en die gebruik van naamruimtes, bandwydtebestuur (verkeersvorming), multithreading, verbeterde fouthantering en definisie van virtuele gashere gebaseer op maskers.

Die resultate van sintetiese prestasietoetsing (sonder optimalisering in die konfigurasie soos dit is) deur die ab-nutsprogram wanneer 250 en 500 (tussen hakies) parallelle versoeke uitgevoer word ("ab -k -c 250 -n 10000 http://localhost/"):

  • hinsightd/0.9.17 - 63035.01 versoeke per sekonde (54984.63)
  • lighttpd/1.4.67 - 53693.29 versoeke per sekonde (1613.59)
  • Apache/2.4.54 - 37474.10 versoeke per sekonde (34305.55)
  • Caddy/2.6.2 - 35412.02 versoeke per sekonde (33995.57)
  • nginx/1.23.2 - 26673.64 versoeke per sekonde (26172.73)

Bron: opennet.ru

Voeg 'n opmerking