Linux-แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒฌแƒแƒ›แƒจแƒ˜ 1.2 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ JSON แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒšแƒแƒ“

แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ“แƒแƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ HTTP แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒฌแƒ”แƒ•แƒแƒ“. แƒจแƒ”แƒ›แƒแƒ—แƒแƒ•แƒแƒ–แƒ”แƒ‘แƒฃแƒšแƒ›แƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ’แƒแƒฎแƒแƒ“แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒแƒก JSON แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Amazon EC2 แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ (4 vCPU) Libreactor แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒ–แƒ” 224 แƒแƒ—แƒแƒกแƒ˜ API แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ“แƒแƒœ แƒฌแƒแƒ›แƒจแƒ˜ Amazon Linux 2-แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ— 4.14-แƒ›แƒ“แƒ” 1.2 แƒ›แƒ˜แƒšแƒ˜แƒแƒœ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒ›แƒ“แƒ”. แƒ›แƒ”แƒแƒ แƒ” แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ (แƒ–แƒ แƒ“แƒ 436%) แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก 79%-แƒ˜แƒ— แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ. แƒจแƒ”แƒ›แƒแƒ—แƒแƒ•แƒแƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ แƒ˜ libreactor-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒกแƒฎแƒ•แƒ http แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก nginx, Actix, Netty แƒ“แƒ Node.js (libreactor แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ“แƒ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒกแƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒแƒฉแƒ•แƒ”แƒœแƒ แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ).

Linux-แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒฌแƒแƒ›แƒจแƒ˜ 1.2 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ JSON แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒšแƒแƒ“

แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ:

  • Libreactor แƒ™แƒแƒ“แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ. แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ“แƒ R18 แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ Techempower-แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ CPU แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ— (แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒ“แƒ แƒ“แƒแƒแƒฉแƒฅแƒแƒ แƒแƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ 25-27%), GCC-แƒจแƒ˜ แƒแƒฌแƒงแƒแƒ‘แƒ โ€œ-O3โ€ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜แƒ—. (แƒ›แƒแƒขแƒ”แƒ‘แƒ 5-10%) แƒ“แƒ "-แƒ›แƒแƒ แƒขแƒ˜-แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜" (5-10%), แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก/แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ–แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ recv/แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— (5-10%) แƒ“แƒ แƒ–แƒ”แƒ“แƒœแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ pthread-แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก (2-3%). . แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ–แƒ แƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒงแƒ 55%, แƒฎแƒแƒšแƒ แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ 224k req/s-แƒ“แƒแƒœ 347k req/s-แƒ›แƒ“แƒ”.
  • แƒ’แƒแƒ›แƒแƒ แƒ—แƒ”แƒ— แƒ“แƒแƒชแƒ•แƒ แƒกแƒžแƒ”แƒ™แƒฃแƒšแƒแƒชแƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ. แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒแƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก โ€žnospectre_v1 nospectre_v2 pti=off mds=off tsx_async_abort=offโ€œ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ› แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒชแƒ แƒ’แƒแƒ–แƒแƒ แƒ“แƒแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ 28%-แƒ˜แƒ— แƒ“แƒ แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ 347k req/s-แƒ“แƒแƒœ 446k req/s-แƒ›แƒ“แƒ”. แƒชแƒแƒšแƒ™แƒ”, แƒ–แƒ แƒ“แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ“แƒแƒœ โ€žnospectre_v1โ€œ (แƒ“แƒแƒชแƒ•แƒ Spectre v1 + SWAPGS-แƒ˜แƒกแƒ’แƒแƒœ) แƒ˜แƒงแƒ 1-2%, โ€žnospectre_v2โ€œ (แƒ“แƒแƒชแƒ•แƒ Spectre v2-แƒ˜แƒกแƒ’แƒแƒœ) - 15-20%, โ€žpti=offโ€œ (Spectre v3/Meltdown) - 6%, "mds=off tsx_async_abort=off" (MDS/Zombieload แƒ“แƒ TSX แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒจแƒ”แƒฌแƒงแƒ•แƒ”แƒขแƒ) - 6%. L1TF/Foreshadow (l1tf=flush), iTLB multihit, Speculative Store Bypass แƒ“แƒ SRBDS แƒ—แƒแƒ•แƒ“แƒแƒกแƒฎแƒ›แƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ แƒฉแƒ แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜, แƒ แƒแƒช แƒ’แƒแƒ•แƒšแƒ”แƒœแƒแƒก แƒแƒ  แƒ›แƒแƒแƒฎแƒ“แƒ”แƒœแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ  แƒ˜แƒ™แƒ•แƒ”แƒ—แƒ”แƒ‘แƒ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒกแƒ—แƒแƒœ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ แƒ˜ KVM-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ“แƒ แƒกแƒฎแƒ•แƒ CPU แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜).
  • แƒแƒฃแƒ“แƒ˜แƒขแƒ˜แƒกแƒ แƒ“แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ•แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก "auditctl -a never,task" แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒแƒคแƒชแƒ˜แƒ˜แƒก "--security-opt seccomp=unconfined" แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ–แƒ แƒ“แƒ แƒ˜แƒงแƒ 11%, แƒฎแƒแƒšแƒ แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ 446k req/s-แƒ“แƒแƒœ 495k req/s-แƒ›แƒ“แƒ”.
  • iptables/netfilter-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ—. Firewall-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ˜แƒ“แƒ”แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒ˜แƒงแƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ  แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒแƒจแƒ˜, แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒžแƒ แƒแƒคแƒ˜แƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒ—, แƒ•แƒ˜แƒ›แƒกแƒฏแƒ”แƒšแƒ”แƒ‘แƒ—, แƒ แƒแƒ› nf_hook_slow แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒแƒ˜แƒก 18% แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ. แƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ› nftables แƒฃแƒคแƒ แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ•แƒ˜แƒ“แƒ แƒ” iptables, แƒ›แƒแƒ’แƒ แƒแƒ› Amazon Linux แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒก iptables-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก. iptable-แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ–แƒ แƒ“แƒ แƒ˜แƒงแƒ 22%, แƒฎแƒแƒšแƒ แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ 495k req/s-แƒ“แƒแƒœ 603k req/s-แƒ›แƒ“แƒ”.
  • แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ แƒ“แƒแƒ›แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ CPU แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒฅแƒ”แƒจแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒšแƒแƒ“. แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒ แƒแƒ’แƒแƒ แƒช CPU-แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒ—แƒแƒœ (CPU Pinning), แƒแƒกแƒ”แƒ•แƒ” แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ“แƒแƒ›แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก (Receive Side Scaling) แƒ“แƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ–แƒ” (Receive Side Scaling). แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, irqbalance แƒ’แƒแƒ—แƒ˜แƒจแƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ“แƒ แƒ แƒ˜แƒ’แƒ—แƒแƒœ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ CPU-แƒกแƒ—แƒแƒœ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒ˜แƒงแƒ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ /proc/irq/$IRQ/smp_affinity_list-แƒจแƒ˜. แƒ˜แƒ›แƒแƒ•แƒ” CPU แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒšแƒ˜แƒ‘แƒ แƒแƒฅแƒขแƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒกแƒ แƒ“แƒ แƒจแƒ”แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ แƒ˜แƒ’แƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒšแƒแƒ“, แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ BPF แƒ“แƒแƒ›แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก SO_ATTACH_REUSEPORT_CBPF แƒ“แƒ แƒแƒจแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ’แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒก CPU-แƒกแƒ—แƒแƒœ แƒ“แƒแƒกแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“, แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ /sys/class/net/eth0/queues/tx- แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ. /xps_cpus. แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ–แƒ แƒ“แƒ แƒ˜แƒงแƒ 38%, แƒฎแƒแƒšแƒ แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ 603k req/s-แƒ“แƒแƒœ 834k req/s-แƒ›แƒ“แƒ”.
  • แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒžแƒแƒšแƒ˜แƒœแƒ’แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ. แƒแƒ“แƒแƒžแƒขแƒแƒชแƒ˜แƒฃแƒ แƒ˜-rx แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜แƒก แƒฉแƒแƒ แƒ—แƒ•แƒ ENA-แƒก แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒจแƒ˜ แƒ“แƒ sysctl net.core.busy_read แƒ›แƒแƒœแƒ˜แƒžแƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒแƒ› แƒ’แƒแƒ–แƒแƒ แƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ 28%-แƒ˜แƒ— (แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ 834k req/s-แƒ“แƒแƒœ 1.06M req/s-แƒ›แƒ“แƒ”, แƒฎแƒแƒšแƒ แƒจแƒ”แƒงแƒแƒ•แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ 361ฮผs-แƒ“แƒแƒœ 292ฮผs-แƒ›แƒ“แƒ”).
  • แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ, แƒ แƒแƒช แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒกแƒขแƒ”แƒ™แƒจแƒ˜ แƒแƒ แƒแƒกแƒแƒญแƒ˜แƒ แƒ แƒ‘แƒšแƒแƒ™แƒ˜แƒ แƒ”แƒ‘แƒแƒก. dhclient-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒแƒ› แƒ“แƒ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ› แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก 6%-แƒ˜แƒแƒœแƒ˜ แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ 1.06M req/s-แƒ“แƒแƒœ 1.12M req/s-แƒ›แƒ“แƒ”. แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜, แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒช dhclient แƒ’แƒแƒ•แƒšแƒ”แƒœแƒแƒก แƒแƒฎแƒ“แƒ”แƒœแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ–แƒ”, แƒแƒ แƒ˜แƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜ แƒœแƒ”แƒ“แƒšแƒ”แƒฃแƒšแƒ˜ แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.
  • Fighting Spin Lock. แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒกแƒขแƒ”แƒ™แƒ˜แƒก โ€žnoqueueโ€œ แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒแƒ› sysctl โ€žnet.core.default_qdisc=noqueueโ€œ แƒ“แƒ โ€žtc qdisc แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก dev eth0 root mqโ€œ-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก 2%-แƒ˜แƒ— แƒ–แƒ แƒ“แƒ แƒ“แƒ แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ 1.12M req/s-แƒ“แƒแƒœ 1.15M-แƒ›แƒ“แƒ”. แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ/แƒฌแƒ›.
  • แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ GRO (Generic Receive Offload) แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ— โ€žethtool -K eth0 gro offโ€œ แƒ“แƒ แƒ™แƒฃแƒ‘แƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒฃแƒšแƒแƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ reno-แƒ˜แƒ— sysctl โ€žnet.ipv4.tcp_congestion_control=renoโ€œ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒฃแƒšแƒแƒ‘แƒ˜แƒก แƒ–แƒ แƒ“แƒ แƒ˜แƒงแƒ 4%. แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ 1.15 แƒ› แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ—/แƒฌแƒ›-แƒ“แƒแƒœ 1.2 แƒ› แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ—/แƒฌแƒ›-แƒ›แƒ“แƒ”.

