Linux io_uring เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ hinsightd HTTP เชธเชฐเซเชตเชฐ เชฐเชœเซ‚ เช•เชฐเซเชฏเซเช‚

เชเช• เช•เซ‹เชฎเซเชชเซ‡เช•เซเชŸ hinsightd HTTP เชธเชฐเซเชตเชฐ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ Linux เช•เชฐเซเชจเชฒเชฎเชพเช‚ เชชเซ‚เชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ io_uring เช…เชธเชฟเช‚เช•เซเชฐเซ‹เชจเชธ I/O เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เชตเชพเชชเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เช›เซ‡. เชธเชฐเซเชตเชฐ HTTP/1.1 เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช–เซ‚เชฌ เชœ เชœเชฐเซ‚เชฐเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช“เช›เชพ เชธเช‚เชธเชพเชงเชจ เชตเชชเชฐเชพเชถ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, hinsightd TLS, เชฐเชฟเชตเชฐเซเชธ เชชเซเชฐเซ‹เช•เซเชธเซ€เช‚เช— (rproxy), เชธเซเชฅเชพเชจเชฟเช• เชซเชพเช‡เชฒ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡เชฒ เชธเชพเชฎเช—เซเชฐเซ€เชจเซเช‚ เช•เซ‡เชถเซ€เช‚เช—, เช“เชจ-เชง-เชซเซเชฒเชพเชฏ เชกเซ‡เชŸเชพ เช•เชฎเซเชชเซเชฐเซ‡เชถเชจ, เช•เชจเซ‡เช•เซเชถเชจเชฒเซ‡เชธ เชฐเซ€เชธเซเชŸเชพเชฐเซเชŸ, FastCGI เช…เชจเซ‡ CGI เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชกเชพเชฏเชจเซ‡เชฎเชฟเช• เชฐเชฟเช•เซเชตเซ‡เชธเซเชŸ เชนเซ‡เชจเซเชกเชฒเชฐเชจเซเช‚ เช•เชจเซ‡เช•เซเชถเชจเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช•เซ‹เชก C เชญเชพเชทเชพเชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ เช›เซ‡ เช…เชจเซ‡ BSD เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพ, เช‰เชฎเซ‡เชฐเชพเช“ เชฒเช–เชตเชพ เช…เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชฒเซเช† เชญเชพเชทเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เช†เชตเชพ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธเชจเซ‡ เชธเชฐเซเชตเชฐ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเซ€เชงเชพ เชœ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชชเซเชฒเช—เชฟเชจเซเชธเชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚, เชฒเซ‹เช—เชฟเช‚เช— เชซเซ‹เชฐเซเชฎเซ‡เชŸ เชฌเชฆเชฒเชตเซเช‚, เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฒเซ‹เช—เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชนเซ‹เชธเซเชŸเซเชธ เชธเชพเชฅเซ‡ เชฒเชฟเช‚เช• เช•เชฐเชตเซเช‚, เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช— เชตเซเชฏเซ‚เชนเชฐเชšเชจเชพ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเซ€, HTTP เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ, URL เชชเซเชจเชƒเชฒเซ‡เช–เชจ เช…เชจเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ‡เชฒ เช•เชพเชฐเซเชฏ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชฒเซ‡เชŸเซเชธ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเซ‹เชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเซเช‚) เชœเซ‡เชตเซ€ เชธเซเชตเชฟเชงเชพเช“ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เชชเซเชฒเช—เชˆเชจเซ‹เชจเซเช‚ เชธเซเชตเชฐเซ‚เชช.

