Hinsightd HTTP zerbitzaria aurkeztu da Linux io_uring azpisistema erabiliz

HTTP zerbitzari trinko bat argitaratu da, Linux nukleoan emandako io_uring I/O interfaze asinkronoa erabiltzeagatik nabarmena. Zerbitzariak HTTP/1.1 protokoloa onartzen du eta baliabide gutxi kontsumitzeko diseinatuta dago, beharrezkoak diren funtzionaltasunak eskaintzen dituen bitartean. Esaterako, hinsightd-ek TLS, alderantzizko proxy-a (rproxy), fitxategi-sistema lokalean dinamikoki sortutako edukiaren cachea, datuen konpresioa etengabea, konexiorik gabeko berrabiarazi, eskaera-kudeatzaile dinamikoen konexioa FastCGI eta CGI mekanismoak erabiliz onartzen ditu. Proiektuaren kodea C hizkuntzan idatzita dago eta BSD lizentziapean banatzen da.

Konfigurazioa prozesatzeko, gehiketak idazteko eta eskaera-kudeatzaileak sortzeko, Lua hizkuntza erabiltzeko gaitasuna eskaintzen da, kudeatzaile horiek zuzenean zerbitzariaren konfigurazio fitxategian defini daitezkeen bitartean. Plugin moduan, erregistro-formatua aldatzea, erregistro indibidualak ostalari birtualekin lotzea, karga orekatzeko estrategia definitzea, HTTP autentifikazioa, URL berridazketa eta programatutako lana (adibidez, Let's Encrypt ziurtagiriak eguneratzea) ezartzen dira. pluginen forma.

Zerbitzariak liburutegi bat dator zure aplikazioetan hinsightd funtzionaltasuna integratzeko. Hinsightd-ek komando-lerrotik HTTP eskaerak bidaltzeko funtzionalitate integratua ere barne hartzen du, adibidez, orri bat kargatzeko, "hinsightd -d URL" exekutatu dezakezu. Zerbitzaria oso trinkoa da eta 200KB inguru hartzen ditu (100KB exekutagarria eta 100KB liburutegi partekatua). Kanpoko menpekotasunek libc, lua, liburing eta zlib baino ez dituzte, eta aukeran openssl/libressl eta ffcall.

Gehiago garatzeko planen artean, konprimitutako fitxategiak cachean gordetzeko gaitasuna, sistema-deien iragazketan eta izen-espazioen erabileran oinarritutako sandbox isolamendua, banda-zabaleraren kudeaketa (trafikoa moldatzea), hari anitzekoa, akatsen kudeaketa hobetzea eta maskaretan oinarritutako ostalari birtualen definizioa.

Errendimendu sintetikoen proben emaitzak (konfigurazioan optimizaziorik gabe) ab utilitateak 250 eta 500 (parentesi artean) eskaera paralelo exekutatzen dituenean ("ab -k -c 250 -n 10000 http://localhost/"):

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

Iturria: opennet.ru

Gehitu iruzkin berria