{"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\/sq\/blog\/news\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","title":{"rendered":"Optimizimi i Linuxit p\u00ebr trajtimin e 1.2 milion JSON k\u00ebrkesave n\u00eb sekond\u00eb","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Published a detailed guide on tuning the Linux environment for maximum HTTP request processing performance. The proposed methods allowed increasing the performance of the JSON handler based on the libreactor library in the Amazon EC2 environment (4 vCPU) from 224 thousand API requests per second with the standard settings of Amazon Linux 2 with a 4.14 kernel to 1.2 million requests per second after optimization (an increase of 436%), and also led to a 79% reduction in request processing latency. The proposed methods are not specific to libreactor and work when using other HTTP servers, including nginx, Actix, Netty, and Node.js (libreactor was used in the tests because the solution based on it showed the best performance).      <center><img decoding=\"async\" alt=\"Optimizimi i Linuxit p\u00ebr trajtimin e 1.2 milion JSON k\u00ebrkesave n\u00eb sekond\u00eb\" src=\"\/wp-content\/uploads\/2021\/05\/908fb8d92e84a3e7557af7f6c622298e.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Optimizations principale:  <\/p>\n<ul>\n<li class=\"l\"> Optimizimi i kodit libreactor. Si baz\u00eb \u00ebsht\u00eb p\u00ebrdorur varianti R18 nga seti Techempower, i cili \u00ebsht\u00eb p\u00ebrmir\u00ebsuar duke hequr kodin p\u00ebr t\u00eb kufizuar numrin e b\u00ebrthamave CPU t\u00eb p\u00ebrdorura (optimizimi leht\u00ebsoi rritjen e performanc\u00ebs me 25-27%), nd\u00ebrtimi n\u00eb GCC me opsionet '-O3' (p\u00ebrfitimi 5-10%) dhe '-march-native' (5-10%), z\u00ebvend\u00ebsimi i thirrjeve read\/write me recv\/send (5-10%) dhe ulja e shpenzimeve t\u00eb p\u00ebrdorimit t\u00eb pthreads (2-3%). Rritja totale e performanc\u00ebs pas optimizimit t\u00eb kodit ishte 55%, nd\u00ebrsa kapaciteti kaloi nga 224k req\/s n\u00eb 347k req\/s.\n<li class=\"l\"> \u00c7aktivizimi i mbrojtjes nga dob\u00ebsit\u00eb e shkaktuara nga ekzekutimi spekulativ i instruksioneve. P\u00ebrdorimi i parametrave gjat\u00eb ngarkimit t\u00eb kernelit 'nospectre_v1 nospectre_v2 pti=off mds=off tsx_async_abort=off' leht\u00ebsoi rritjen e performanc\u00ebs me 28%, nd\u00ebrsa kapaciteti kaloi nga 347k req\/s n\u00eb 446k req\/s. Ndryshe, p\u00ebrfitimi nga parametrin 'nospectre_v1' (mbrojtja nga Spectre v1 + SWAPGS) ishte 1-2%, 'nospectre_v2' (mbrojtja nga Spectre v2) \u2014 15-20%, 'pti=off' (Spectre v3\/Meltdown) \u2014 6%, 'mds=off tsx_async_abort=off' (MDS\/Zombieload dhe TSX Asynchronous Abort) \u2014 6%. T\u00eb gjitha konfigurimet p\u00ebr mbrojtjen nga sulmet L1TF\/Foreshadow (l1tf=flush), iTLB multihit, Speculative Store Bypass dhe SRBDS jan\u00eb l\u00ebn\u00eb t\u00eb paprekura, pasi nuk ndikuan n\u00eb performanc\u00eb, sepse nuk kalonin me konfigurimin e testuar (p.sh., specifik p\u00ebr <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4395\">KVM<\/a>, virtualizimin e ndodhur dhe modelet e tjera t\u00eb CPU).\n<li class=\"l\"> \u00c7aktivizimi i mekanizmave t\u00eb auditit dhe bllokimit t\u00eb thirrjeve sistemore p\u00ebrmes komand\u00ebs 'auditctl -a never,task' dhe specifikimit t\u00eb opsionit '--security-opt seccomp=unconfined' gjat\u00eb nisjes s\u00eb kontejnerit docker. Rritja totale e performanc\u00ebs ishte 11%, nd\u00ebrsa kapaciteti kaloi nga 446k req\/s n\u00eb 495k req\/s.\n<li class=\"l\"> \u00c7aktivizimi i iptables\/netfilter p\u00ebrmes shkarkimit t\u00eb modulave t\u00eb lidhura me ta nga b\u00ebrthama. Ideja p\u00ebr t\u00eb \u00e7aktivizuar firewalla, i cili nuk u p\u00ebrdor n\u00eb zgjidhjen specifike t\u00eb serverit, u nxit nga rezultatet e profilizimit, sipas t\u00eb cilave fuksioni nf_hook_slow merrte 18% t\u00eb koh\u00ebs. Vihet n\u00eb dukje se nftables funksionon m\u00eb efikashem se iptables, por n\u00eb Amazon Linux vazhdon t\u00eb p\u00ebrdoret iptables. Pas \u00e7aktivizimit t\u00eb iptables, rritja e performanc\u00ebs ishte 22%, dhe kapaciteti i kalimit u rrit nga 495k req\/s n\u00eb 603k req\/s.\n<li class=\"l\"> P\u00ebrmir\u00ebsimi i migrimit t\u00eb p\u00ebrpunuesve mes b\u00ebrthamave t\u00eb ndryshme CPU p\u00ebr t\u00eb rritur efikasitetin e p\u00ebrdorimit t\u00eb caches t\u00eb procesor\u00ebve. Optimizimi u realizua si n\u00eb nivelin e lidhjes s\u00eb proceseve libreactor me b\u00ebrthama CPU (CPU Pinning), ashtu edhe p\u00ebrmes ngjitjes s\u00eb p\u00ebrpunuesve t\u00eb rrjetit t\u00eb b\u00ebrtham\u00ebs (Receive Side Scaling). P\u00ebr shembull, u \u00e7aktivizua irqbalance dhe u vendos\u00ebn qart\u00eb lidhjet e radh\u00ebve me CPU n\u00eb \/proc\/irq\/$IRQ\/smp_affinity_list. P\u00ebr t\u00eb p\u00ebrdorur t\u00eb nj\u00ebjt\u00ebn b\u00ebrtham\u00eb CPU p\u00ebr p\u00ebrpunimin e procesit libreactor dhe rendin e paketave hyr\u00ebse, u angazhua nj\u00eb p\u00ebrpunues BPF i personalizuar, i lidhur p\u00ebrmes vendosjes s\u00eb flamurit SO_ATTACH_REUSEPORT_CBPF gjat\u00eb krijimit t\u00eb soketit. P\u00ebr lidhjen me CPU t\u00eb radh\u00ebve t\u00eb paketave dal\u00ebse, u ndryshuan parametrat n\u00eb \/sys\/class\/net\/eth0\/queues\/tx-&lt;n&gt;\/xps_cpus. Rritja totale e performanc\u00ebs ishte 38%, dhe kapaciteti i kalimit u rrit nga 603k req\/s n\u00eb 834k req\/s.\n<li class=\"l\"> Optimizimi i trajtimit t\u00eb nd\u00ebrprerjeve dhe p\u00ebrdorimi i polling. Aktivizimi i modit adaptive-rx n\u00eb driver-in ENA dhe manipulimi me sysctl net.core.busy_read leht\u00ebsoi rritjen e performanc\u00ebs me 28% (kapaciteti kaloi nga 834k req\/s n\u00eb 1.06M req\/s, nd\u00ebrsa vonesat ran\u00eb nga 361\u03bcs n\u00eb 292\u03bcs).\n<li class=\"l\"> \u00c7aktivizimi i sh\u00ebrbimeve sistemike q\u00eb \u00e7ojn\u00eb n\u00eb bllokime shtes\u00eb n\u00eb stakun e rrjetit. \u00c7aktivizimi i dhclient dhe vendosja <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/lir\/ipv4\/\"   title=\"Adresa IP\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"683\">Adresa IP<\/a> duke e b\u00ebr\u00eb at\u00eb manualisht \u00e7oi n\u00eb nj\u00eb rritje t\u00eb performanc\u00ebs prej 6%, dhe kapaciteti i kalimit u rrit nga 1.06M req\/s n\u00eb 1.12M req\/s. Arsyeja e ndikimit t\u00eb dhclient n\u00eb performanc\u00eb n\u00eb analiz\u00ebn e trafikut duke p\u00ebrdorur raw-soketin.\n<li class=\"l\"> Lufta me Spin Lock. Kalimi i stack-ut rrjetor n\u00eb modin 'noqueue' p\u00ebrmes sysctl 'net.core.default_qdisc=noqueue' dhe 'tc qdisc replace dev eth0 root mq' \u00e7oi n\u00eb nj\u00eb rritje t\u00eb performanc\u00ebs me 2%, nd\u00ebrsa kapaciteti kaloi nga 1.12M req\/s n\u00eb 1.15M req\/s.\n<li class=\"l\"> Optimizimet p\u00ebrfundimtare t\u00eb vogla, si\u00e7 \u00ebsht\u00eb \u00e7aktivizimi i GRO (Generic Receive Offload) me komand\u00ebn &#171;ethtool -K eth0 gro off&#187; dhe z\u00ebvend\u00ebsimi i algoritmit t\u00eb kontrollit t\u00eb ngarkes\u00ebs cubic me reno p\u00ebrmes sysctl &#171;net.ipv4.tcp_congestion_control=reno&#187;. Rritja e p\u00ebrgjithshme e performanc\u00ebs ishte 4%. Kapaciteti kaloi nga 1.15M req\/s n\u00eb 1.2M req\/s.          <\/ul>\n<p>P\u00ebrve\u00e7 optimizimeve q\u00eb funksionuan, n\u00eb artikull shqyrtohen gjithashtu metoda q\u00eb nuk \u00e7uan n\u00eb rritjen e pritur t\u00eb performanc\u00ebs. P\u00ebr shembull, k\u00ebto u d\u00ebshmuan si t\u00eb paefektshme:    <\/p>\n<ul>\n<li class=\"l\"> Ekzekutimi i ve\u00e7ant\u00eb i libreactor nuk ndryshoi n\u00eb performanc\u00eb nga ekzekutimi n\u00eb kontejner. Z\u00ebvend\u00ebsimi i writev me send, rritja e maxevents n\u00eb epoll_wait, eksperimentet me versionet dhe flamujt GCC nuk pat\u00ebn ndikim (efekti u v\u00ebrejt vet\u00ebm p\u00ebr flamujt &#171;-O3&#187; dhe &#171;-march-native&#187;).\n<li class=\"l\"> P\u00ebrmir\u00ebsimi n\u00eb performanc\u00eb nuk u ndikua nga p\u00ebrdit\u00ebsimi i b\u00ebrtham\u00ebs Linux n\u00eb versionet 4.19 dhe 5.4, p\u00ebrdorimi i planifikuesve SCHED_FIFO dhe SCHED_RR, manipulimet me sysctl kernel.sched_min_granularity_ns, kernel.sched_wakeup_granularity_ns, transparent_hugepages=never, skew_tick=1 dhe clocksource=tsc.\n<li class=\"l\"> N\u00eb drajverin ENA, aktivizimi i m\u00ebnyrave Offload (segmentation, scatter-gather, rx\/tx checksum), nd\u00ebrtimi me flamurin &#171;-O3&#187; dhe aplikimi i parametrave ena.rx_queue_size dhe ena.force_large_llq_header nuk kishin ndikim.\n<li class=\"l\"> Ndryshimet n\u00eb stak\u00ebn rrjetore nuk \u00e7uan n\u00eb nj\u00eb rritje t\u00eb performanc\u00ebs:\n<ul>\n<li>\u00c7aktivizimi i IPv6: ipv6.disable=1<\/li>\n<li>\u00c7aktivizimi i VLAN: modprobe -rv 8021q<\/li>\n<li>\u00c7aktivizimi i verifikimit t\u00eb burimit t\u00eb paket\u00ebs\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 (efekti negativ)<\/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>Burimi: <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\/sq\/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=\"sq_AL\" \/>\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\/sq\/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\udd47Optimizimi i Linux p\u00ebr p\u00ebrpunimin e 1.2 milion JSON k\u00ebrkesave n\u00eb sekond\u00eb | ProHoster","description":"U publikua nj\u00eb udh\u00ebzues i detajuar p\u00ebr optimizimin e mjedisit Linux p\u00ebr arritjen e performanc\u00ebs maksimale n\u00eb p\u00ebrpunimin e k\u00ebrkesave HTTP.","canonical_url":"https:\/\/prohoster.info\/sq\/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":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/100221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=100221"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/100221\/revisions"}],"predecessor-version":[{"id":164272,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/100221\/revisions\/164272"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/100222"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=100221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=100221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=100221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}