{"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\/fr\/blog\/news\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","title":{"rendered":"Optimisation de Linux pour traiter 1,2 million de requ\u00eates JSON par seconde","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Un guide d\u00e9taill\u00e9 sur l'optimisation de l'environnement Linux pour maximiser la performance du traitement des requ\u00eates HTTP a \u00e9t\u00e9 publi\u00e9. Les m\u00e9thodes propos\u00e9es ont permis d'augmenter la performance du gestionnaire JSON bas\u00e9 sur la biblioth\u00e8que libreactor dans l'environnement Amazon EC2 (4 vCPU) de 224 000 requ\u00eates API par seconde avec les param\u00e8tres par d\u00e9faut d'Amazon Linux 2 avec noyau 4.14 \u00e0 1,2 million de requ\u00eates par seconde apr\u00e8s optimisation (augmentation de 436 %), tout en r\u00e9duisant les latences de traitement des requ\u00eates de 79 %. Les m\u00e9thodes propos\u00e9es ne sont pas sp\u00e9cifiques \u00e0 libreactor et fonctionnent avec d'autres serveurs http, y compris nginx, Actix, Netty et Node.js (libreactor a \u00e9t\u00e9 utilis\u00e9 dans les tests car la solution bas\u00e9e sur lui a montr\u00e9 la meilleure performance).      <center><img decoding=\"async\" alt=\"Optimisation de Linux pour traiter 1,2 million de requ\u00eates JSON par seconde\" src=\"\/wp-content\/uploads\/2021\/05\/908fb8d92e84a3e7557af7f6c622298e.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Optimisations principales :  <\/p>\n<ul>\n<li class=\"l\"> Optimisation du code libreactor. Une version R18 du framework Techempower a \u00e9t\u00e9 utilis\u00e9e comme base, am\u00e9lior\u00e9e par la suppression du code limitant le nombre de c\u0153urs CPU utilis\u00e9s (l'optimisation a permis d'acc\u00e9l\u00e9rer le fonctionnement de 25 \u00e0 27 %), des compilations avec GCC avec les options \u00ab -O3 \u00bb (gain de 5 \u00e0 10 %) et \u00ab -march-native \u00bb (5 \u00e0 10 %), le remplacement des appels read\/write par recv\/send (5 \u00e0 10 %) et la r\u00e9duction des frais g\u00e9n\u00e9raux lors de l'utilisation de pthreads (2 \u00e0 3 %). Le gain de performance total apr\u00e8s l'optimisation du code a \u00e9t\u00e9 de 55 %, et la bande passante a augment\u00e9 de 224k req\/s \u00e0 347k req\/s.\n<li class=\"l\"> D\u00e9sactivation des protections contre les vuln\u00e9rabilit\u00e9s caus\u00e9es par l'ex\u00e9cution sp\u00e9culative des instructions. L'utilisation des param\u00e8tres lors du chargement du noyau \u00ab nospectre_v1 nospectre_v2 pti=off mds=off tsx_async_abort=off \u00bb a permis d'augmenter la performance de 28 %, et la bande passante est pass\u00e9e de 347k req\/s \u00e0 446k req\/s. Gain isol\u00e9 du param\u00e8tre \u00ab nospectre_v1 \u00bb (protection contre Spectre v1 + SWAPGS) de 1 \u00e0 2 %, \u00ab nospectre_v2 \u00bb (protection contre Spectre v2) \u2014 15 \u00e0 20 %, \u00ab pti=off \u00bb (Spectre v3\/Meltdown) \u2014 6 %, \u00ab mds=off tsx_async_abort=off \u00bb (MDS\/Zombieload et TSX Asynchronous Abort) \u2014 6 %. Les param\u00e8tres pour prot\u00e9ger contre les attaques L1TF\/Foreshadow (l1tf=flush), iTLB multihit, Speculative Store Bypass et SRBDS ont \u00e9t\u00e9 conserv\u00e9s, car ils n'influaient pas sur la performance \u00e9tant donn\u00e9 qu'ils ne touchaient pas la configuration test\u00e9e (par exemple, sp\u00e9cifiques pour <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4395\">KVM<\/a>, la virtualisation imbriqu\u00e9e et d'autres mod\u00e8les de CPU).\n<li class=\"l\"> D\u00e9sactivation des m\u00e9canismes d'audit et de verrouillage des appels syst\u00e8me \u00e0 l'aide de la commande \u00ab auditctl -a never,task \u00bb et en sp\u00e9cifiant l'option \u00ab --security-opt seccomp=unconfined \u00bb lors du lancement du conteneur docker. Le gain de performance total a \u00e9t\u00e9 de 11 %, et la bande passante est pass\u00e9e de 446k req\/s \u00e0 495k req\/s.\n<li class=\"l\"> D\u00e9sactivation d'iptables\/netfilter en t\u00e9l\u00e9chargeant les modules du noyau qui leur sont associ\u00e9s. L'id\u00e9e de d\u00e9sactiver le pare-feu, qui n'\u00e9tait pas utilis\u00e9 dans une solution serveur sp\u00e9cifique, a \u00e9t\u00e9 motiv\u00e9e par les r\u00e9sultats du profilage, selon lesquels l'ex\u00e9cution de la fonction nf_hook_slow prenait 18 % du temps. Il est not\u00e9 que nftables fonctionne plus efficacement qu'iptables, mais qu'Amazon Linux continue d'utiliser iptables. Apr\u00e8s la d\u00e9sactivation d'iptables, le gain de performance a \u00e9t\u00e9 de 22 %, et le d\u00e9bit est pass\u00e9 de 495k req\/s \u00e0 603k req\/s.\n<li class=\"l\"> R\u00e9duction de la migration des gestionnaires entre les diff\u00e9rents c\u0153urs CPU pour am\u00e9liorer l'efficacit\u00e9 de l'utilisation du cache processeur. L'optimisation a \u00e9t\u00e9 r\u00e9alis\u00e9e \u00e0 la fois au niveau du couplage des processus libreactor aux c\u0153urs CPU (CPU Pinning) et par le biais de l'affectation des gestionnaires r\u00e9seau du noyau (Receive Side Scaling). Par exemple, irqbalance a \u00e9t\u00e9 d\u00e9sactiv\u00e9 et des liaisons explicites des files d'attente aux CPU ont \u00e9t\u00e9 \u00e9tablies dans \/proc\/irq\/$IRQ\/smp_affinity_list. Pour utiliser un m\u00eame c\u0153ur CPU pour le traitement du processus libreactor et de la file d'attente r\u00e9seau des paquets entrants, un gestionnaire BPF d\u00e9di\u00e9 a \u00e9t\u00e9 utilis\u00e9, connect\u00e9 via le drapeau SO_ATTACH_REUSEPORT_CBPF lors de la cr\u00e9ation du socket. Pour lier les files d'attente des paquets sortants au CPU, les param\u00e8tres dans \/sys\/class\/net\/eth0\/queues\/tx-\/xps_cpus ont \u00e9t\u00e9 modifi\u00e9s. Le gain de performance total a \u00e9t\u00e9 de 38 %, et le d\u00e9bit est pass\u00e9 de 603k req\/s \u00e0 834k req\/s.\n<li class=\"l\"> Optimisation du traitement des interruptions et utilisation du polling. L'activation du mode adaptive-rx dans le pilote ENA et les manipulations avec sysctl net.core.busy_read ont permis d'augmenter la performance de 28 % (la bande passante est pass\u00e9e de 834k req\/s \u00e0 1.06M req\/s, et les latences ont diminu\u00e9 de 361\u00b5s \u00e0 292\u00b5s).\n<li class=\"l\"> D\u00e9sactivation des services syst\u00e8me entra\u00eenant des blocages inutiles dans la pile r\u00e9seau. La d\u00e9sactivation de dhclient et la configuration <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/lir\/ipv4\/\"   title=\"adresses IP\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"683\">adresses IP<\/a> manuelle ont conduit \u00e0 une augmentation de la performance de 6 %, et le d\u00e9bit est pass\u00e9 de 1,06M req\/s \u00e0 1,12M req\/s. La raison de l'impact de dhclient sur la performance a \u00e9t\u00e9 analys\u00e9e par un trafic \u00e0 l'aide de socket brut.\n<li class=\"l\"> Lutte contre le Spin Lock. Le passage de la pile r\u00e9seau en mode \u00ab noqueue \u00bb via sysctl \u00ab net.core.default_qdisc=noqueue \u00bb et \u00ab tc qdisc replace dev eth0 root mq \u00bb a entra\u00een\u00e9 un gain de performance de 2 %, et la bande passante est pass\u00e9e de 1.12M req\/s \u00e0 1.15M req\/s.\n<li class=\"l\"> Les optimisations finales mineures, telles que la d\u00e9sactivation de GRO (Generic Receive Offload) avec la commande &#171;ethtool -K eth0 gro off&#187; et le remplacement de l'algorithme de contr\u00f4le de congestion cubic par reno \u00e0 l'aide de sysctl &#171;net.ipv4.tcp_congestion_control=reno&#187;, ont permis d'augmenter la performance de 4 %. La capacit\u00e9 de traitement est pass\u00e9e de 1,15 M req\/s \u00e0 1,2 M req\/s.          <\/ul>\n<p>En plus des optimisations r\u00e9ussies, l'article examine \u00e9galement les m\u00e9thodes qui n'ont pas conduit \u00e0 l'augmentation de performance attendue. Par exemple, les suivantes se sont r\u00e9v\u00e9l\u00e9es inefficaces :    <\/p>\n<ul>\n<li class=\"l\"> Le d\u00e9marrage s\u00e9par\u00e9 de libreactor n'a pas montr\u00e9 de diff\u00e9rence de performance par rapport au d\u00e9marrage dans un conteneur. Le remplacement de writev par send, l'augmentation de maxevents dans epoll_wait, et les exp\u00e9rimentations avec les versions et les flags GCC n'ont eu aucun impact (l'effet n'\u00e9tait perceptible que pour les flags &#171;-O3&#187; et &#171;-march-native&#187;).\n<li class=\"l\"> La mise \u00e0 jour du noyau Linux vers les versions 4.19 et 5.4, l'utilisation des planificateurs SCHED_FIFO et SCHED_RR, les manipulations de sysctl kernel.sched_min_granularity_ns, kernel.sched_wakeup_granularity_ns, transparent_hugepages=never, skew_tick=1 et clocksource=tsc n'ont pas eu d'effet sur la performance.\n<li class=\"l\"> Dans le pilote ENA, l'activation des modes Offload (segmentation, scatter-gather, rx\/tx checksum), la compilation avec le flag &#171;-O3&#187; et l'application des param\u00e8tres ena.rx_queue_size et ena.force_large_llq_header n'ont eu aucun effet.\n<li class=\"l\"> Les modifications apport\u00e9es \u00e0 la pile r\u00e9seau n'ont pas entra\u00een\u00e9 une augmentation de performance :\n<ul>\n<li>D\u00e9sactivation d'IPv6 : ipv6.disable=1<\/li>\n<li>D\u00e9sactivation de VLAN : modprobe -rv 8021q<\/li>\n<li>D\u00e9sactivation de la v\u00e9rification de l'origine des paquets\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 (effet n\u00e9gatif)<\/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>Source : <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.2 - 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\/fr\/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.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Optimisation de Linux pour traiter 1,2 million de requ\u00eates JSON par seconde | ProHoster","description":"Un guide d\u00e9taill\u00e9 sur le tuning de l'environnement Linux pour atteindre des performances maximales dans le traitement des requ\u00eates HTTP a \u00e9t\u00e9 publi\u00e9.","canonical_url":"https:\/\/prohoster.info\/fr\/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":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/100221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=100221"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/100221\/revisions"}],"predecessor-version":[{"id":164272,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/100221\/revisions\/164272"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/100222"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=100221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=100221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=100221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}