рд╣рдордиреЗ рд╕рд╛рдд рд╕реА / рд╕реА ++ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рд╕рд╛рде рд╣реА (рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд┐рдд HTTP рд╕рд░реНрд╡рд░ рдХреЛрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ (nginx рдФрд░ node.js) рдореЗрдВ рдЕрдиреНрдп рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рд╕реЗ рдХреА рд╣реИред
рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдПрдХ рдЬрдЯрд┐рд▓ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рддрдВрддреНрд░ рд╣реИред рдПрдХ рд░рд╛рдп рд╣реИ рдХрд┐ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬрд┐рд╕рдиреЗ рдЕрдкрдирд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдореИрдВ "рдХрдВрдкрд╛рдЗрд▓рд░" рдХреЛ "HTTP рд╕рд░реНрд╡рд░" рд╕реЗ рдмрджрд▓ рджреВрдВрдЧрд╛: рдпрд╣ рдПрдХ рдкрд╛рд░реНрд╕рд░ рд╣реИ, рдФрд░ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ, рдФрд░
рдмрд╣реБрдд рдХреБрдЫ ...редрд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг (рд░рд┐рдЯрд░реНрдирд┐рдВрдЧ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕, рдбрд╛рдпрдирд╛рдорд┐рдХреНрд╕, рд╡рд┐рднрд┐рдиреНрди рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдореЙрдбреНрдпреВрд▓, рдкреНрд░реЙрдХреНрд╕реА, рдЖрджрд┐) рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд╢реНрд░рдорд╕рд╛рдзреНрдп рдХрд╛рд░реНрдп рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╣рдо рдХреЛрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВрдЧреЗред HTTP рд╕рд░реНрд╡рд░ рдХрд╛ рдореВрд▓ (рдХрд┐рд╕реА рднреА рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рддрд░рд╣) рд╕реЙрдХреЗрдЯ рдИрд╡реЗрдВрдЯ рдореИрдиреЗрдЬрд░ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╛рдердорд┐рдХ рддрдВрддреНрд░ (рдереНрд░реЗрдб, рдкреНрд░реЛрд╕реЗрд╕, рдЖрджрд┐ рдХреЗ рдкреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд) рд╣реИред рдЗрд╕рдореЗрдВ HTTP рдкреИрдХреЗрдЯ рдкрд╛рд░реНрд╕рд░ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрдирд░реЗрдЯрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдШрдЯрдирд╛рдУрдВ (рдЪрдпрди, рдПрдкреЛрд▓, рдЖрджрд┐) рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдгрд╛рд▓реА рддрдВрддреНрд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрдирдХреЗ рдореЗрдЯрд╛-рд░реИрдкрд░ (libev, boost.asio, рдЖрджрд┐) рдФрд░ рдУрдПрд╕ рдХрд░реНрдиреЗрд▓, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдПрдХ рдЯрд░реНрдирдХреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рджреЗрддрд╛ рд╣реИред
рдореИрдВрдиреЗ
libv рдкрд░ HTTP рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдмреЗрд╢рдХ, рдХреБрдЦреНрдпрд╛рдд
rfc2616 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕рдмрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди
рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ), рдХреЗрд╡рд▓ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо,
- 8000 рд╡реЗрдВ рдмрдВрджрд░рдЧрд╛рд╣ рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реБрдиреЗрдВ;
- рдЬрд╛рдБрдЪ рд╡рд┐рдзрд┐ (GET);
- рдЕрдиреБрд░реЛрдз (/ рдЙрддреНрддрд░) рдореЗрдВ рдкрде рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ;
- рдЙрддреНрддрд░ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
HTTP / 1.1 200 рдареАрдХ рд╣реИ
рд╕рд░реНрд╡рд░: рдмреЗрдВрдЪ
рдХрдиреЗрдХреНрд╢рди: рдЬреАрд╡рд┐рдд рд░рдЦреЗрдВ
рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░: рдкрд╛рда / рд╕рд╛рджрд╛
рдХрдВрдЯреЗрдВрдЯ-рд▓рдВрдмрд╛рдИ: 2
42
- рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдкрде - рдПрдХ рдЙрддреНрддрд░ рддреНрд░реБрдЯрд┐ рдХреЛрдб 404 (рдкреГрд╖реНрда рдирд╣реАрдВ рдорд┐рд▓рд╛) рдХреЗ рд╕рд╛рде рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - рдХреЛрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд╣реАрдВ, рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕реЗрд╕, рдЧреЗрдЯрд╡реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрджрд┐ред - рд╕рдм рдХреБрдЫ рдЕрдзрд┐рдХрддрдо рд╕рд░рд▓реАрдХреГрдд рд╣реИред
рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рд╕рд░реНрд╡рд░ рдХреЛ-рдЬрд╝рд┐рдВрджрд╛ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд╡реИрд╕реЗ, рдХреЗрд╡рд▓ cpp-netlib рдХреЛ рдЗрд╕рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдХреНрд░рдорд╢рдГ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореЛрдбредрдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдХрд╛рд░реНрдп рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рддрд┐ рджрд┐рди рд▓рд╛рдЦреЛрдВ рд╣рд┐рдЯреНрд╕ рдХреЗ рднрд╛рд░ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдерд╛ред рдпрд╣ рдорд╛рдирд╛ рдЧрдпрд╛ рдХрд┐ 90% рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдЧреА, рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рд╢реЗрд╖ 10% рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдХрдИ рдЕрдиреНрдп рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХрддреНрд░ рдХреА рдЬрд╛ рд╕рдХреЗрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрдкреВрд░реНрдг рд╕рдлрд▓рддрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрддрд┐ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛:
- рдХреНрдпрд╛ рдЕрдкрдиреА рд╕рд╛рдЗрдХрд┐рд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдпрд╛ рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИ?
- рдЕрддреНрдпрдзрд┐рдХ рднрд░реА рд╣реБрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреЛрдб.рдЬреЗрдПрд╕ рдЙрдкрдпреБрдХреНрдд рд╣реИ?
рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╕реА ++ рдХреЛрдб рдХреЗ рдореЛрдЯреЗ рдХреЛ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрдВ рдФрд░ рдЬреЗрдПрд╕ рдХреЛ 30 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рдереЗ, рдХреНрдпрд╛ HTTP рд░рдЦрдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ? (рдПрдХ рд╕рд╛рд▓ рдмрд╛рдж, рдЬрд╡рд╛рдм
рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдпрд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ)ред
рдмреЗрд╢рдХ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЙрдирдХреА рдмрд╛рдЗрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдлрд┐рд░ рдиреЛрдб.рдЬреЗрдПрд╕ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ (рдЙрдиреНрд╣реЛрдВрдиреЗ рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛), рдФрд░ рдлрд┐рд░ рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛: рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИрдВ, рдХреНрдпрд╛ рдпрд╣ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рджрд░рдЕрд╕рд▓, рдпрд╣ рдкреЛрд╕реНрдЯ рд╕рд╛рдордиреЗ рдЖрдИред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рд▓реЛрд╣рд╛- рдкреНрд░реЛрд╕реЗрд╕рд░: CPU: AMD FX (tm) -8120 рдЖрда-рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░
- рдиреЗрдЯрд╡рд░реНрдХ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ (рдХреНрдпреЛрдВ рджреЗрдЦреЗрдВ - TODO)
рдореБрд▓рд╛рдпрдо- OS: FreeBSD 9.1-RELEASE-p7
рдЯреНрдпреВрдирд┐рдВрдЧрдЖрдорддреМрд░ рдкрд░, рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдирдХ рд╕реЗрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИ:
/etc/sysctl.confkern.ipc.somaxconn = 65535
net.inet.tcp.blackhole = 2
net.inet.udp.blackhole = 1
net.inet.ip.portrange.randomized = 0
net.inet.ip.portrange.first = 1024
net.inet.ip.portrange.last = 65535
net.inet.icmp.icmplim = 1000
/boot/loader.confkern.ipc.semmni = 256
kern.ipc.semmns = 512
kern.ipc.semmnu = 256
kern.ipc.maxsockets = 999999
kern.ipc.nmbclusters = 65535
kern.ipc.somaxconn = 65535
kern.maxfiles = 999999
kern.maxfilesperproc = 999999
kern.maxvnodes = 999999
net.inet.tcp.fast_finwait2_recycle = 1
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рдХреА, рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдордВрджреА рднреА рд╣реБрдИ, рдЗрд╕рд▓рд┐рдП рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдпрд╛рдиреА рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рд╕рд╛рдорд╛рдиреНрдп рдХрд░реНрдиреЗрд▓)ред
рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ
рдкреБрд╕реНрддрдХрд╛рд▓рдп
рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди
рдкрд╣рд▓рд╛ рдирд╛рдо | рд╕рдВрд╕реНрдХрд░рдг | рдШрдЯрдирд╛рдУрдВ | рдЬрд┐рдВрджрд╛ рд╕рдорд░реНрдерди | рддрдВрддреНрд░ |
---|
Node.js | 0.10.17 | libuv | рд╣рд╛рдВ | рдХреНрд▓рд╕реНрдЯрд░ рдореЙрдбреНрдпреВрд▓ (рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ) |
nginx | 1.4.4 | epoll, рдЪрдпрди, kqueue | рд╣рд╛рдВ | рдорд▓реНрдЯреА-рдкреНрд░реЛрд╕реЗрд╕ рдЙрдкрдЪрд╛рд░ |
* рдпреЛрдЬрдирд╛ "рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕ - рд╡рди рдкреНрд░реЛрд╕реЗрд╕ рд╡рди рдереНрд░реЗрдб" рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдПрдирд┐рд▓рдВрдмрд┐рдд
рдкрд╣рд▓рд╛ рдирд╛рдо | рдХрд╛рд░рдг |
---|
nxweb | рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ |
рдЬреА рд╡рд╛рди | рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ (рдФрд░ рдЖрдо рддреМрд░ рдкрд░ ... ) |
libmicrohttpd | рдирд┐рд░рдВрддрд░ рднрд╛рд░ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ |
рдЙрдкрдЬ | рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ |
EHS | рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ |
libhttpd | рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ, HTTP / 1.0, рд╣реЗрдбрд░ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ |
libebb | рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ, рджреБрд░реНрдШрдЯрдирд╛рдУрдВ |
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдордиреЗ
рд▓рд╛рдЗрдЯрдЯреИрдк рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ -
рд╡реЗрдЯрдЯреАрдбреАрдкреА ред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреИрдВрдЯрд░рдл рдХреЛ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднрд╛рд░реЛрддреНрддреЛрд▓рди рдХрд╛рдореЗрдЪреНрдЫрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдХрд┐ рдЪрдпрди рдХреЗ рд╕рд╛рде рдХреИрдВрдкрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред рдореБрдЦреНрдп рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ (рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд, рдЖрджрд┐ рдХреА рдЧрдгрдирд╛ рдХреЗ рд╕рд╛рде рднрд╛рд░реЛрддреНрддреЛрд▓рдХ рдкрд░ рдПрдХ рдЖрд╡рд░рдг), рд╣рдордиреЗ
gwan-ovsky ab.c рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛, FreeBSD рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ Python (рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХ) рдкрд░ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ред
рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдПрдХ рд╣реА рднреМрддрд┐рдХ рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣реЗ рдереЗред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░ рдорд╛рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛:
- рд╕рд░реНрд╡рд░ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ (1, 2 рдФрд░ 3)
- рд╕рдорд╡рд░реНрддреА рдЦреБрд▓реЗ рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (10, 100, 200, 400, 800)
рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, 20-30 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЧрдпрд╛, рдкреНрд░рддрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 2 рдорд┐рд▓рд┐рдпрди рдЕрдиреБрд░реЛрдзред
рдкрд░рд┐рдгрд╛рдо
рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдкрджреНрдзрддрд┐ рдореЗрдВ рд╕рдХрд▓ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдП рдЧрдП рдереЗ, рдЬреИрд╕рд╛ рдХрд┐
VBart рдФрд░
рдЧрд╛рдЙрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдЦреНрдд рдЬреБрджрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рд░реНрд╡рд░ \ рдХреНрд▓рд╛рдЗрдВрдЯ рдереНрд░реЗрдбреНрд╕ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдЕрдиреБрдореЗрдп рдорд╛рдирджрдВрдбреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдереАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рдк рдкрд░рд┐рдгрд╛рдореЛрдВ (рдПрдПрдордбреА рдЯрд░реНрдмреЛ рдХреЛрд░) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдЕрдХреНрд╖рдо рдирд╣реАрдВ рдереЗ, рдорд╛рдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдЦ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг
рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛
рд╣реИ ред
рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдореЛрдб рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реБрдП (рд╕рд░реНрд╡рд░ / рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдордзреНрдпрд╕реНрдереЛрдВ рдХреЛ рд▓рд┐рдпрд╛ рдЧрдпрд╛):
рдЬрдЧрд╣ | рдкрд╣рд▓рд╛ рдирд╛рдо | рдХреНрд▓рд╛рдЗрдВрдЯред рдкреНрд░рд╡рд╛рд╣ | рдкреНрд░рддрд┐рд╢рддред рд╕рдордп | рдЕрдиреБрд░реЛрдз |
---|
рдХрд╕реНрдЯрдоред | Systред | рд╕рдлрд▓ (рдПрдХрд╛рдВрдд рдореЗрдВ) | рдЕрд╕рдлрд▓ (%) |
---|
1 | nginx | 400 | 10 | 10 | 101,210 | 0 |
2 | рдиреЗрд╡рд▓рд╛ | 200 | 12 | 15 | 53,255 | 0 |
3 | libevent | 200 | 16 | 33 | 39,882 | 0 |
4 | рд╣рд╛рде рд╕реЗ рдмрдиреЗ | 100 | 20 | 32 | 38,550 | 0 |
5 | рдкреНрдпрд╛рдЬрд╝ | 10 | 22 | 33 | 29,230 | 0 |
6 | POCO | 10 | 25 | 50 | 20,943 | 0 |
7 | pion | 10 | 24 | 83 | 16,526 | 0 |
8 | Node.js | 10 | 23 | 173 | 9374 | 0 |
9 | рд╕реАрдкреАрдкреА-netlib | 10 | 100 | 183 | 5362 | 0 |
scalability:
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрджрд┐ рдЕрдзрд┐рдХ рдХреЛрд░ рдереЗ, рддреЛ рд╣рдо рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдПрдХ рд░реИрдЦрд┐рдХ рд╡реГрджреНрдзрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ - рдкрд░реНрдпрд╛рдкреНрдд рдирд╛рднрд┐рдХ рдирд╣реАрдВ рд╣реИрдВред
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, nginx рдиреЗ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд┐рдпрд╛ - рдЖрдЦрд┐рд░рдХрд╛рд░, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╣ рдПрдХ рддреИрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд, рдмрд╣реБрдХреНрд░рд┐рдпрд╛рд╢реАрд▓, рдореЙрдбреНрдпреВрд▓рд░ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЕрддреНрдпрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИред рд╕рдореНрдорд╛рди рдХрд░реЗрдВред
mongoose рдЕрднреА рднреА рдирдо рд╣реИ, рд╕рдВрд╕реНрдХрд░рдг 5.0 рд░рди-рдЗрди рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╢рд╛рдЦрд╛ рдПрдХ рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдЪрд░рдг рдореЗрдВ рд╣реИред
cpp-netlib рдиреЗ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдпрд╛ред рди рдХреЗрд╡рд▓ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдерд╛ рдЬреЛ HTTP рдХреАрдк-рд▓рд┐рд╡рд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдпрд╣ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдмрдврд╝рд╛рд╡рд╛ рдХреЗ рдЖрдВрддреНрд░ рдореЗрдВ рднреА рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдерд╛ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рдорд╛рдзрд╛рди рдХрдЪреНрдЪрд╛ рд╣реИ, рдкреНрд░рд▓реЗрдЦрди рдкреБрд░рд╛рдирд╛ рд╣реИред рдХрд╛рдиреВрдиреА рдЕрдВрддрд┐рдо рд╕реНрдерд╛рдиред
рдиреЛрдб.рдЬреЗрдПрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдпрд╣рд╛рдВ рдбрд╛рдВрдЯрд╛
рд╣реИ , рдореИрдВ рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╡реА 8 рдЕрднреА рднреА рджреЗрдЦрд╛ рдФрд░ рджреЗрдЦрд╛ред рдпрд╣ рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИ рдЬреЛ рдкреЗрд▓реЛрдб рдХреЗ рдмрд┐рдирд╛ рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЗрддрдиреА рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╢реАрд░реНрд╖ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХрд╛ 10-20% рджреЗрддрд╛ рд╣реИ?
рдПрдЪрдЯреАрдЯреАрдкреА рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рд░рдЦрдирд╛: рдпрджрд┐
рдкреЛрд╕реНрдЯ рдореЗрдВ рдЕрдВрддрд░ 2 рдмрд╛рд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЕрдВрддрд░ x10 рддрдХ рдерд╛ред
рдорд┐рдирд┐рд╕реНрдЯреИрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдЯреАрдХрддрд╛: 95.0% рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдкрд░ рдХреЛрдИ рдЕрдВрддрд░ рд╕рд╛рдмрд┐рдд рдирд╣реАрдВ рд╣реБрдЖред
рдпрд╣ рдХрд░реЗрдВ
- "рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╢реАрдиреЛрдВ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░" рдореЛрдб рдореЗрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХред рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ - рд╕рдм рдХреБрдЫ рдиреЗрдЯрд╡рд░реНрдХ рдЧреНрд░рдВрдерд┐рдпреЛрдВ рдореЗрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдХреЗ рдореЙрдбрд▓, рдмрд▓реНрдХрд┐ рд╕реНрд╡рд┐рдЪ, рд░рд╛рдЙрдЯрд░ рдЖрджрд┐ред - рдЕрд╕рд▓реА рдорд╢реАрдиреЛрдВ рдХреЗ рдмреАрдЪ рдкреВрд░рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реАрдзреЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
- рдХреНрд▓рд╛рдЗрдВрдЯ HTTP рдПрдкреАрдЖрдИ рдХрд╛ рдкрд░реАрдХреНрд╖рдг (рдПрдХ рд╕рд░реНрд╡рд░ рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ)ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХ HTTP рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░реА рдУрд░, рдХреБрдЫ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, libcurl) рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ;
- рдЕрдиреНрдп HTTP рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧред рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрдВрдЯрд░рдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдмреА - рдХрдИ рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдирд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рднрд╛рд░ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рдХрдИрдпреЛрдВ рдиреЗ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рд╣реИред рдпрд╣рд╛рдВ рдХреБрдЫ рджрд░реНрдЬрди рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП;
- рд▓рд┐рдирдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдмреЗрдВрдЪрдорд╛рд░реНрдХред рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╖рдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдХрдо рд╕реЗ рдХрдо рд╣реЛрд▓реАрд╡рд░ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд▓рд╣рд░);
- рд╢реАрд░реНрд╖ рдЗрдВрдЯреЗрд▓ Xeon рдкрд░ рдХреЛрд░ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВред
рд╕рдВрджрд░реНрдн
рддрдирд╛рд╡-рдкрд░реАрдХреНрд╖рдг рдХреИрдВрдкрд░, рдШреЗрд░рд╛рдмрдВрджреА, рдЕрдкрд╛рдЪреЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ, рдФрд░ рд╕рд░реНрд╡ - HTTP рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдПред
Httperf рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг - рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдкрд░ рдЯрд┐рдкреНрд╕ рдФрд░
рдЯреНрд░рд┐рдХреНрд╕ ред
ApacheBench & HTTPerf - рдЬреА-рд╡рд╛рди рд╕реЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдгред
Warp рдПрдХ рдЕрдиреНрдп рд╣рд╛рдИ-рд▓реЛрдб рд╢рд┐рдХрд╛рдпрдд HTTP рд╕рд░реНрд╡рд░, рд╣рд╛рд╕реНрдХреЗрд▓ рд╣реИред
рдЖрд╡реЗрджрди
рдЖрд╡реЗрджрди рдореЗрдВ рдЖрдк рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдФрд░ рдкрд░рд┐рдгрд╛рдо, рд╕рд╛рде рд╣реА рд╕рд╛рде HTTP рд╕рд░реНрд╡рд░ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред