Intruduttu u servitore HTTP insightd utilizendu u sottosistema Linux io_uring

Un servitore HTTP compactu insightd hè statu publicatu, notevule per l'usu di l'interfaccia I/O asincrona io_uring furnita in u kernel Linux. U servitore supporta u protocolu HTTP / 1.1 è hè pensatu per un pocu cunsumu di risorse mentre furnisce una funziunalità assai necessaria. Per esempiu, hinsightd supporta TLS, reverse proxy (rproxy), caching di cuntenutu generatu dinamicamente in u sistema di fugliale locale, compressione di dati in u volu, riavviu senza cunnessione, cunnessione di gestori di richieste dinamichi chì utilizanu i meccanismi FastCGI è CGI. U codice di u prugettu hè scrittu in lingua C è distribuitu sottu a licenza BSD.

Per processà a cunfigurazione, scrivite l'aghjunghjini è creanu manipulatori di richieste, a capacità di utilizà a lingua Lua hè furnita, mentre chì tali manipulatori ponu esse definiti direttamente in u schedariu di cunfigurazione di u servitore. In a forma di plugins, funzioni cum'è cambià u formatu di logging, ligà i logs individuali à l'ospiti virtuali, a definizione di una strategia di bilanciamentu di carica, l'autentificazione HTTP, a riscrittura di URL, è u travagliu pianificatu pianificatu (per esempiu, l'aghjurnamentu di i certificati Let's Encrypt) sò implementati in u forma di plugins.

U servitore vene cun una biblioteca per l'integrazione di funziunalità insightd in e vostre applicazioni. Hinsightd include ancu funziunalità integrata per mandà richieste HTTP da a linea di cummanda, per esempiu, per carricà una pagina, pudete eseguisce "hinsightd -d URL". U servitore hè assai compactu è piglia circa 200KB compilatu (100KB eseguibile è 100KB libreria spartuta). Dipendenze esterne includenu solu libc, lua, liburing è zlib, è opzionalmente openssl/libressl è ffcall.

I piani per u sviluppu ulteriore includenu l'abilità di almacenà i fugliali cumpressi in a cache, l'isolamentu di sandbox basatu nantu à u filtru di e chjama di u sistema è l'usu di spazii di nomi, gestione di larghezza di banda (formazione di trafficu), multithreading, gestione di l'errore mejorata è definizione di host virtuali basati in maschere.

I risultati di e teste di prestazione sintetica (senza ottimisazioni in a cunfigurazione cum'è) da l'utilità ab quandu esegue 250 è 500 (in parentesi) richieste parallele ("ab -k -c 250 -n 10000 http://localhost/"):

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

Source: opennet.ru

Add a comment