ืึธืคึผื˜ื™ืžื™ื–ื™ื ื’ ืœื™ื ื•ืงืก ืฆื• ืฉืขืคึผืŸ 1.2 ืžื™ืœื™ืึธืŸ JSON ืจื™ืงื•ื•ืขืก ืคึผืขืจ ืกืขืงื•ื ื“ืข

ื ื“ื™ื˜ื™ื™ืœื“ ืคื™ืจืขืจ ืื™ื– ืืจื•ื™ืก ืื•ื™ืฃ ื˜ื•ื ื™ื ื’ ื“ื™ ืœื™ื ื•ืงืก ืกื•ื•ื™ื•ื•ืข ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ืžืึทืงืกื™ืžื•ื ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึฟืึทืจ ืคึผืจืึทืกืขืกื™ื ื’ ื”ื˜ื˜ืคึผ ืจื™ืงื•ื•ืขืก. ื“ื™ ืคืืจื’ืขืœื™ื™ื’ื˜ ืžืขื˜ื”ืึธื“ืก ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื“ื™ JSON ืคึผืจืึทืกืขืกืขืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืœื™ื‘ืจืขืึทืงื˜ืึธืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ืŸ ื“ืขืจ Amazon EC2 ืกื•ื•ื™ื•ื•ืข (4 vCPU) ืคึฟื•ืŸ 224 ื˜ื•ื™ื–ื ื˜ ืึทืคึผื™ ืจื™ืงื•ื•ืขืก ืคึผืขืจ ืกืขืงื•ื ื“ืข ืžื™ื˜ ื ืึธืจืžืึทืœ ืกืขื˜ื˜ื™ื ื’ืก ืคื•ืŸ Amazon Linux 2 ืžื™ื˜ ืงืขืจืŸ 4.14 ืฆื• 1.2 ืžื™ืœื™ืึธืŸ ืจื™ืงื•ื•ืขืก ืคึผืขืจ ืกืขืงื•ื ื“ืข. ืจื’ืข ื ืึธืš ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ (ืึท ืคืึทืจื’ืจืขืกืขืจืŸ ืคื•ืŸ 436%), ืื•ืŸ ืื•ื™ืš ื’ืขืคึฟื™ืจื˜ ืฆื• ืึท ืจืขื“ื•ืงืฆื™ืข ืื™ืŸ ื“ื™ืœื™ื™ื– ืื™ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืจื™ืงื•ื•ืขืก ืžื™ื˜ 79%. ื“ื™ ืคืืจื’ืขืœื™ื™ื’ื˜ ืžืขื˜ื”ืึธื“ืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืกืคึผืขืฆื™ืคื™ืฉ ืคึฟืึทืจ ืœื™ื‘ืขืจืึทืงื˜ืึธืจ ืื•ืŸ ืึทืจื‘ืขื˜ ื•ื•ืขืŸ ื ื™ืฆืŸ ืื ื“ืขืจืข ื”ื˜ื˜ืคึผ ืกืขืจื•ื•ืขืจืก, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ nginx, Actix, Netty ืื•ืŸ Node.js (ืœื™ื‘ืจืขืึทืงื˜ืึธืจ ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื˜ืขืกืฅ ื•ื•ื™ื™ึทืœ ื“ื™ ืœื™ื™ื–ื•ื ื’ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืขืก ื’ืขื•ื•ื™ื–ืŸ ื‘ืขืกืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’).

ืึธืคึผื˜ื™ืžื™ื–ื™ื ื’ ืœื™ื ื•ืงืก ืฆื• ืฉืขืคึผืŸ 1.2 ืžื™ืœื™ืึธืŸ JSON ืจื™ืงื•ื•ืขืก ืคึผืขืจ ืกืขืงื•ื ื“ืข

