Bemutatták a Linux io_uring alrendszert használó hinsightd HTTP szervert

Kiadtak egy kompakt hinsightd HTTP-kiszolgálót, amely a Linux kernelben biztosított io_uring aszinkron I/O interfészt használja. A szerver támogatja a HTTP/1.1 protokollt, és alacsony erőforrás-fogyasztásra tervezték, miközben biztosítja a nagyon szükséges funkciókat. Például a hinsightd támogatja a TLS-t, a fordított proxyt (rproxy), a dinamikusan generált tartalom gyorsítótárazását a helyi fájlrendszerben, az adattömörítést menet közben, a kapcsolat nélküli újraindítást, a dinamikus kéréskezelők csatlakoztatását FastCGI és CGI mechanizmusok segítségével. A projekt kódja C nyelven íródott, és a BSD licenc alatt kerül terjesztésre.

A konfiguráció feldolgozásához, kiegészítések írásához és kéréskezelők létrehozásához a Lua nyelv használatának lehetősége biztosított, míg az ilyen kezelők közvetlenül a szerver konfigurációs fájljában definiálhatók. Beépülő modulok formájában olyan funkciók valósulnak meg, mint a naplózási formátum megváltoztatása, az egyes naplók összekapcsolása virtuális gazdagépekkel, a terheléselosztási stratégia meghatározása, a HTTP hitelesítés, az URL-ek átírása és az ütemezett ütemezett munka (például a Let's Encrypt tanúsítványok frissítése). pluginok formájában.

A szerverhez tartozik egy könyvtár, amely lehetővé teszi, hogy az áttekinthető funkciókat integrálja az alkalmazásokba. A Hinsightd integrált funkciókat is tartalmaz a HTTP-kérések parancssorból történő küldéséhez, például egy oldal betöltéséhez futtassa a „hinsightd -d URL” parancsot. A szerver nagyon kompakt, és körülbelül 200 KB-ot vesz igénybe (100 KB végrehajtható és 100 KB megosztott könyvtár). A külső függőségek közé csak a libc, a lua, a liburing és a zlib tartozik, valamint opcionálisan az openssl/libressl és az ffcall.

A további fejlesztési tervek között szerepel a tömörített fájlok gyorsítótárban való tárolásának lehetősége, a rendszerhívás szűrésen és névterek használatán alapuló sandbox elkülönítés, a sávszélesség-kezelés (forgalom alakítás), a többszálú megoldás, a hibakezelés javítása és a virtuális gépek maszkokon alapuló meghatározása.

Az ab segédprogram szintetikus teljesítménytesztjének eredményei (a konfiguráció optimalizálása nélkül) 250 és 500 (zárójelben) párhuzamos kérések futtatásakor ("ab -k -c 250 -n 10000 http://localhost/"):

  • hinsightd/0.9.17 – 63035.01 kérés másodpercenként (54984.63)
  • lighttpd/1.4.67 – 53693.29 kérés másodpercenként (1613.59)
  • Apache/2.4.54 - 37474.10 kérés másodpercenként (34305.55)
  • Caddy/2.6.2 – 35412.02 kérés másodpercenként (33995.57)
  • nginx/1.23.2 – 26673.64 kérés másodpercenként (26172.73)

Forrás: opennet.ru

Hozzászólás