Esiteltiin hinsightd HTTP-palvelin, joka käyttää Linuxin io_uring-alijärjestelmää

Kompakti HTTP-palvelin, hinsightd, on julkaistu, ja se on tunnettu siitä, että se käyttää Linux-ytimen sisältämää asynkronista io_uring-I/O-liitäntää. Palvelin tukee HTTP/1.1-protokollaa, ja se on suunniteltu pieneen resurssien kulutukseen samalla kun se tarjoaa tarvittaessa toimintoja. Esimerkiksi hinsightd tukee TLS:ää, käänteistä välityspalvelinta (rproxy), dynaamisesti luodun sisällön välimuistia paikallisessa tiedostojärjestelmässä, lähetettyjen tietojen pakkaamista lennossa, uudelleenkäynnistystä katkaisematta muodostettuja yhteyksiä, dynaamisten pyyntökäsittelijöiden yhdistämistä FastCGI- ja CGI-mekanismeja käyttäen. Projektikoodi on kirjoitettu C-kielellä ja jaettu BSD-lisenssillä.

Kokoonpanon käsittelyyn, lisäysten kirjoittamiseen ja pyyntökäsittelijöiden luomiseen on mahdollista käyttää Lua-kieltä, jotka voidaan määrittää suoraan palvelimen asetustiedostoon. Lisäosien muodossa toteutetaan sellaisia ​​ominaisuuksia kuin lokin tallennusmuodon muuttaminen, yksittäisten lokien linkittäminen virtuaalisiin isänteihin, kuormituksen tasapainotusstrategian määrittely, HTTP-todennus, URL-osoitteiden uudelleenkirjoittaminen ja ajoitettujen töiden suorittaminen (esim. Let's Encrypt -sertifikaattien päivittäminen).

Palvelimen mukana tulee kirjasto, jonka avulla voit integroida älykkäitä toimintoja sovelluksiisi. Hinsightd sisältää myös integroidun toiminnon HTTP-pyyntöjen lähettämiseen komentoriviltä, ​​esimerkiksi voit ladata sivun suorittamalla komennon "hinsightd -d URL". Palvelin on erittäin kompakti ja vie noin 200 kt käännetyssä muodossa (100 kt suoritettava tiedosto ja 100 kt jaettu kirjasto). Ulkoisia riippuvuuksia ovat vain libc, lua, liburing ja zlib sekä valinnaisesti openssl/libressl ja ffcall.

Jatkokehityssuunnitelmiin kuuluu pakattujen tiedostojen välimuistin tallentaminen, suodatusjärjestelmäkutsuihin ja nimiavaruuksiin perustuva hiekkalaatikon eristys, liikenteen muotoilu, monisäikeisyys, parannettu virheiden käsittely ja maskipohjainen virtuaalisen isännän tunnistus.

Synteettisen suorituskyvyn testauksen tulokset (ilman optimointia konfiguraatiossa sellaisenaan) ab-apuohjelmalla suoritettaessa 250 ja 500 (suluissa) rinnakkaisia ​​pyyntöjä ("ab -k -c 250 -n 10000 http://localhost/"):

  • hinsightd/0.9.17 – 63035.01 pyyntöä sekunnissa (54984.63)
  • lighttpd/1.4.67 - 53693.29 pyyntöä sekunnissa (1613.59)
  • Apache/2.4.54 - 37474.10 pyyntöä sekunnissa (34305.55)
  • Caddy/2.6.2 – 35412.02 pyyntöä sekunnissa (33995.57)
  • nginx/1.23.2 - 26673.64 pyyntöä sekunnissa (26172.73)

Lähde: opennet.ru

Lisää kommentti