рд▓рд┐рдирдХреНрд╕ io_uring рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП hinsightd HTTP рд╕рд░реНрд╡рд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛

рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ HTTP рд╕рд░реНрд╡рд░, hinsightd, рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП io_ureing рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ I/O рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИред рд╕рд░реНрд╡рд░ HTTP/1.1 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрди-рдбрд┐рдорд╛рдВрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реБрдП рдХрдо рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, hinsightd TLS, рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реАрдЗрдВрдЧ (rproxy), рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреИрд╢рд┐рдВрдЧ, рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдСрди-рдж-рдлреНрд▓рд╛рдИ рд╕рдВрдкреАрдбрд╝рди, рд╕реНрдерд╛рдкрд┐рдд рдХрдиреЗрдХреНрд╢рди рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛, рдлрд╛рд╕реНрдЯрд╕реАрдЬреАрдЖрдИ рдФрд░ рд╕реАрдЬреАрдЖрдИ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдмреАрдПрд╕рдбреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ, рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд┐рдЦрдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реБрдЖ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдРрд╕реЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реАрдзреЗ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд▓реЙрдЧ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдмрджрд▓рдирд╛, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓реЙрдЧ рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рд╕реЗ рдЬреЛрдбрд╝рдирд╛, рд▓реЛрдб рд╕рдВрддреБрд▓рди рд░рдгрдиреАрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛, HTTP рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдпреВрдЖрд░рдПрд▓ рдкреБрдирд░реНрд▓реЗрдЦрди рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдп рдХрд░рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЗрдЯреНрд╕ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛) рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдВ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИрдВред

рд╕рд░реНрд╡рд░ рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ hinsightd рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред Hinsightd рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдкреЗрдЬ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "hinsightd -d URL" рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд░реНрд╡рд░ рдмрд╣реБрдд рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рд░реВрдк рдореЗрдВ рд▓рдЧрднрдЧ 200KB (100KB рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдФрд░ 100KB рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рд▓реЗрддрд╛ рд╣реИред рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдХреЗрд╡рд▓ libc, lua, liburing рдФрд░ zlib рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ openingsl/libressl рдФрд░ ffcall рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдЖрдЧреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдВрдкреАрдбрд╝рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдФрд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЕрд▓рдЧрд╛рд╡, рдЯреНрд░реИрдлрд╝рд┐рдХ рд╢реЗрдкрд┐рдВрдЧ, рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ, рдмреЗрд╣рддрд░ рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди рдФрд░ рдорд╛рд╕реНрдХ-рдЖрдзрд╛рд░рд┐рдд рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

250 рдФрд░ 500 (рдХреЛрд╖реНрдардХ рдореЗрдВ) рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрд░реЛрдз ("ab -k -c 250 -n 10000 http://localhost/") рдЪрд▓рд╛рдиреЗ рдкрд░ рдПрдмреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг (рдЬреИрд╕рд╛ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд┐рдирд╛) рдХреЗ рдкрд░рд┐рдгрд╛рдо:

  • hinsightd/0.9.17 тАУ 63035.01 рдЕрдиреБрд░реЛрдз рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб (54984.63)
  • рд▓рд╛рдЗрдЯрдЯреАрдкреАрдбреА/1.4.67 - 53693.29 рдЕрдиреБрд░реЛрдз рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб (1613.59)
  • рдЕрдкрд╛рдЪреЗ/2.4.54 - 37474.10 рдЕрдиреБрд░реЛрдз рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб (34305.55)
  • рдХреИрдбреА/2.6.2 - 35412.02 рдЕрдиреБрд░реЛрдз рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб (33995.57)
  • nginx/1.23.2 - 26673.64 рдЕрдиреБрд░реЛрдз рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб (26172.73)

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