Ngenalkeun server HTTP hinsightd nganggo subsistem Linux io_uring

Pangladén HTTP hinsightd kompak parantos diterbitkeun, kasohor pikeun ngagunakeun antarmuka I/O asinkron io_uring anu disayogikeun dina kernel Linux. server ngarojong protokol HTTP / 1.1 sarta dirancang pikeun konsumsi sumberdaya low bari nyadiakeun fungsionalitas loba-diperlukeun. Contona, hinsightd ngarojong TLS, reverse proxying (rproxy), cache tina eusi dihasilkeun dinamis dina sistem file lokal, on-the-fly komprési data, connectionless balikan deui, sambungan tina pawang pamundut dinamis ngagunakeun FastCGI jeung mékanisme CGI. Kodeu proyék ditulis dina basa C sareng disebarkeun dina lisénsi BSD.

Pikeun ngolah konfigurasi, nulis tambahan sarta nyieun pawang pamundut, kamampuhan pikeun ngagunakeun basa Lua disadiakeun, bari pawang misalna bisa dihartikeun langsung dina file konfigurasi server. Dina bentuk plugins, fitur sapertos ngarobih format logging, ngahubungkeun log individu ka host virtual, netepkeun strategi balancing beban, auténtikasi HTTP, nulis ulang URL, sareng padamelan anu dijadwalkeun (contona, ngamutahirkeun sertipikat Let's Encrypt) dilaksanakeun dina wangun plugins.

server hadir kalawan perpustakaan pikeun ngahijikeun fungsionalitas hinsightd kana aplikasi Anjeun. Hinsightd ogé ngawengku fungsionalitas terpadu pikeun ngirim requests HTTP ti garis paréntah, contona, pikeun muka kaca, anjeun tiasa ngajalankeun "hinsightd -d URL". Serverna kompak pisan sareng nyandak kira-kira 200KB disusun (100KB dieksekusi sareng perpustakaan dibagikeun 100KB). Katergantungan éksternal ngan ukur libc, lua, liburing sareng zlib, sareng opsional openssl/libressl sareng ffcall.

Rencana pikeun pamekaran salajengna kalebet kamampuan pikeun nyimpen file anu dikomprés dina cache, isolasi sandbox dumasar kana panyaring panggero sistem sareng panggunaan spasi ngaran, manajemén rubakpita (traffic shaping), multithreading, ningkat penanganan kasalahan sareng definisi host virtual dumasar kana masker.

Hasil uji kinerja sintétik (tanpa optimasi dina konfigurasi sakumaha anu kasebut) ku utilitas ab nalika ngajalankeun 250 sareng 500 (dina kurung) pamundut paralel ("ab -k -c 250 -n 10000 http://localhost/"):

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

sumber: opennet.ru

Tambahkeun komentar