{"id":100221,"date":"2021-05-21T10:23:03","date_gmt":"2021-05-21T08:23:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu"},"modified":"2021-05-21T10:23:03","modified_gmt":"2021-05-21T08:23:03","slug":"optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","title":{"rendered":"Linuxi optimeerimine 1,2 miljoni JSON-p\u00e4ringu t\u00f6\u00f6tlemiseks sekundis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Avaldati \u00fcksikasjalik juhend Linuxi keskkonna timimise kohta, et saavutada maksimaalne HTTP p\u00e4ringute t\u00f6\u00f6tlemise tulemuslikkus. Pakutud meetodid v\u00f5imaldasid t\u00f5sta JSON-i t\u00f6\u00f6tleja j\u00f5udlust, mis p\u00f5hineb libreactor raamatukogul Amazon EC2 (4 vCPU) keskkonnas 224 000 API p\u00e4ringuni sekundis Amazon Linux 2 vaikeseadetega (kernel 4.14) 1,2 miljoni p\u00e4ringuni sekundis p\u00e4rast optimeerimist (t\u00f5us 436%), samuti v\u00e4hendada p\u00e4ringute t\u00f6\u00f6tlemise viivitusi 79%. Pakutud meetodid ei ole spetsiifilised libreactorile ja toimivad ka muude HTTP serveritega, sealhulgas nginx, Actix, Netty ja Node.js (libreactorit kasutati testides, kuna sellel p\u00f5hinev lahendus n\u00e4itas parimat j\u00f5udlust).      <center><img decoding=\"async\" alt=\"Linuxi optimeerimine 1,2 miljoni JSON-p\u00e4ringu t\u00f6\u00f6tlemiseks sekundis\" src=\"\/wp-content\/uploads\/2021\/05\/908fb8d92e84a3e7557af7f6c622298e.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Peamised optimeerimised:  <\/p>\n<ul>\n<li class=\"l\"> \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u0434\u0430 libreactor. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0431\u044b\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0432\u0430\u0440\u0438\u0430\u043d\u0442 R18 \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 Techempower, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0443\u043b\u0443\u0447\u0448\u0435\u043d \u043f\u0443\u0442\u0451\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u044f\u0434\u0435\u0440 CPU (\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430 25-27%), \u0441\u0431\u043e\u0440\u043a\u0438 \u0432 GCC \u0441 \u043e\u043f\u0446\u0438\u044f\u043c\u0438 &#171;-O3&#187; (\u043f\u0440\u0438\u0440\u043e\u0441\u0442 5-10%) \u0438 &#171;-march-native&#187; (5-10%), \u0437\u0430\u043c\u0435\u043d\u044b \u0432\u044b\u0437\u043e\u0432\u043e\u0432 read\/write \u043d\u0430 recv\/send (5-10%) \u0438 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438  pthreads (2-3%). \u041e\u0431\u0449\u0438\u0439 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b 55%, \u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u0430 \u0441 224k req\/s  \u0434\u043e 347k req\/s.\n<li class=\"l\"> \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u043f\u0435\u043a\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u044b\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u044f\u0434\u0440\u0430 &#171;nospectre_v1 nospectre_v2 pti=off mds=off tsx_async_abort=off&#187; \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430 28%, \u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u0430 \u0441 347k req\/s \u0434\u043e 446k req\/s. \u0412 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 &#171;nospectre_v1&#187; (\u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 Spectre v1 + SWAPGS) \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b 1-2%, &#171;nospectre_v2&#187; (\u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 Spectre v2) &#8212; 15-20%,   &#171;pti=off&#187; (Spectre v3\/Meltdown) &#8212; 6%, &#171;mds=off tsx_async_abort=off&#187; (MDS\/Zombieload \u0438 TSX Asynchronous Abort) &#8212; 6%. \u041e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u0430\u0442\u0430\u043a L1TF\/Foreshadow (l1tf=flush),  iTLB multihit,  Speculative Store Bypass \u0438  SRBDS, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0432\u043b\u0438\u044f\u043b\u0438 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u043b\u0438\u0441\u044c \u0441 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b \u0434\u043b\u044f <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4395\">KVM<\/a>, sisemise virtualiseerimise ja teiste CPU mudelite jaoks).\n<li class=\"l\"> \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0430\u0443\u0434\u0438\u0442\u0430  \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b &#171;auditctl -a never,task&#187; \u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043e\u043f\u0446\u0438\u0438 &#171;&#8212;security-opt seccomp=unconfined&#187; \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 docker. \u041e\u0431\u0449\u0438\u0439 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b 11%, \u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u0430 \u0441 446k req\/s \u0434\u043e 495k req\/s.\n<li class=\"l\"> Iptables\/netfilter'i deaktiveerimine tuuma seotud moodulite laadimise kaudu. M\u00f5te v\u00e4ljal\u00fclitamisest, mis ei olnud konkreetse serverilahenduse puhul kasutusel, sai inspiratsiooni profiilimise tulemustest, mille kohaselt kulus nf_hook_slow funktsiooni t\u00e4itmiseks 18% ajast. T\u00e4heldatakse, et nftables t\u00f6\u00f6tab t\u00f5husamalt v\u00f5rreldes iptables'iga, kuid Amazon Linuxis kasutatakse endiselt iptables'i. Iptables'i v\u00e4ljal\u00fclitamisega saavutati 22% j\u00f5udluse kasvu ja l\u00e4bilaskev\u00f5ime kasvas 495k req\/s-lt 603k req\/s-le.\n<li class=\"l\"> Erghe m\u00e4luk\u00e4itlejate vahel erinevate CPU tuumade vahel on v\u00e4henenud, et suurendada protsessorik\u00fchvli kasutamise efektiivsust. Optimeerimist tehti nii libreactor protsesside tuumadele (CPU Pinning) sidumise tasemel kui ka tuumade v\u00f5rguk\u00e4itlejate (Receive Side Scaling) kinnitamise kaudu. N\u00e4iteks keelati irqbalance ja seati j\u00e4rjekordade sidumised selgelt CPU-dele failis \/proc\/irq\/$IRQ\/smp_affinity_list. \u00dche ja sama CPU tuuma kasutamiseks libreactor protsessi ja sissetulevate pakettide v\u00f5rgurea t\u00f6\u00f6tlemiseks kasutati kohandatud BPF t\u00f6\u00f6tlejat, mis \u00fchendati SO_ATTACH_REUSEPORT_CBPF lipu seadistamise kaudu soketi loomisel. V\u00e4ljaminevate pakettide j\u00e4rjekordade sidumiseks CPU-dega muudetakse seadeid failis \/sys\/class\/net\/eth0\/queues\/tx-&lt;n&gt;\/xps_cpus. \u00dcksik muita t\u00f5us 38%, samas kui l\u00e4bil\u00f6\u00f6ki t\u00f5usis 603k req\/s pealt 834k req\/s peale.\n<li class=\"l\"> \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0438\u043d\u0433\u0430 (polling). \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 adaptive-rx \u0432 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0435 ENA \u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 sysctl net.core.busy_read  \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430  28% (\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u0430 \u0441 834k req\/s \u0434\u043e 1.06M req\/s, \u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0441\u043d\u0438\u0437\u0438\u043b\u0438\u0441\u044c \u0441 361&#956;s \u0434\u043e 292&#956;s).\n<li class=\"l\"> S\u00fcsteemiteenuste, mis p\u00f5hjustavad liialt blokeeringut v\u00f5rgu virnas, keelamine. dhclient'i keelamine ja k\u00e4sitsi seadistamine <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/lir\/ipv4\/\"   title=\"IP-aadressid\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"683\">IP-aadressid<\/a> parandas j\u00f5udlust 6% v\u00f5rra ning l\u00e4bilaskev\u00f5ime t\u00f5usis 1,06 M req\/s-lt 1,12 M req\/s-le. dhclient'i m\u00f5ju j\u00f5udlusele on anal\u00fc\u00fcsitud raw-socket'i liikluse j\u00e4lgimise abil.\n<li class=\"l\"> \u0411\u043e\u0440\u044c\u0431\u0430 \u0441\u043e Spin Lock. \u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c &#171;noqueue&#187; \u0447\u0435\u0440\u0435\u0437 sysctl &#171;net.core.default_qdisc=noqueue&#187; \u0438  &#171;tc qdisc replace dev eth0 root mq&#187; \u043f\u0440\u0438\u0432\u0451\u043b \u043a \u043f\u0440\u0438\u0440\u043e\u0441\u0442\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 2%, \u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u0430 \u0441 1.12M req\/s \u0434\u043e 1.15M req\/s.\n<li class=\"l\"> \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u043b\u043a\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 GRO (Generic Receive Offload) \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 &#171;ethtool -K eth0 gro off&#187; \u0438 \u0437\u0430\u043c\u0435\u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0437\u0430 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u043e\u0439  cubic \u043d\u0430 reno \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 sysctl &#171;net.ipv4.tcp_congestion_control=reno&#187;. \u041e\u0431\u0449\u0438\u0439 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b 4%. \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u0430 \u0441    1.15M req\/s \u0434\u043e 1.2M req\/s.          <\/ul>\n<p>Lisaks k\u00e4ideldud optimiseerimistele k\u00e4sitleb artikkel ka meetodeid, mis ei toonud oodatud j\u00f5udluse kasvu. N\u00e4iteks osutusid ebaefektiivseks:    <\/p>\n<ul>\n<li class=\"l\"> \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a libreactor \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0441\u044f \u0432  \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430  \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435. \u041d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0438 \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u0437\u0430\u043c\u0435\u043d\u0430 writev \u043d\u0430 send, \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 maxevents \u0432 epoll_wait, \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u0438 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 GCC (\u044d\u0444\u0444\u0435\u043a\u0442 \u0431\u044b\u043b \u0437\u0430\u043c\u0435\u0442\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0444\u043b\u0430\u0433\u043e\u0432 &#171;-O3&#187; \u0438 &#171;-march-native&#187;).\n<li class=\"l\"> Linuxi tuuma versioonide 4.19 ja 5.4 uuendamine ei avaldanud j\u00f5udlusele m\u00f5ju, samuti SCHED_FIFO ja SCHED_RR ajakavad, sysctl kernel.sched_min_granularity_ns, kernel.sched_wakeup_granularity_ns, transparent_hugepages=never, skew_tick=1 ja clocksource=tsc manipuleerimine.\n<li class=\"l\"> \u0412 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0435 ENA \u043d\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 Offload (segmentation, scatter-gather, rx\/tx checksum), \u0441\u0431\u043e\u0440\u043a\u0430 \u0441 \u0444\u043b\u0430\u0433\u043e\u043c &#171;-O3&#187; \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 ena.rx_queue_size \u0438 ena.force_large_llq_header.\n<li class=\"l\"> Muudatused v\u00f5rgu kuhjas ei suurendanud j\u00f5udlust:\n<ul>\n<li>IPv6 keelamine: ipv6.disable=1<\/li>\n<li>VLAN-i keelamine: modprobe -rv 8021q<\/li>\n<li>Pakumi allika kontrollimise keelamine\n<ul>\n<li>net.ipv4.conf.all.rp_filter=0<\/li>\n<li>net.ipv4.conf.eth0.rp_filter=0<\/li>\n<li>net.ipv4.conf.all.accept_local=1 (negatiivne efekt)<\/li>\n<\/ul>\n<\/li>\n<li>net.ipv4.tcp_sack=0<\/li>\n<li>net.ipv4.tcp_dsack=0<\/li>\n<li>net.ipv4.tcp_mem\/tcp_wmem\/tcp_rmem <\/li>\n<li>net.core.netdev_budget<\/li>\n<li>net.core.dev_weight<\/li>\n<li>net.core.netdev_max_backlog<\/li>\n<li>net.ipv4.tcp_slow_start_after_idle=0 <\/li>\n<li>net.ipv4.tcp_moderate_rcvbuf=0<\/li>\n<li>net.ipv4.tcp_timestamps=0<\/li>\n<li>net.ipv4.tcp_low_latency=1<\/li>\n<li>SO_PRIORITY<\/li>\n<li>TCP_NODELAY<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=55186\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0442\u044e\u043d\u0438\u043d\u0433\u0443 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f Linux \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 JSON \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libreactor \u0432 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 Amazon EC2 (4 vCPU) c 224 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 API \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u0440\u0438 \u0448\u0442\u0430\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Amazon Linux 2 \u0441 \u044f\u0434\u0440\u043e\u043c 4.14 \u0434\u043e 1.2 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":100222,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-100221","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0442\u044e\u043d\u0438\u043d\u0433\u0443 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f Linux \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 JSON \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libreactor \u0432 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 Amazon EC2 (4 vCPU) c 224 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 API \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u0440\u0438 \u0448\u0442\u0430\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Amazon Linux 2 \u0441 \u044f\u0434\u0440\u043e\u043c 4.14 \u0434\u043e 1.2 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f Linux \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 1.2 \u043c\u043b\u043d JSON-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0442\u044e\u043d\u0438\u043d\u0433\u0443 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f Linux \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 JSON \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libreactor \u0432 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 Amazon EC2 (4 vCPU) c 224 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 API \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u0440\u0438 \u0448\u0442\u0430\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Amazon Linux 2 \u0441 \u044f\u0434\u0440\u043e\u043c 4.14 \u0434\u043e 1.2 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-05-21T08:23:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-05-21T08:23:03+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Linuxi optimeerimine 1,2 miljoni JSON-p\u00e4ringu t\u00f6\u00f6tlemiseks sekundis | ProHoster","description":"Avaldatud on p\u00f5hjalik juhend Linuxi keskkonna optimeerimiseks, et saavutada maksimaalne HTTP-p\u00e4ringute t\u00f6\u00f6tlemise j\u00f5udlus. Pakutud meetodid v\u00f5imaldasid t\u00f5sta JSON-i t\u00f6\u00f6tleja j\u00f5udlust, mis p\u00f5hineb libreactor teekil, Amazon EC2 (4 vCPU) keskkonnas alates 224 000 API-p\u00e4ringust sekundis Amazon Linux 2 vaikeseadistustele, j\u00f5udes 1,2 miljoni p\u00e4ringuni sekundis p\u00e4rast optimeerimist.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f Linux \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 1.2 \u043c\u043b\u043d JSON-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0442\u044e\u043d\u0438\u043d\u0433\u0443 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f Linux \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 JSON \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libreactor \u0432 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 Amazon EC2 (4 vCPU) c 224 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 API \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u0440\u0438 \u0448\u0442\u0430\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Amazon Linux 2 \u0441 \u044f\u0434\u0440\u043e\u043c 4.14 \u0434\u043e 1.2 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-05-21T08:23:03+00:00","article:modified_time":"2021-05-21T08:23:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"100221","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-05-21 09:18:54","updated":"2026-02-08 20:24:03"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/100221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=100221"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/100221\/revisions"}],"predecessor-version":[{"id":164272,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/100221\/revisions\/164272"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/100222"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=100221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=100221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=100221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}