แƒ’แƒแƒ แƒ“แƒ แƒ˜แƒ› แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ, แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ›แƒแƒช แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒ–แƒ แƒ“แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ แƒแƒ แƒแƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜:

  • แƒชแƒแƒš-แƒชแƒแƒšแƒ™แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒšแƒ˜แƒ‘แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ. Writv-แƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒแƒ›, epoll_wait-แƒจแƒ˜ maxevents-แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒแƒ› แƒ“แƒ GCC แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ—แƒแƒœ แƒ“แƒ แƒ“แƒ แƒแƒจแƒ”แƒ‘แƒ—แƒแƒœ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒแƒ  แƒ›แƒแƒ˜แƒขแƒแƒœแƒ (แƒ”แƒคแƒ”แƒฅแƒขแƒ˜ แƒจแƒ”แƒกแƒแƒ›แƒฉแƒœแƒ”แƒ•แƒ˜ แƒ˜แƒงแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ โ€ž-O3โ€œ แƒ“แƒ โ€ž-march-nativeโ€œ แƒ“แƒ แƒแƒจแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก).
  • Linux-แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ 4.19 แƒ“แƒ 5.4 แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ–แƒ”, SCHED_FIFO แƒ“แƒ SCHED_RR แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, sysctl kernel.sched_min_granularity_ns, kernel.sched_wakeup_granularity_ns, transparent_hugepages=never, skew_tick=1 แƒ“แƒ c-แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒžแƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒ.
  • ENA-แƒก แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒจแƒ˜ Offload แƒ แƒ”แƒŸแƒ˜แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒ แƒ—แƒ•แƒแƒ› (แƒกแƒ”แƒ’แƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ, แƒกแƒ™แƒแƒขแƒ”แƒ -แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ, rx/tx แƒ’แƒแƒ›แƒจแƒ•แƒ”แƒ‘แƒ˜ แƒฏแƒแƒ›แƒ˜), แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒแƒ› โ€œ-O3โ€ แƒ“แƒ แƒแƒจแƒ˜แƒ— แƒ“แƒ ena.rx_queue_size แƒ“แƒ ena.force_large_llq_header แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒแƒ แƒแƒœแƒแƒ˜แƒ แƒ˜ แƒ”แƒคแƒ”แƒฅแƒขแƒ˜ แƒแƒ  แƒ›แƒแƒฐแƒงแƒแƒšแƒ˜แƒ.
  • แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ“แƒแƒกแƒขแƒแƒจแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ›แƒ แƒแƒ  แƒ’แƒแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ:
    • แƒ’แƒแƒ›แƒแƒ แƒ—แƒ”แƒ— IPv6: ipv6.disable=1
    • แƒ’แƒแƒ›แƒแƒ แƒ—แƒ”แƒ— VLAN: modprobe -rv 8021q
    • แƒ’แƒแƒ›แƒแƒ แƒ—แƒ”แƒ— แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ
      • net.ipv4.conf.all.rp_filter=0
      • net.ipv4.conf.eth0.rp_filter=0
      • net.ipv4.conf.all.accept_local=1 (แƒฃแƒแƒ แƒงแƒแƒคแƒ˜แƒ—แƒ˜ แƒ”แƒคแƒ”แƒฅแƒขแƒ˜)
    • net.ipv4.tcp_sack = 0
    • net.ipv4.tcp_dsack=0
    • net.ipv4.tcp_mem/tcp_wmem/tcp_rmem
    • net.core.netdev_budget
    • net.core.dev_weight
    • net.core.netdev_max_backlog
    • net.ipv4.tcp_slow_start_after_idle=0
    • net.ipv4.tcp_moderate_rcvbuf=0
    • net.ipv4.tcp_timestamps=0
    • net.ipv4.tcp_low_latency = 1
    • SO_PRIORITY
    • TCP_NODELAY

    แƒฌแƒงแƒแƒ แƒ: opennet.ru

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