{"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\/news\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","title":{"rendered":"Linuxi optimeerimine, et t\u00f6\u00f6delda 1,2 miljonit JSON-i p\u00e4ringut sekundis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Avaldati \u00fcksikasjalik juhend Linuxi keskkonna tuuninguks HTTP-p\u00e4ringute maksimaalse t\u00f5hususe saavutamiseks. Pakutud meetodid v\u00f5imaldasid t\u00f5sta JSON-i t\u00f6\u00f6tleja, mis p\u00f5hines libreactor-raamatukogul, j\u00f5udlust Amazon EC2 (4 vCPU) keskkonnas 224 000 API-p\u00e4ringult sekundis Amazon Linux 2 vaikeseadetes 4.14 tuumaga 1,2 miljoni p\u00e4ringuni sekundis p\u00e4rast optimeerimist (kasvu 436%), ning v\u00e4hendada p\u00e4ringute t\u00f6\u00f6tlemise viivitusi 79%. Pakutud meetodid ei ole spetsiifilised libreactorile ja t\u00f6\u00f6tavad ka teiste http-serverite, sealhulgas nginx, Actix, Netty ja Node.js, puhul (libreactorit kasutati testides, kuna selle p\u00f5hine lahendus n\u00e4itas parimat j\u00f5udlust).      <center><img decoding=\"async\" alt=\"Linuxi optimeerimine, et t\u00f6\u00f6delda 1,2 miljonit JSON-i p\u00e4ringut 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>, sisemiste virtualiseerimise ja teiste CPU mudelite korral.\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 keelamine seotud tuumamoodulite laadimise kaudu. Ideed tulem\u00fc\u00fcri v\u00e4lja l\u00fclitamiseks, mida ei kasutatud spetsiifilises serverilahenduses, toetas profiilimise tulemused, mille kohaselt kulus nf_hook_slow funktsiooni t\u00e4itmiseks 18% ajast. T\u00e4hendatud on, et nftables t\u00f6\u00f6tab efektiivsemalt kui iptables, kuid Amazon Linuxis kasutatakse endiselt iptables'i. Iptables'i keelamise j\u00e4rel kasvas j\u00f5udlus 22%, samas kui l\u00e4bilaskev\u00f5ime suurenes 495k req\/s-lt 603k req\/s-le.\n<li class=\"l\"> Migratsiooni v\u00e4hendamine erinevate CPU tuumade vahel, et t\u00f5sta protsessori vahem\u00e4lu efektiivset kasutamist. Optimeerimine viidi l\u00e4bi nii protsesside libreactor tuumadele kinnitamise (CPU Pinning) kui ka tuuma v\u00f5rgu t\u00f6\u00f6tlejate kinnitamise (Receive Side Scaling) tasandil. N\u00e4iteks keelati irqbalance ja kinnitati j\u00e4rjekordade seosed \u00fchele tuumale \/proc\/irq\/$IRQ\/smp_affinity_list failis. Protsessi libreactor ja sissetuleva v\u00f5rgu pakettide t\u00f6\u00f6tlemiseks kasutati sama CPU tuuma jaoks oma BPF t\u00f6\u00f6tlejat, mis aktiveeriti SO_ATTACH_REUSEPORT_CBPF lipu seadistamise kaudu soketi loomisel. V\u00e4ljuvate pakettide j\u00e4rjekordade kinnitamiseks CPU-le muudeti seadistusi \/sys\/class\/net\/eth0\/queues\/tx-&lt;n&gt;\/xps_cpus. \u00dcldine j\u00f5udluse t\u00f5us oli 38%, samas kui l\u00e4bilaskev\u00f5ime suurenes 603k req\/s-lt 834k req\/s-le.\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 keelamine, mis p\u00f5hjustavad liigseid blokeeringuid v\u00f5rgu stack'is. dhclient'i keelamine ja 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> k\u00e4sitsi t\u00f5i kaasa j\u00f5udluse kasvu 6%, samas kui l\u00e4bilaskev\u00f5ime suurenes 1.06M req\/s-lt 1.12M req\/s-le. dhclient'i m\u00f5ju j\u00f5udlusele selgub toorme soketi abil liikluse anal\u00fc\u00fcsimisel.\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 rakendatud optimeerimistele k\u00e4sitleb artikkel ka meetodeid, mis ei toonud oodatud j\u00f5udluse kasvu. N\u00e4iteks osutusid ebaefektiivseteks:    <\/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 uuendamine versioonidele 4.19 ja 5.4 ei m\u00f5jutanud j\u00f5udlust, samas kui SCHED_FIFO ja SCHED_RR planeerijate kasutamine, sysctl muutujaid nagu kernel.sched_min_granularity_ns, kernel.sched_wakeup_granularity_ns, transparent_hugepages=never, skew_tick=1 ja clocksource=tsc manipuleerimine ei avaldanud m\u00f5ju.\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\"> V\u00f5rgu hunniku muudatused ei toonud kaasa j\u00f5udluse t\u00f5usu:\n<ul>\n<li>IPv6 v\u00e4ljal\u00fclitamine: ipv6.disable=1<\/li>\n<li>VLAN-i v\u00e4ljal\u00fclitamine: modprobe -rv 8021q<\/li>\n<li>Paketi allika kontrollimise v\u00e4ljal\u00fclitamine\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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - 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.\" \/>\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\/news\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/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 h\u00e4\u00e4lestamiseks maksimaalse HTTP-p\u00e4ringute t\u00f6\u00f6tlemise j\u00f5udluse saavutamiseks.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/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.","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"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}]}}