{"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\/pt\/blog\/news\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","title":{"rendered":"Otimiza\u00e7\u00e3o do Linux para processar 1,2 milh\u00f5es de requisi\u00e7\u00f5es JSON por segundo","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi publicado um guia detalhado sobre a otimiza\u00e7\u00e3o do ambiente Linux para alcan\u00e7ar o m\u00e1ximo desempenho no processamento de requisi\u00e7\u00f5es HTTP. Os m\u00e9todos propostos elevaram a performance do manipulador JSON baseado na biblioteca libreactor em um ambiente Amazon EC2 (4 vCPU) de 224 mil requisi\u00e7\u00f5es API por segundo nas configura\u00e7\u00f5es padr\u00e3o do Amazon Linux 2 com kernel 4.14 para 1,2 milh\u00e3o de requisi\u00e7\u00f5es por segundo ap\u00f3s as otimiza\u00e7\u00f5es realizadas (um aumento de 436%), al\u00e9m de reduzir a lat\u00eancia no processamento de requisi\u00e7\u00f5es em 79%. Os m\u00e9todos propostos n\u00e3o s\u00e3o espec\u00edficos para libreactor e funcionam com outros servidores http, incluindo nginx, Actix, Netty e Node.js (libreactor foi utilizado nos testes porque a solu\u00e7\u00e3o baseada nele mostrou melhor desempenho).      <center><img decoding=\"async\" alt=\"Otimiza\u00e7\u00e3o do Linux para processar 1,2 milh\u00f5es de requisi\u00e7\u00f5es JSON por segundo\" src=\"\/wp-content\/uploads\/2021\/05\/908fb8d92e84a3e7557af7f6c622298e.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Principais otimiza\u00e7\u00f5es:  <\/p>\n<ul>\n<li class=\"l\"> Otimiza\u00e7\u00e3o do c\u00f3digo libreactor. A vers\u00e3o R18 do conjunto Techempower foi utilizada como base e melhorada atrav\u00e9s da remo\u00e7\u00e3o do c\u00f3digo que limita o n\u00famero de n\u00facleos de CPU utilizados (a otimiza\u00e7\u00e3o permitiu um aumento de desempenho de 25-27%), compila\u00e7\u00e3o no GCC com op\u00e7\u00f5es '-O3' (crescimento de 5-10%) e '-march-native' (5-10%), substitui\u00e7\u00e3o de chamadas read\/write por recv\/send (5-10%) e redu\u00e7\u00e3o da sobrecarga ao usar pthreads (2-3%). O ganho total de desempenho ap\u00f3s a otimiza\u00e7\u00e3o do c\u00f3digo foi de 55%, e a capacidade de atendimento aumentou de 224k req\/s para 347k req\/s.\n<li class=\"l\"> Desativa\u00e7\u00e3o de prote\u00e7\u00e3o contra vulnerabilidades causadas pela execu\u00e7\u00e3o especulativa de instru\u00e7\u00f5es. O uso de par\u00e2metros ao carregar o kernel 'nospectre_v1 nospectre_v2 pti=off mds=off tsx_async_abort=off' permitiu um aumento de desempenho de 28%, e a capacidade de atendimento aumentou de 347k req\/s para 446k req\/s. Individualmente, o ganho do par\u00e2metro 'nospectre_v1' (prote\u00e7\u00e3o contra Spectre v1 + SWAPGS) foi de 1-2%, 'nospectre_v2' (prote\u00e7\u00e3o contra Spectre v2) \u2014 15-20%, 'pti=off' (Spectre v3\/Meltdown) \u2014 6%, 'mds=off tsx_async_abort=off' (MDS\/Zombieload e TSX Asynchronous Abort) \u2014 6%. As configura\u00e7\u00f5es para prote\u00e7\u00e3o contra ataques L1TF\/Foreshadow (l1tf=flush), iTLB multihit, Speculative Store Bypass e SRBDS foram mantidas inalteradas, pois n\u00e3o afetaram o desempenho, j\u00e1 que n\u00e3o se sobrepuseram \u00e0 configura\u00e7\u00e3o testada (por exemplo, espec\u00edficas para <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4395\">KVM<\/a>, virtualiza\u00e7\u00e3o aninhada e outros modelos de CPU).\n<li class=\"l\"> Desativa\u00e7\u00e3o dos mecanismos de auditoria e bloqueio de chamadas de sistema usando o comando 'auditctl -a never,task' e especificando a op\u00e7\u00e3o '--security-opt seccomp=unconfined' ao iniciar o cont\u00eainer docker. O ganho total de desempenho foi de 11%, e a capacidade de atendimento aumentou de 446k req\/s para 495k req\/s.\n<li class=\"l\"> Desativa\u00e7\u00e3o do iptables\/netfilter por meio da descarregamento dos m\u00f3dulos do kernel relacionados. A ideia de desativar o firewall, que n\u00e3o era utilizado na solu\u00e7\u00e3o de servidor espec\u00edfica, foi impulsionada pelos resultados de perfilamento, que mostraram que a execu\u00e7\u00e3o da fun\u00e7\u00e3o nf_hook_slow consumia 18% do tempo. Observa-se que o nftables funciona de maneira mais eficiente do que o iptables, mas o iptables ainda \u00e9 utilizado no Amazon Linux. Ap\u00f3s a desativa\u00e7\u00e3o do iptables, o ganho de desempenho foi de 22%, e a capacidade de processamento aumentou de 495k req\/s para 603k req\/s.\n<li class=\"l\"> Redu\u00e7\u00e3o da migra\u00e7\u00e3o de manipuladores entre diferentes n\u00facleos de CPU para aumentar a efici\u00eancia do uso do cache do processador. A otimiza\u00e7\u00e3o foi feita tanto no n\u00edvel de vincula\u00e7\u00e3o de processos do libreactor aos n\u00facleos de CPU (CPU Pinning), quanto atrav\u00e9s da fixa\u00e7\u00e3o de manipuladores de rede do kernel (Receive Side Scaling). Por exemplo, foi desativado o irqbalance e feita a configura\u00e7\u00e3o expl\u00edcita dos v\u00ednculos de filas ao CPU em \/proc\/irq\/$IRQ\/smp_affinity_list. Para usar o mesmo n\u00facleo de CPU para processar o processo libreactor e a fila de pacotes de entrada, foi utilizado um manipulador BPF pr\u00f3prio, conectado atrav\u00e9s da configura\u00e7\u00e3o do flag SO_ATTACH_REUSEPORT_CBPF ao criar o socket. Para vincular as filas de pacotes de sa\u00edda ao CPU, foram alteradas as configura\u00e7\u00f5es em \/sys\/class\/net\/eth0\/queues\/tx-&lt;n&gt;\/xps_cpus. O ganho total de desempenho foi de 38%, e a capacidade de processamento aumentou de 603k req\/s para 834k req\/s.\n<li class=\"l\"> Otimiza\u00e7\u00e3o do processamento de interrup\u00e7\u00f5es e uso de polling. A ativa\u00e7\u00e3o do modo adaptive-rx no driver ENA e manipula\u00e7\u00f5es com sysctl net.core.busy_read permitiram um aumento de desempenho de 28% (a capacidade de atendimento aumentou de 834k req\/s para 1.06M req\/s, e as lat\u00eancias reduziram de 361\u03bcs para 292\u03bcs).\n<li class=\"l\"> Desativa\u00e7\u00e3o de servi\u00e7os do sistema que causavam bloqueios desnecess\u00e1rios na pilha de rede. A desativa\u00e7\u00e3o do dhclient e a configura\u00e7\u00e3o <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/lir\/ipv4\/\"   title=\"endere\u00e7os IP\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"683\">endere\u00e7os IP<\/a> manualmente resultaram em um aumento de desempenho de 6%, e a capacidade de processamento aumentou de 1.06M req\/s para 1.12M req\/s. A raz\u00e3o do impacto do dhclient no desempenho foi analisada no tr\u00e1fego usando um socket raw.\n<li class=\"l\"> Combate ao Spin Lock. A mudan\u00e7a do stack de rede para o modo 'noqueue' via sysctl 'net.core.default_qdisc=noqueue' e 'tc qdisc replace dev eth0 root mq' resultou em um aumento de desempenho de 2%, e a capacidade de atendimento aumentou de 1.12M req\/s para 1.15M req\/s.\n<li class=\"l\"> Otimiza\u00e7\u00f5es finais menores, como desativar o GRO (Generic Receive Offload) com o comando &#171;ethtool -K eth0 gro off&#187; e substituir o algoritmo de controle de congestionamento cubic por reno usando sysctl &#171;net.ipv4.tcp_congestion_control=reno&#187;. O ganho total de desempenho foi de 4%. A largura de banda aumentou de 1.15M req\/s para 1.2M req\/s.          <\/ul>\n<p>Al\u00e9m das otimiza\u00e7\u00f5es que funcionaram, o artigo tamb\u00e9m examina m\u00e9todos que n\u00e3o levaram ao aumento de desempenho esperado. Por exemplo, os seguintes m\u00e9todos foram ineficazes:    <\/p>\n<ul>\n<li class=\"l\"> A execu\u00e7\u00e3o separada do libreactor n\u00e3o apresentou diferen\u00e7a de desempenho em rela\u00e7\u00e3o \u00e0 execu\u00e7\u00e3o em cont\u00eainer. A substitui\u00e7\u00e3o de writev por send, o aumento de maxevents em epoll_wait e experi\u00eancias com vers\u00f5es e flags do GCC n\u00e3o tiveram impacto (o efeito foi notado apenas para os flags &#171;-O3&#187; e &#171;-march-native&#187;).\n<li class=\"l\"> A atualiza\u00e7\u00e3o do kernel Linux para as vers\u00f5es 4.19 e 5.4, o uso dos escalonadores SCHED_FIFO e SCHED_RR, e manipula\u00e7\u00f5es de sysctl como kernel.sched_min_granularity_ns, kernel.sched_wakeup_granularity_ns, transparent_hugepages=never, skew_tick=1 e clocksource=tsc n\u00e3o afetaram o desempenho.\n<li class=\"l\"> No driver ENA, a ativa\u00e7\u00e3o dos modos Offload (segmentation, scatter-gather, rx\/tx checksum), a compila\u00e7\u00e3o com a flag &#171;-O3&#187; e a aplica\u00e7\u00e3o dos par\u00e2metros ena.rx_queue_size e ena.force_large_llq_header n\u00e3o tiveram impacto.\n<li class=\"l\"> As altera\u00e7\u00f5es no stack de rede n\u00e3o resultaram em aumento de desempenho:\n<ul>\n<li>Desativa\u00e7\u00e3o do IPv6: ipv6.disable=1<\/li>\n<li>Desativa\u00e7\u00e3o do VLAN: modprobe -rv 8021q<\/li>\n<li>Desativa\u00e7\u00e3o da verifica\u00e7\u00e3o da fonte do pacote\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 (efeito negativo)<\/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>Fonte: <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.3 - 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\/pt\/blog\/news\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Otimiza\u00e7\u00e3o do Linux para processar 1.2 milh\u00f5es de requisi\u00e7\u00f5es JSON por segundo | ProHoster","description":"Foi publicado um guia detalhado para otimiza\u00e7\u00e3o do ambiente Linux para alcan\u00e7ar o m\u00e1ximo desempenho no processamento de requisi\u00e7\u00f5es HTTP.","canonical_url":"https:\/\/prohoster.info\/pt\/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":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/100221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=100221"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/100221\/revisions"}],"predecessor-version":[{"id":164272,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/100221\/revisions\/164272"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/100222"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=100221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=100221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=100221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}