Gabatar da uwar garken HTTP mai hankali ta amfani da Linux io_uring subsystem

An buga ƙaramin sabar HTTP mai hankali, sananne don amfani da io_uring asynchronous I/O interface da aka bayar a cikin Linux kernel. Sabar tana goyan bayan ka'idar HTTP/1.1 kuma an tsara ta don ƙarancin amfani da albarkatu yayin samar da ayyukan da ake buƙata sosai. Misali, hinsightd yana goyan bayan TLS, juyi proxying (rproxy), caching na abubuwan da aka samar da ƙarfi a cikin tsarin fayil na gida, matsawar bayanan kan-da- tashi, sake kunnawa mara haɗi, haɗin masu sarrafa buƙatun mai ƙarfi ta amfani da hanyoyin FastCGI da CGI. An rubuta lambar aikin a cikin harshen C kuma an rarraba ta ƙarƙashin lasisin BSD.

Don aiwatar da tsarin, rubuta ƙari da ƙirƙirar masu sarrafa buƙatun, ana ba da damar yin amfani da yaren Lua, yayin da ana iya bayyana irin waɗannan masu sarrafa kai tsaye a cikin fayil ɗin daidaitawar uwar garken. A cikin nau'ikan plugins, fasalulluka kamar canza tsarin shiga, haɗa rajistan ayyukan guda ɗaya zuwa runduna kama-da-wane, ayyana dabarun daidaita nauyi, ingantaccen HTTP, sake rubuta URL, da aikin da aka tsara (misali, sabunta takaddun shaida Bari mu Encrypt) ana aiwatar da su a cikin nau'i na plugins.

Sabar ta zo tare da ɗakin karatu don haɗa ayyukan hangen nesa cikin aikace-aikacenku. Har ila yau, Hinsightd ya haɗa da haɗakar ayyuka don aika buƙatun HTTP daga layin umarni, misali, don loda shafi, za ku iya gudanar da "hinsightd -d URL". Sabar ɗin tana da ɗanɗano sosai kuma tana ɗaukar kusan 200KB harhada (aikin aiwatarwa 100KB da 100KB shared library). Dogaro na waje sun haɗa da libc, lua, liburing da zlib kawai, da buɗe ssl/libressl da ffcall na zaɓi.

Shirye-shiryen don ci gaba da haɓaka sun haɗa da ikon adana fayilolin da aka matsa a cikin cache, keɓancewar akwatin sandbox dangane da tace kiran tsarin da kuma amfani da wuraren suna, sarrafa bandwidth (tsararrun zirga-zirga), multithreading, ingantaccen sarrafa kuskure da ma'anar runduna kama-da-wane bisa ga masks.

Sakamakon gwajin aikin roba (ba tare da ingantawa ba a cikin daidaitawa kamar yadda yake) ta ab mai amfani lokacin gudanar da 250 da 500 (a cikin brackets) buƙatun layi daya ("ab -k -c 250 -n 10000 http://localhost/"):

  • hinsightd/0.9.17 - 63035.01 buƙatun daƙiƙa guda (54984.63)
  • lighttpd/1.4.67 - 53693.29 buƙatun daƙiƙa (1613.59)
  • Apache/2.4.54 - 37474.10 buƙatun daƙiƙa guda (34305.55)
  • Caddy/2.6.2 - 35412.02 buƙatun daƙiƙa (33995.57)
  • nginx/1.23.2 - 26673.64 buƙatun daƙiƙa (26172.73)

source: budenet.ru

Add a comment