ื™ืงืขืจื“ื™ืง ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก:

  • ืึธืคึผื˜ื™ืžื™ื–ื™ื ื’ ืœื™ื‘ืขืจืึทืงื˜ืึธืจ ืงืึธื“. ื“ื™ R18 ืึธืคึผืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ Techempower ื™ื ื•ื•ืขื ื˜ืึทืจ ืื™ื– ื’ืขื ื™ืฆื˜ ื•ื•ื™ ืึท ื™ืงืขืจ, ื•ื•ืึธืก ืื™ื– ื™ืžืคึผืจื•ื•ื•ื“ ื“ื•ืจืš ืจื™ืžื•ื•ื•ื™ื ื’ ืงืึธื“ ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืงืคึผื• ืงืึธืจืขืก (ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืขืจืœื•ื™ื‘ื˜ ืฆื• ืคืึทืจื’ื™ื›ืขืจืŸ ื“ื™ ืึทืจื‘ืขื˜ ืžื™ื˜ 25-27%), ืึทืกืขืžื‘ืึทืœ ืื™ืŸ GCC ืžื™ื˜ ื“ื™ "-O3" ืึธืคึผืฆื™ืขืก (ืึท ืคืึทืจื’ืจืขืกืขืจืŸ ืคื•ืŸ 5-10%) ืื•ืŸ "-ืžืึทืจืฅ-ื’ืขื‘ื•ื™ืจืŸ" (5-10%), ืจื™ืคึผืœื™ื™ืกื™ื ื’ ืœื™ื™ืขื ืขืŸ / ืฉืจื™ื™ึทื‘ืŸ ืงืึทืœืœืก ืžื™ื˜ ืจืขื•ื• / ืฉื™ืงืŸ (5-10%) ืื•ืŸ ืจื™ื“ื•ืกื™ื ื’ ืึธื•ื•ื•ืขืจื›ืขื“ ื•ื•ืขืŸ ื ื™ืฆืŸ ืคึผื˜ื”ืจืขืึทื“ืก (2-3%) . ื“ื™ ืงื•ื™ืœืขืœื“ื™ืง ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคืึทืจื’ืจืขืกืขืจืŸ ื ืึธืš ืงืึธื“ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืื™ื– ื’ืขื•ื•ืขืŸ 55%, ืื•ืŸ ื˜ืจื•ืคึผื•ื˜ ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 224 ืง ืจืขืง / s ืฆื• 347 ืง ืจืขืง / s.
  • ื“ื™ืกื™ื™ื‘ืึทืœ ืฉื•ืฅ ืงืขื’ืŸ ืกืคึผืขืงื•ืœืึทื˜ื™ื•ื•ืข ื“ื•ืจื›ืคื™ืจื•ื ื’ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื–. ื ื™ืฆืŸ ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก "nospectre_v1 nospectre_v2 pti=off mds=off tsx_async_abort=off" ื•ื•ืขืŸ ืœืึธื•ื“ื™ื ื’ ื“ื™ ืงืขืจืŸ ืขืจืœื•ื™ื‘ื˜ ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืžื™ื˜ 28%, ืื•ืŸ ื˜ืจื•ืคึผื•ื˜ ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 347 ืง ืจืขืง / s ืฆื• 446 ืง ืจืขืง / s. ืกืขืคึผืขืจืึทื˜ืœื™, ื“ื™ ืคืึทืจื’ืจืขืกืขืจืŸ ืคื•ืŸ ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจ "ื ืึธืกืคึผืขืงื˜ืจืข_ื•ื•1" (ืฉื•ืฅ ืคึฟื•ืŸ ืกืคึผืขืงื˜ืขืจ ื•ื•1 + ืกื•ื•ืึทืคึผืก) ืื™ื– ื’ืขื•ื•ืขืŸ 1-2%, "ื ืึธืกืคึผืขืงื˜ืจืข_ื•ื•2" (ืฉื•ืฅ ืคึฟื•ืŸ ืกืคึผืขืงื˜ืขืจ ื•ื•2) - 15-20%, "ืคึผื˜ื™ = ืึทื•ื•ืขืง" (ืกืคึผืขืงื˜ืจืข ื•ื•3 / ืžืขืœื˜ื“ืึธื•ื•ืŸ) - 6%, "mds=off tsx_async_abort=off" (MDS/Zombieload ืื•ืŸ TSX Asynchronous Abort) - 6%. ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก ืคึฟืึทืจ ืฉื•ืฅ ืงืขื’ืŸ L1TF/Foreshadow (l1tf=flush), iTLB multihit, ืกืคึผืขืงื•ืœืึทื˜ื™ื•ื•ืข ืกื˜ืึธืจ ื‘ื™ื™ืคึผืึทืกืก ืื•ืŸ SRBDS ืื ืคืืœืŸ ื–ืขื ืขืŸ ืœื™ื ืงืก ืึทื ื˜ืฉื™ื™ื ื“ื–ืฉื“, ื•ื•ืึธืก ื”ืื˜ ื ื™ืฉื˜ ื•ื•ื™ืจืงืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื–ื™ื ื˜ ื–ื™ื™ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื™ื ื˜ืขืจืกืขืงื˜ื™ื“ ืžื™ื˜ ื“ื™ ื˜ืขืกื˜ืขื“ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ (ืœืžืฉืœ, ืกืคึผืขืฆื™ืคื™ืฉ ืฆื• KVM, ื ืขืกื˜ืขื“ ื•ื•ื™ืจื˜ื•ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืื•ืŸ ืื ื“ืขืจืข ืงืคึผื• ืžืึธื“ืขืœืก).
  • ื“ื™ืกื™ื™ื‘ืœื™ื ื’ ืึทื“ืึทื˜ื™ื ื’ ืื•ืŸ ืกื™ืกื˜ืขื ืจื•ืคืŸ ื‘ืœืึทืงื™ื ื’ ืžืขืงืึทื ื™ื–ืึทืžื– ื ื™ืฆืŸ ื“ื™ "auditctl -a never,task" ื‘ืึทืคึฟืขืœ ืื•ืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ "--security-opt secomp=unconfined" ืึธืคึผืฆื™ืข ื•ื•ืขืŸ ืกื˜ืึทืจื˜ื™ื ื’ ื“ื™ ื“ืึธืงืงืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ. ื“ื™ ืงื•ื™ืœืขืœื“ื™ืง ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ื– ื’ืขื•ื•ืขืŸ 11%, ืื•ืŸ ื˜ืจื•ืคึผื•ื˜ ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 446 ืง ืจืขืง / s ืฆื• 495 ืง ืจืขืง / s.
  • ื“ื™ืกื™ื™ื‘ืึทืœ ื™ืคึผื˜ืึทื‘ืœืขืก / ื ืขื˜ืคื™ืœื˜ืขืจ ื“ื•ืจืš ืึทื ืœืึธื•ื“ื™ื ื’ ื“ื™ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืงืขืจืŸ ืžืึทื“ื–ืฉื•ืœื–. ื“ืขืจ ื’ืขื“ืึทื ืง ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ื“ื™ ืคื™ื™ืจื•ื•ืึทืœ, ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืกืขืจื•ื•ืขืจ ืœื™ื™ื–ื•ื ื’, ืื™ื– ื’ืขื•ื•ืขืŸ ืคึผืจืึทืžืคึผื˜ื™ื“ ื“ื•ืจืš ืคึผืจืึธืคื™ืœื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜ืŸ, ืื•ื™ื‘ ืžืฉืคื˜ืŸ ื“ื•ืจืš ื•ื•ืึธืก ื“ื™ nf_hook_slow ืคึฟื•ื ืงืฆื™ืข ื’ืขื ื•ืžืขืŸ 18% ืคื•ืŸ ื“ื™ ืฆื™ื™ื˜ ืฆื• ื•ื™ืกืคื™ืจืŸ. ืขืก ืื™ื– ื‘ืืžืขืจืงื˜ ืึทื– nftables ืึทืจื‘ืขื˜ ืžืขืจ ื™ืคื™ืฉืึทื ื˜ืœื™ ื•ื•ื™ ื™ืคึผื˜ืึทื‘ืœืขืก, ืึธื‘ืขืจ ืึทืžืึทื–ืึธืŸ ืœื™ื ื•ืงืก ื”ืืœื˜ ืฆื• ื ื•ืฆืŸ ื™ืคึผื˜ืึทื‘ืœืขืก. ื ืึธืš ื“ื™ืกื™ื™ื‘ืึทืœื™ื ื’ ื™ืคึผื˜ืึทื‘ืœืขืก, ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ื– ื’ืขื•ื•ืขืŸ 22%, ืื•ืŸ ื“ื™ ื˜ืจื•ืคึผื•ื˜ ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 495 ืง ืจืขืง / s ืฆื• 603 ืง ืจืขืง / s.
  • ืจื™ื“ื•ืกื˜ ืžื™ื™ื’ืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื”ืึทื ื“ืœืขืจืก ืฆื•ื•ื™ืฉืŸ ืคืึทืจืฉื™ื“ืขื ืข ืงืคึผื• ืงืึธืจืขืก ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ื™ ืขืคืขืงื˜ื™ื•ื•ืงื™ื™ึทื˜ ืคื•ืŸ ืคึผืจืึทืกืขืกืขืจ ืงืึทืฉ ื ื•ืฆืŸ. ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ื‘ื™ื™ ื“ื™ ืžื“ืจื’ื” ืคื•ืŸ ื‘ื™ื™ื ื“ื™ื ื’ ืœื™ื‘ืขืจืึทืงื˜ืึธืจ ืคึผืจืึทืกืขืกืึทื– ืฆื• ืงืคึผื• ืงืึธืจืขืก (CPU Pinning) ืื•ืŸ ื“ื•ืจืš ืคึผื™ื ื™ื ื’ ืงืขืจืŸ ื ืขืฅ ื”ืึทื ื“ืœืขืจืก (ื‘ืึทืงื•ืžืขืŸ ืกื™ื™ื“ ืกืงื™ื™ืœื™ื ื’). ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, irqbalance ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜ ืื•ืŸ ืจื™ื™ ืึทืคื™ื ื™ื˜ื™ ืฆื• ื“ื™ ืงืคึผื• ืื™ื– ื‘ืคื™ืจื•ืฉ ื‘ืึทืฉื˜ื™ืžื˜ ืื™ืŸ /proc/irq/$IRQ/smp_affinity_list. ืฆื• ื ื•ืฆืŸ ื“ื™ ื–ืขืœื‘ืข ืงืคึผื• ื”ืึทืจืฅ ืฆื• ืคึผืจืึธืฆืขืก ื“ื™ ืœื™ื‘ืขืจืึทืงื˜ืึธืจ ืคึผืจืึธืฆืขืก ืื•ืŸ ื“ื™ ื ืขืฅ ืจื™ื™ ืคื•ืŸ ื™ื ืงืึทืžื™ื ื’ ืคึผืึทืงื™ืฅ, ืึท ืžื ื”ื’ BPF ื”ืึทื ื“ืœืขืจ ืื™ื– ื’ืขื ื™ืฆื˜, ืคืืจื‘ื•ื ื“ืŸ ื“ื•ืจืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ SO_ATTACH_REUSEPORT_CBPF ืคืึธืŸ ื•ื•ืขืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ื“ื™ ื›ืึธืœืขืœ. ืฆื• ื‘ื™ื ื“ืŸ ืงื™ื•ื– ืคื•ืŸ ืึทื•ื˜ื’ืึธื•ื™ื ื’ ืคึผืึทืงื™ืฅ ืฆื• ื“ื™ ืงืคึผื•, ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก /sys/class/net/eth0/queues/tx- ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื’ืขื‘ื™ื˜ืŸ /xps_cpus. ื“ื™ ืงื•ื™ืœืขืœื“ื™ืง ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ื– ื’ืขื•ื•ืขืŸ 38%, ืื•ืŸ ื˜ืจื•ืคึผื•ื˜ ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 603 ืง ืจืขืง / s ืฆื• 834 ืง ืจืขืง / s.
  • ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธืŸ ืคื•ืŸ ื™ื‘ืขืจืจื™ื™ึทืกืŸ ื”ืึทื ื“ืœื™ื ื’ ืื•ืŸ ื ื•ืฆืŸ ืคื•ืŸ ืคึผืึธืœืœื™ื ื’. ืขื ื™ื™ื‘ืึทืœื™ื ื’ ื“ื™ ืึทื“ืึทืคึผื˜ื™ื•ื•-ืจืงืก ืžืึธื“ืข ืื™ืŸ ื“ื™ ENA ืฉืึธืคืขืจ ืื•ืŸ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ื˜ื™ื ื’ sysctl net.core.busy_read ื’ืขื•ื•ืืงืกืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืžื™ื˜ 28% (ื“ื•ืจื›ืงื™ื™ื˜ ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 834 ืง ืจืขืง / s ืฆื• 1.06 ื ืจืขืง / s, ืื•ืŸ ืœื™ื™ื˜ืึทื ืกื™ ื“ื™ืงืจื™ืกื˜ ืคื•ืŸ 361ฮผs ืฆื• 292ฮผs).
  • ื“ื™ืกื™ื™ื‘ืึทืœื™ื ื’ ืกื™ืกื˜ืขื ื‘ืึทื“ื™ื ื•ื ื’ืก ื•ื•ืึธืก ืคื™ืจืŸ ืฆื• ื•ืžื ื™ื™ื˜ื™ืง ื‘ืœืึทืงื™ื ื’ ืื™ืŸ ื“ื™ ื ืขืฅ ืึธื ืœื™ื™ื’ืŸ. ื“ื™ืกื™ื™ื‘ืึทืœื™ื ื’ dhclient ืื•ืŸ ืžืึทื ื™ื•ืึทืœื™ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ IP ืึทื“ืจืขืก ืจื™ื–ืึทืœื˜ื™ื“ ืื™ืŸ ืึท 6% ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคืึทืจื’ืจืขืกืขืจืŸ ืื•ืŸ ื˜ืจื•ืคึผื•ื˜ ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 1.06M ืจืขืง / s ืฆื• 1.12M ืจืขืง / s. ื“ื™ ืกื™ื‘ื” ื•ื•ืึธืก dhclient ืึทืคืขืงืฅ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื™ื– ืื™ืŸ ืคืึทืจืงืขืจ ืึทื ืึทืœื™ืกื™ืก ื ื™ืฆืŸ ืึท ืจื•ื™ ื›ืึธืœืขืœ.
  • ืคื™ื™ื˜ื™ื ื’ ืกืคึผื™ืŸ ืœืึทืง. ื‘ืึทืฉื˜ื™ืžืขืŸ ื“ื™ ื ืขืฅ ืึธื ืœื™ื™ื’ืŸ ืฆื• "ื ืึธืงื•ื•ืขื•" ืžืึธื“ืข ื“ื•ืจืš ืกื™ืกืงื˜ืœ "net.core.default_qdisc=noqueue" ืื•ืŸ "tc qdisc replace dev eth0 root mq" ื’ืขืคื™ืจื˜ ืฆื• ืึท 2% ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคืึทืจื’ืจืขืกืขืจืŸ, ืื•ืŸ ื˜ืจื•ืคึผื•ื˜ ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 1.12M ืจืขืง / s ืฆื• 1.15M ืจืขืง / s.
  • ืœืขืฆื˜ืข ืžื™ื ืขืจื•ื•ืขืจื˜ื™ืง ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทื ื–, ืึทื–ืึท ื•ื•ื™ ื“ื™ืกื™ื™ื‘ืึทืœ GRO (ื’ืขื ืขืจื™ืง ื‘ืึทืงื•ืžืขืŸ ืึธืคืœืึธืึทื“) ืžื™ื˜ ื“ื™ ื‘ืึทืคึฟืขืœ "ethtool -K eth0 gro off" ืื•ืŸ ืจื™ืคึผืœื™ื™ืกื™ื ื’ ื“ื™ ืงื•ื‘ื™ืง ืงืึทื ื“ื–ืฉืขืกื˜ืฉืึทืŸ ืงืึธื ื˜ืจืึธืœ ืึทืœื’ืขืจื™ื“ืึทื ืžื™ื˜ ืจืขื ืึธ ื ื™ืฆืŸ sysctl "net.ipv4.tcp_congestion_control=reno". ื“ื™ ืงื•ื™ืœืขืœื“ื™ืง ืคึผืจืึธื•ื“ืึทืงื˜ื™ื•ื•ื™ื˜ื™ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ื– ื’ืขื•ื•ืขืŸ 4%. ื“ื™ ื˜ืจื•ืคึผื•ื˜ ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 1.15M ืจืขืง / s ืฆื• 1.2M ืจืขืง / s.

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื’ืขืืจื‘ืขื˜, ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื•ื™ืš ื“ื™ืกืงื•ื˜ื™ืจื˜ ืžืขื˜ื”ืึธื“ืก ื•ื•ืึธืก ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื’ืขืคึฟื™ืจื˜ ืฆื• ื“ืขืจ ื“ืขืจื•ื•ืึทืจื˜ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคืึทืจื’ืจืขืกืขืจืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ืคืืœื’ืขื ื“ืข ืื™ื– ื’ืขื•ื•ืขืŸ ื™ื ื™ืคืขืงื˜ื™ื•ื•:

  • ืคืœื™ืกื ื“ื™ืง ืœื™ื‘ืขืจืึทืงื˜ืึธืจ ืกืขืคึผืขืจืึทื˜ืœื™ ื”ืื˜ ื ื™ืฉื˜ ืึทื ื“ืขืจืฉ ืื™ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืคืœื™ืกื ื“ื™ืง ืขืก ืื™ืŸ ืึท ืงืึทื ื˜ื™ื™ื ืขืจ. ืจื™ืคึผืœื™ื™ืกื™ื ื’ Writev ืžื™ื˜ ืฉื™ืงืŸ, ื™ื ืงืจื™ืกื™ื ื’ ืžืึทืงืกื™ืžื•ื ื’ืขืฉืขืขื ื™ืฉืŸ ืื™ืŸ epoll_wait ืื•ืŸ ืขืงืกืคึผืขืจื™ืžืขื ื˜ื™ื ื’ ืžื™ื˜ GCC ื•ื•ืขืจืกื™ืขืก ืื•ืŸ ืคืœืึทื’ืก ื”ืื˜ ืงื™ื™ืŸ ื•ื•ื™ืจืงื•ื ื’ (ื“ื™ ื•ื•ื™ืจืงื•ื ื’ ืื™ื– ื‘ืืžืขืจืงื˜ ื‘ืœื•ื™ื– ืคึฟืึทืจ ื“ื™ "-O3" ืื•ืŸ "-ืžืึทืจืฅ-ื’ืขื‘ื•ื™ืจืŸ" ืคืœืึทื’ืก).
  • ืึทืคึผื’ืจื™ื™ื“ื™ื ื’ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ ืฆื• ื•ื•ืขืจืกื™ืขืก 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 and clock has notsource affected performance.
  • ืื™ืŸ ื“ื™ ENA ืฉืึธืคืขืจ, ื’ืขื‘ืŸ ืึธืคืœืึธืึทื“ ืžืึธื“ืขืก (ืกืขื’ืžืขื ื˜ืึทื˜ื™ืึธืŸ, ืฆืขื•ื•ืึธืจืคืŸ-ืงืœื™ื™ึทื‘ืŸ, ืจืงืก / ื˜ืงืก ื˜ืฉืขืงืงืกื•ื), ื‘ื ื™ืŸ ืžื™ื˜ ื“ื™ "-O3" ืคืึธืŸ, ืื•ืŸ ื ื™ืฆืŸ ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก ena.rx_queue_size ืื•ืŸ ena.force_large_llq_header ื”ืื˜ ืงื™ื™ืŸ ื•ื•ื™ืจืงื•ื ื’.
  • ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ื ืขืฅ ืึธื ืœื™ื™ื’ืŸ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ืคึฟืึทืจื‘ืขืกืขืจืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’:
    • ื“ื™ืกื™ื™ื‘ืึทืœ IPv6: ipv6.disable=1
    • ื“ื™ืกื™ื™ื‘ืึทืœ ื•ื•ืœืึทืŸ: 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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’