เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป Linux เดธเต†เด•เตเด•เตปเดกเดฟเตฝ 1.2 เดฆเดถเดฒเด•เตเดทเด‚ JSON เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเตป

เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดŸเตเดฏเต‚เตบ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเดฟเดถเดฆเดฎเดพเดฏ เด’เดฐเต เด—เตˆเดกเต เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต. Linux HTTP เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เดชเดฐเดฎเดพเดตเดงเดฟ เดชเตเดฐเด•เดŸเดจเด‚ เด•เตˆเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต. เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด†เดฎเดธเต‹เตบ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เต เด•เต€เดดเดฟเตฝ, เด†เดฎเดธเต‹เตบ EC2 เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ (4 vCPU-เด•เตพ) เดฒเดฟเดฌเตเดฐเต†เดฏเดพเด•เตเดŸเตผ เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ JSON เดชเดพเดดเตโ€Œเดธเดฑเดฟเดจเตเดฑเต† เดชเตเดฐเด•เดŸเดจเด‚ เดธเต†เด•เตเด•เตปเดกเดฟเตฝ 224 API เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดฐเต€เดคเดฟเด•เตพ เดžเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเดšเตเดšเต. Linux เด•เต‡เตผเดฃเตฝ 4.14 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดณเตเดณ 2, เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเดจเตเดถเต‡เดทเด‚ เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต เดธเต†เด•เตเด•เตปเดกเดฟเตฝ 1.2 เดฆเดถเดฒเด•เตเดทเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเดพเดฏเดฟ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเต (436% เดตเตผเดฆเตเดงเดจเดตเต), เด•เต‚เดŸเดพเดคเต† เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดฒเต‡เดฑเตเดฑเตปเดธเดฟ 79% เด•เตเดฑเดšเตเดšเต. เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดฐเต€เดคเดฟเด•เตพ เดฒเดฟเดฌเตเดฐเต‡เด•เตเดŸเดฑเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเตเดณเตเดณเดคเดฒเตเดฒ, เด•เต‚เดŸเดพเดคเต† nginx, Actix, Netty, Node.js เดŽเดจเตเดจเดฟเดตเดฏเตเตพเดชเตเดชเต†เดŸเต† เดฎเดฑเตเดฑเต HTTP เดธเต†เตผเดตเดฑเตเด•เดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต (เดชเดฐเต€เด•เตเดทเดฃเด™เตเด™เดณเดฟเตฝ เดฒเดฟเดฌเตเดฐเต‡เด•เตเดŸเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เด•เดพเดฐเดฃเด‚ เด…เดคเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเด‚ เดฎเดฟเด•เดšเตเดš เดชเตเดฐเด•เดŸเดจเด‚ เด•เดพเดดเตเดšเดตเดšเตเดšเต).

เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป Linux เดธเต†เด•เตเด•เตปเดกเดฟเตฝ 1.2 เดฆเดถเดฒเด•เตเดทเด‚ JSON เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเตป

เด…เดŸเดฟเดธเตเดฅเดพเดจ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเดจเตเด•เตพ:

  • เดฒเดฟเดฌเตเดฐเด•เตเดฑเตเดฑเตผ เด•เต‹เดกเต เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดŸเต†เด•เตเด‚เดชเดตเตผ เด•เดฟเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ R18 เด“เดชเตเดทเตป เด’เดฐเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš CPU เด•เต‹เดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เด•เต‹เดกเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดคเตเด•เตŠเดฃเตเดŸเต เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฟ (เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป 25-27% เดตเดฐเต† เดœเต‹เดฒเดฟ เดตเต‡เด—เดคเตเดคเดฟเดฒเดพเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเดšเตเดšเต), "-O3" เด“เดชเตโ€Œเดทเดจเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดœเดฟเดธเดฟเดธเดฟเดฏเดฟเตฝ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. (5-10% เดตเตผเดฆเตเดงเดจเดตเต ) เด•เต‚เดŸเดพเดคเต† "-เดฎเดพเตผเดšเตเดšเต-เดจเต‡เดฑเตเดฑเต€เดตเต" (5-10%), เดฑเต€เดกเต/เดฑเตˆเดฑเตเดฑเต เด•เต‹เดณเตเด•เตพเด•เตเด•เต เดชเด•เดฐเด‚ recv/send (5-10%) เด•เต‚เดŸเดพเดคเต† pthreads เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด“เดตเตผเดนเต†เดกเต เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเต (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 Asynchronous Abort) - 6%. L1TF/Foreshadow เด†เด•เตเดฐเดฎเดฃเด™เตเด™เตพ (l1tf=flush), iTLB เดฎเตพเดŸเตเดŸเดฟเดนเดฟเดฑเตเดฑเต, เดธเตโ€Œเดชเต†เด•เตเด•เตเดฒเต‡เดฑเตเดฑเต€เดตเต เดธเตเดฑเตเดฑเต‹เตผ เดฌเตˆเดชเดพเดธเต, SRBDS เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เต†เดคเดฟเดฐเดพเดฏ เดธเด‚เดฐเด•เตเดทเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดชเตเดฐเด•เดŸเดจเดคเตเดคเต† เดฌเดพเดงเดฟเดšเตเดšเดฟเดฒเตเดฒ, เด…เดต เดชเดฐเต€เด•เตเดทเดฟเดšเตเดš เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฎเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เดพเดคเตเดคเดคเดฟเดจเดพเตฝ เด…เดต เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต† เดคเตเดŸเตผเดจเตเดจเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด…เดต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸเดฎเดพเดฃเต เด•เต†เดตเดฟเดŽเด‚, เดจเต†เดธเตเดฑเตเดฑเดกเต เดตเต†เตผเดšเตเดตเดฒเตˆเดธเต‡เดทเดจเตเด‚ เดฎเดฑเตเดฑเต เดธเดฟเดชเดฟเดฏเต เดฎเต‹เดกเดฒเตเด•เดณเตเด‚).
  • "auditctl -a never,task" เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด“เดกเดฟเดฑเตเดฑเดฟเด‚เด—เตเด‚ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดฌเตเดฒเต‹เด•เตเด•เดฟเด‚เด—เต เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด™เตเด™เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดกเต‹เด•เตเด•เตผ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ "--security-opt seccomp=unconfined" เด“เดชเตเดทเตป เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเตเดฐเด•เดŸเดจ เดตเตผเดฆเตเดงเดจเดตเต 11% เด†เดฏเดฟเดฐเตเดจเตเดจเต, เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต 446k req/s เตฝ เดจเดฟเดจเตเดจเต 495k req/s เด†เดฏเดฟ เดตเตผเดฆเตเดงเดฟเดšเตเดšเต.
  • เด…เดจเตเดฌเดจเตเดง เด•เต‡เตผเดฃเตฝ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เด…เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเตเด•เตŠเดฃเตเดŸเต iptables/netfilter เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดธเต†เตผเดตเตผ เดธเตŠเดฒเตเดฏเต‚เดทเดจเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเตเดค เด’เดฐเต เดซเดฏเตผเดตเดพเตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด• เดŽเดจเตเดจ เด†เดถเดฏเด‚ เดชเตเดฐเตŠเดซเตˆเดฒเดฟเด‚เด—เต เดซเดฒเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เด‰เดฃเตเดŸเดพเดฏเดคเต, เด‡เดคเต nf_hook_slow เดซเด‚เด—เตเดทเตป เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ 18% เดธเดฎเดฏเดตเตเด‚ เดšเต†เดฒเดตเดดเดฟเดšเตเดšเตเดตเต†เดจเตเดจเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต. iptables เดจเต†เด•เตเด•เดพเตพ nftables เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฃเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เดชเด•เตเดทเต‡ เด†เดฎเดธเต‹เดฃเดฟเตฝ. Linux iptables เดคเตเดŸเตผเดจเตเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. iptables เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดฟเดฏเดคเดฟเดจเตเดถเต‡เดทเด‚, เดชเตเดฐเด•เดŸเดจเด‚ 22% เดตเตผเดฆเตเดงเดฟเดšเตเดšเต, เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต 495k req/s เตฝ เดจเดฟเดจเตเดจเต 603k req/s เด†เดฏเดฟ เดตเตผเดฆเตเดงเดฟเดšเตเดšเต.
  • เดชเตเดฐเต‹เดธเดธเตเดธเตผ เด•เดพเดทเต† เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเตปเตเดฑเต† เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดค เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเดฟเดชเดฟเดฏเต เด•เต‹เดฑเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดนเดพเตปเดกเตโ€Œเดฒเดฑเตเด•เดณเตเดŸเต† เดฎเตˆเด—เตเดฐเต‡เดทเตป เด•เตเดฑเดšเตเดšเต. เดธเดฟเดชเดฟเดฏเต เด•เต‹เดฑเตเด•เตพ (เดธเดฟเดชเดฟเดฏเต เดชเดฟเตป เดšเต†เดฏเตเดฏเตฝ) เดฌเตˆเตปเดกเดฟเด‚เด—เต เดฒเดฟเดฌเตเดฐเต†เด•เตเดฑเตเดฑเตผ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเตเดŸเต† เดคเดฒเดคเตเดคเดฟเดฒเตเด‚ เด•เต‡เตผเดฃเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดนเดพเตปเดกเตโ€Œเดฒเดฑเตเด•เตพ เดชเดฟเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ (เดธเตˆเดกเต เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•) เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, irqbalance เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ CPU-เดฏเตเดฎเดพเดฏเตเดณเตเดณ เด•เตเดฏเต‚ เด…เดซเดฟเดจเดฟเดฑเตเดฑเดฟ /proc/irq/$IRQ/smp_affinity_list เดŽเดจเตเดจเดคเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต. เดฒเดฟเดฌเตเดฐเต†เด•เตโ€ŒเดŸเตผ เดชเตเดฐเต‹เดธเดธเตเด‚ เด‡เตปเด•เดฎเดฟเด‚เด—เต เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เดณเตเดŸเต† เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด•เตเดฏเต‚เดตเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต‡ เดธเดฟเดชเดฟเดฏเต เด•เต‹เตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดธเต‹เด•เตเด•เดฑเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ SO_ATTACH_REUSEPORT_CBPF เดซเตเดฒเดพเด—เต เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดš เด’เดฐเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค BPF เดนเดพเตปเดกเตโ€Œเดฒเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด”เดŸเตเดŸเตโ€Œเด—เต‹เดฏเดฟเด‚เด—เต เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เดณเตเดŸเต† เด•เตเดฏเต‚เด•เตพ เดธเดฟเดชเดฟเดฏเตเดตเดฟเดฒเต‡เด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, /sys/class/net/eth0/queues/tx- เดŽเดจเตเดจ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเดฟ. /xps_cpus. เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเตเดฐเด•เดŸเดจ เดตเตผเดฆเตเดงเดจเดตเต 38% เด†เดฏเดฟเดฐเตเดจเตเดจเต, เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต 603k req/s เตฝ เดจเดฟเดจเตเดจเต 834k req/s เด†เดฏเดฟ เดตเตผเดฆเตเดงเดฟเดšเตเดšเต.
  • เด‡เตปเตเดฑเดฑเดชเตเดฑเตเดฑเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดฒเดฟเตปเตเดฑเต†เดฏเตเด‚ เดชเต‹เดณเดฟเด‚เด—เดฟเตปเตเดฑเต† เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเตปเตเดฑเต†เดฏเตเด‚ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป. ENA เดกเตเดฐเตˆเดตเดฑเดฟเตฝ เด…เดกเดพเดชเตเดฑเตเดฑเต€เดตเต-rx เดฎเต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเตเด‚ 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 เดชเตเดฐเด•เดŸเดจเดคเตเดคเดฟเตฝ เดšเต†เดฒเตเดคเตเดคเตเดจเตเดจ เดธเตเดตเดพเดงเต€เดจเดคเตเดคเดฟเดจเต เด•เดพเดฐเดฃเด‚.
  • เดธเตเดชเดฟเตป เดฒเต‹เด•เตเด•เต เดชเต‹เดฐเดพเดŸเตเดŸเด‚. sysctl โ€œnet.core.default_qdisc=noqueueโ€, โ€œtc qdisc replace dev eth0 root mqโ€ เดŽเดจเตเดจเดฟเดต เดตเดดเดฟ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเตเดฑเตเดฑเดพเด•เตเด•เต โ€œnoqueueโ€ เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต 2% เดชเตเดฐเด•เดŸเดจ เดตเตผเดฆเตเดงเดจเดตเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเดฏเดฟ, เด•เต‚เดŸเดพเดคเต† เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต 1.12M req/s-เตฝ เดจเดฟเดจเตเดจเต 1.15M เด†เดฏเดฟ เดตเตผเดฆเตเดงเดฟเดšเตเดšเต. req/s.
  • "ethtool -K eth0 gro off" เดŽเดจเตเดจ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต GRO (Generic Receive Offload) เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเตเด‚ sysctl "net.ipv4.tcp_congestion_control=reno" เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต reno เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฏเต‚เดฌเดฟเด•เต เด•เตบเดœเดทเตป เด•เตบเดŸเตเดฐเต‹เตพ เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดชเต‹เดฒเตเดณเตเดณ เด…เดตเดธเดพเดจ เดšเต†เดฑเดฟเดฏ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเดจเตเด•เตพ. เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เด‰เตฝเดชเตเดชเดพเดฆเดจเด•เตเดทเดฎเดค 4% เด†เดฃเต. เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต 1.15M req/s-เตฝ เดจเดฟเดจเตเดจเต 1.2M req/s เด†เดฏเดฟ เดตเตผเดฆเตเดงเดฟเดšเตเดšเต.

เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดš เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเดจเตเด•เตพเด•เตเด•เต เดชเตเดฑเดฎเต‡, เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดš เดชเตเดฐเด•เดŸเดจ เดตเตผเดฆเตเดงเดจเดตเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เดพเดคเตเดค เดฐเต€เดคเดฟเด•เดณเตเด‚ เดฒเต‡เด–เดจเด‚ เดšเตผเดšเตเดšเดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดซเดฒเดชเตเดฐเดฆเดฎเดฒเตเดฒเต†เดจเตเดจเต เดคเต†เดณเดฟเดžเตเดžเต:

  • เด’เดฐเต เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดคเตเดฏเต‡เด•เดฎเดพเดฏเดฟ เดฒเดฟเดฌเตเดฐเต†เด•เตโ€ŒเดŸเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเตเดฐเด•เดŸเดจเดคเตเดคเดฟเตฝ เดตเตเดฏเดคเตเดฏเดพเดธเดชเตเดชเต†เดŸเตเดŸเดฟเดฒเตเดฒ. เดฑเตˆเดฑเตเดฑเดฟเดจเต† เดชเด•เดฐเด‚ เด…เดฏเด•เตเด•เตเด•, 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, clocksource=tsc เดŽเดจเตเดจเดฟเดต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • ENA เดกเตเดฐเตˆเดตเดฑเดฟเตฝ, เด“เดซเตโ€Œเดฒเต‹เดกเต เดฎเต‹เดกเตเด•เตพ (เดธเต†เด—เตโ€Œเดฎเต†เตปเตเดฑเต‡เดทเตป, เดธเตโ€Œเด•เดพเดฑเตเดฑเตผ-เด—เต†เดคเตผ, 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

DDoS เดชเดฐเดฟเดฐเด•เตเดทเดฏเตเดณเตเดณ เดธเตˆเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดตเดพเด™เตเด™เตเด•, VPS VDS เดธเต†เตผเดตเดฑเตเด•เตพ ๐Ÿ”ฅ DDoS เดชเดฐเดฟเดฐเด•เตเดท, VPS VDS เดธเต†เตผเดตเดฑเตเด•เตพ เด‰เดณเตเดณ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดตเต†เดฌเตโ€Œเดธเตˆเดฑเตเดฑเต เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดตเดพเด™เตเด™เต‚ | ProHoster