เชธเชฐเซเชตเชฐ เชคเชฎเชพเชฐเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชฎเชพเช‚ เช…เชฆเซƒเชถเซเชฏ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชจเซ‡ เชเช•เซ€เช•เซƒเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เชธเชพเชฅเซ‡ เช†เชตเซ‡ เช›เซ‡. Hinsightd เชฎเชพเช‚ เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏเชฎเชพเช‚เชฅเซ€ HTTP เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชธเช‚เช•เชฒเชฟเชค เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชชเชฃ เชถเชพเชฎเซ‡เชฒ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเซƒเชทเซเช  เชฒเซ‹เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ "hinsightd -d URL" เชšเชฒเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹. เชธเชฐเซเชตเชฐ เช–เซ‚เชฌ เชœ เช•เซ‹เชฎเซเชชเซ‡เช•เซเชŸ เช›เซ‡ เช…เชจเซ‡ เชฒเช—เชญเช— 200KB เชธเช‚เช•เชฒเชฟเชค (100KB เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒ เช…เชจเซ‡ 100KB เชถเซ‡เชฐ เช•เชฐเซ‡เชฒเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€) เชฒเซ‡ เช›เซ‡. เชฌเชพเชนเซเชฏ เช…เชตเชฒเช‚เชฌเชจเชฎเชพเช‚ เชซเช•เซเชค libc, lua, liburing เช…เชจเซ‡ zlib เช…เชจเซ‡ เชตเซˆเช•เชฒเซเชชเชฟเช• เชฐเซ€เชคเซ‡ openssl/libressl เช…เชจเซ‡ ffcall เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡.

เชตเชงเซ เชตเชฟเช•เชพเชธ เชฎเชพเชŸเซ‡เชจเซ€ เชฏเซ‹เชœเชจเชพเช“เชฎเชพเช‚ เช•เซ‡เชถเชฎเชพเช‚ เชธเช‚เช•เซเชšเชฟเชค เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ, เชธเชฟเชธเซเชŸเชฎ เช•เซ‹เชฒ เชซเชฟเชฒเซเชŸเชฐเชฟเช‚เช— เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชธเซ‡เชจเซเชกเชฌเซ‹เช•เซเชธ เช†เช‡เชธเซ‹เชฒเซ‡เชถเชจ เช…เชจเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชจเซ‹ เช‰เชชเชฏเซ‹เช—, เชฌเซ‡เชจเซเชกเชตเชฟเชกเซเชฅ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ (เชŸเซเชฐเชพเชซเชฟเช• เชถเซ‡เชชเชฟเช‚เช—), เชฎเชฒเซเชŸเชฟเชฅเซเชฐเซ‡เชกเซ€เช‚เช—, เชธเซเชงเชพเชฐเซ‡เชฒ เชเชฐเชฐ เชนเซ‡เชจเซเชกเชฒเชฟเช‚เช— เช…เชจเซ‡ เชฎเชพเชธเซเช• เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชนเซ‹เชธเซเชŸเชจเซ€ เชตเซเชฏเชพเช–เซเชฏเชพเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡.

250 เช…เชจเซ‡ 500 (เช•เซŒเช‚เชธเชฎเชพเช‚) เชธเชฎเชพเช‚เชคเชฐ เชตเชฟเชจเช‚เชคเซ€เช“ ("ab -k -c 250 -n 10000 http://localhost/") เชšเชฒเชพเชตเชคเซ€ เชตเช–เชคเซ‡ ab เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€ เชฆเซเชตเชพเชฐเชพ เชธเชฟเชจเซเชฅเซ‡เชŸเชฟเช• เชชเชฐเซเชซเซ‹เชฐเซเชฎเชจเซเชธ เชŸเซ‡เชธเซเชŸเชฟเช‚เช—เชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ (เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เชตเชฟเชจเชพ) :

  • hinsightd/0.9.17 - 63035.01 เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก (54984.63)
  • lighttpd/1.4.67 - 53693.29 เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก (1613.59)
  • Apache/2.4.54 - 37474.10 เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก (34305.55)
  • Caddy/2.6.2 - 35412.02 เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก (33995.57)
  • nginx/1.23.2 - 26673.64 เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก (26172.73)

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