{"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\/cs\/blog\/news\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","title":{"rendered":"Optimalizace Linuxu pro zpracov\u00e1n\u00ed 1,2 milionu JSON po\u017eadavk\u016f za sekundu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bylo zve\u0159ejn\u011bno podrobn\u00e9 pr\u016fvodce lad\u011bn\u00edm prost\u0159ed\u00ed Linux pro dosa\u017een\u00ed maxim\u00e1ln\u00ed v\u00fdkonnosti zpracov\u00e1n\u00ed HTTP po\u017eadavk\u016f. Navrhovan\u00e9 metody umo\u017enily zv\u00fd\u0161it v\u00fdkonnost JSON zpracovatele zalo\u017een\u00e9ho na knihovn\u011b libreactor v prost\u0159ed\u00ed Amazon EC2 (4 vCPU) z 224 tis\u00edc API po\u017eadavk\u016f za sekundu p\u0159i standardn\u00edm nastaven\u00ed Amazon Linux 2 s j\u00e1drem 4.14 na 1,2 milionu po\u017eadavk\u016f za sekundu po proveden\u00ed optimalizace (n\u00e1r\u016fst o 436 %) a tak\u00e9 vedly ke sn\u00ed\u017een\u00ed latenc\u00ed p\u0159i zpracov\u00e1n\u00ed po\u017eadavk\u016f o 79 %. Navrhovan\u00e9 metody nejsou specifick\u00e9 pro libreactor a funguj\u00ed p\u0159i pou\u017eit\u00ed jin\u00fdch http server\u016f, v\u010detn\u011b nginx, Actix, Netty a Node.js (libreactor byl pou\u017eit p\u0159i testech, proto\u017ee \u0159e\u0161en\u00ed na jeho z\u00e1klad\u011b vyk\u00e1zalo nejlep\u0161\u00ed v\u00fdkon).      <center><img decoding=\"async\" alt=\"Optimalizace Linuxu pro zpracov\u00e1n\u00ed 1,2 milionu JSON po\u017eadavk\u016f za sekundu\" src=\"\/wp-content\/uploads\/2021\/05\/908fb8d92e84a3e7557af7f6c622298e.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Hlavn\u00ed optimalizace:  <\/p>\n<ul>\n<li class=\"l\"> Optimalizace k\u00f3du libreactor. Jako z\u00e1klad byla pou\u017eita varianta R18 ze sady Techempower, kter\u00e1 byla vylep\u0161ena odstran\u011bn\u00edm k\u00f3du pro omezen\u00ed po\u010dtu pou\u017e\u00edvan\u00fdch jader CPU (optimalizace umo\u017enila zrychlen\u00ed o 25-27 %), kompilac\u00ed v GCC s volbami \"-O3\" (n\u00e1r\u016fst 5-10 %) a \"-march=native\" (5-10 %), nahrazen\u00edm vol\u00e1n\u00ed read\/write za recv\/send (5-10 %) a sn\u00ed\u017een\u00edm re\u017eijn\u00edch n\u00e1klad\u016f p\u0159i pou\u017eit\u00ed pthreads (2-3 %). Celkov\u00fd n\u00e1r\u016fst v\u00fdkonu po optimalizaci k\u00f3du dos\u00e1hl 55 %, a propustnost vzrostla z 224k req\/s na 347k req\/s.\n<li class=\"l\"> Vypnut\u00ed ochrany proti zranitelnostem zp\u016fsoben\u00fdm spekulativn\u00edm prov\u00e1d\u011bn\u00edm instrukc\u00ed. Pou\u017eit\u00ed parametr\u016f p\u0159i na\u010d\u00edt\u00e1n\u00ed j\u00e1dra \"nospectre_v1 nospectre_v2 pti=off mds=off tsx_async_abort=off\" umo\u017enilo zv\u00fd\u0161it v\u00fdkon o 28 %, a propustnost vzrostla z 347k req\/s na 446k req\/s. Zvl\u00e1\u0161\u0165 n\u00e1r\u016fst z parametru \"nospectre_v1\" (ochrana proti Spectre v1 + SWAPGS) \u010dinil 1-2 %, \"nospectre_v2\" (ochrana proti Spectre v2) - 15-20 %, \"pti=off\" (Spectre v3\/Meltdown) - 6 %, \"mds=off tsx_async_abort=off\" (MDS\/Zombieload a TSX Asynchronous Abort) - 6 %. Nastaven\u00ed pro ochranu proti \u00fatok\u016fm L1TF\/Foreshadow (l1tf=flush), iTLB multihit, Speculative Store Bypass a SRBDS byly ponech\u00e1ny beze zm\u011bny, nebo\u0165 nem\u011bly vliv na v\u00fdkon, proto\u017ee se nep\u0159ekr\u00fdvaly s testovanou konfigurac\u00ed (nap\u0159\u00edklad specifick\u00e9 pro <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4395\">KVM<\/a>, vno\u0159enou virtualizaci a dal\u0161\u00ed modely CPU).\n<li class=\"l\"> Vypnut\u00ed mechanism\u016f auditu a blokov\u00e1n\u00ed syst\u00e9mov\u00fdch vol\u00e1n\u00ed pomoc\u00ed p\u0159\u00edkazu \"auditctl -a never,task\" a zad\u00e1n\u00ed volby \"--security-opt seccomp=unconfined\" p\u0159i spu\u0161t\u011bn\u00ed kontejneru docker. Celkov\u00fd n\u00e1r\u016fst v\u00fdkonu \u010dinil 11 %, a propustnost vzrostla z 446k req\/s na 495k req\/s.\n<li class=\"l\"> Vypnut\u00ed iptables\/netfilter prost\u0159ednictv\u00edm na\u010dten\u00ed jejich souvisej\u00edc\u00edch modul\u016f j\u00e1dra. K n\u00e1padu na vypnut\u00ed firewallu, kter\u00fd nebyl pou\u017e\u00edv\u00e1n ve specifick\u00e9m serverov\u00e9m \u0159e\u0161en\u00ed, vedly v\u00fdsledky profilov\u00e1n\u00ed, podle nich\u017e na prov\u00e1d\u011bn\u00ed funkce nf_hook_slow padlo 18 % \u010dasu. Upozor\u0148uje se, \u017ee nftables funguje efektivn\u011bji ne\u017e iptables, ale v Amazon Linuxu se st\u00e1le pou\u017e\u00edv\u00e1 iptables. Po vypnut\u00ed iptables se v\u00fdkon zv\u00fd\u0161il o 22 % a propustnost vzrostla z 495k req\/s na 603k req\/s.\n<li class=\"l\"> Sn\u00ed\u017een\u00ed migrace zpracovatel\u016f mezi r\u016fzn\u00fdmi j\u00e1dry CPU za \u00fa\u010delem zv\u00fd\u0161en\u00ed efektivity vyu\u017eit\u00ed procesorov\u00e9 cache. Optimalizace byla provedena jak na \u00farovni vazby proces\u016f libreactor na j\u00e1dra CPU (CPU Pinning), tak prost\u0159ednictv\u00edm p\u0159i\u0159azen\u00ed s\u00ed\u0165ov\u00fdch zpracovatel\u016f j\u00e1dra (Receive Side Scaling). Nap\u0159\u00edklad bylo provedeno vypnut\u00ed irqbalance a explicitn\u00ed nastaven\u00ed vazeb front na CPU v \/proc\/irq\/$IRQ\/smp_affinity_list. Pro pou\u017eit\u00ed stejn\u00e9ho j\u00e1dra CPU k zpracov\u00e1n\u00ed procesu libreactor a s\u00ed\u0165ov\u00e9 fronty p\u0159\u00edchoz\u00edch paket\u016f byl pou\u017eit vlastn\u00ed BPF zpracovatel, p\u0159ipojen\u00fd prost\u0159ednictv\u00edm nastaven\u00ed parametru SO_ATTACH_REUSEPORT_CBPF p\u0159i vytv\u00e1\u0159en\u00ed socketu. Pro p\u0159i\u0159azen\u00ed CPU front odchoz\u00edch paket\u016f byly zm\u011bn\u011bny nastaven\u00ed \/sys\/class\/net\/eth0\/queues\/tx-&lt;n&gt;\/xps_cpus. Celkov\u00fd n\u00e1r\u016fst v\u00fdkonu \u010dinil 38 %, a propustnost vzrostla z 603k req\/s na 834k req\/s.\n<li class=\"l\"> Optimalizace zpracov\u00e1n\u00ed p\u0159eru\u0161en\u00ed a pou\u017eit\u00ed poling (polling). Aktivace re\u017eimu adaptive-rx v ovlada\u010di ENA a manipulace se sysctl net.core.busy_read umo\u017enily zv\u00fd\u0161en\u00ed v\u00fdkonu o 28 % (propustnost vzrostla z 834k req\/s na 1.06M req\/s a latence se sn\u00ed\u017eila z 361\u03bcs na 292\u03bcs).\n<li class=\"l\"> Vypnut\u00ed syst\u00e9mov\u00fdch slu\u017eeb, kter\u00e9 vedly k nadbyte\u010dn\u00fdm blokac\u00edm v s\u00ed\u0165ov\u00e9m z\u00e1sobn\u00edku. Vypnut\u00ed dhclient a nastaven\u00ed <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/lir\/ipv4\/\"   title=\"IP adres\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"683\">IP adres<\/a> manu\u00e1ln\u011b vedlo k zv\u00fd\u0161en\u00ed v\u00fdkonu o 6 %, a propustnost vzrostla z 1.06M req\/s na 1.12M req\/s. D\u016fvod ovlivn\u011bn\u00ed dhclient na v\u00fdkon je analyzov\u00e1n v anal\u00fdze provozu pomoc\u00ed raw socketu.\n<li class=\"l\"> Boj se Spin Lock. P\u0159epnut\u00ed s\u00ed\u0165ov\u00e9ho stacku do re\u017eimu \"noqueue\" p\u0159es sysctl \"net.core.default_qdisc=noqueue\" a \"tc qdisc replace dev eth0 root mq\" vedlo k n\u00e1r\u016fstu v\u00fdkonu o 2 %, a propustnost vzrostla z 1.12M req\/s na 1.15M req\/s.\n<li class=\"l\"> Kone\u010dn\u00e9 drobn\u00e9 optimalizace, jako je deaktivace GRO (Generic Receive Offload) p\u0159\u00edkazem &#171;ethtool -K eth0 gro off&#187; a zm\u011bna algoritmu \u0159\u00edzen\u00ed zahlcen\u00ed z cubic na reno pomoc\u00ed sysctl &#171;net.ipv4.tcp_congestion_control=reno&#187;. Celkov\u00fd n\u00e1r\u016fst v\u00fdkonu \u010dinil 4 %. Propustnost vzrostla z 1.15M req\/s na 1.2M req\/s.          <\/ul>\n<p>Krom\u011b proveden\u00fdch optimalizac\u00ed \u010dl\u00e1nek tak\u00e9 zkoum\u00e1 metody, kter\u00e9 nevedly k o\u010dek\u00e1van\u00e9mu n\u00e1r\u016fstu v\u00fdkonu. Nap\u0159\u00edklad se uk\u00e1zaly jako ne\u00fa\u010dinn\u00e9:    <\/p>\n<ul>\n<li class=\"l\"> Samostatn\u00e9 spu\u0161t\u011bn\u00ed libreactoru se v\u00fdkonem neli\u0161ilo od spu\u0161t\u011bn\u00ed v kontejneru. N\u00e1hrada writev za send, zv\u00fd\u0161en\u00ed maxevents v epoll_wait a experimenty s verzemi a p\u0159\u00edznaky GCC (efekt byl patrn\u00fd pouze pro p\u0159\u00edznaky &#171;-O3&#187; a &#171;-march-native&#187;) nem\u011bly vliv.\n<li class=\"l\"> Na v\u00fdkon neovlivnilo ani aktualizaci j\u00e1dra Linux na verze 4.19 a 5.4, pou\u017e\u00edv\u00e1n\u00ed pl\u00e1nova\u010d\u016f SCHED_FIFO a SCHED_RR, manipulace s sysctl kernel.sched_min_granularity_ns, kernel.sched_wakeup_granularity_ns, transparent_hugepages=never, skew_tick=1 a clocksource=tsc.\n<li class=\"l\"> V ovlada\u010di ENA nem\u011blo zahrnut\u00ed re\u017eim\u016f Offload (segmentation, scatter-gather, rx\/tx checksum), sestaven\u00ed s p\u0159\u00edznakem &#171;-O3&#187; a pou\u017eit\u00ed parametr\u016f ena.rx_queue_size a ena.force_large_llq_header \u017e\u00e1dn\u00fd vliv.\n<li class=\"l\"> Zm\u011bny v s\u00ed\u0165ov\u00e9m z\u00e1sobn\u00edku nevedly ke zv\u00fd\u0161en\u00ed v\u00fdkonu:\n<ul>\n<li>Deaktivace IPv6: ipv6.disable=1<\/li>\n<li>Deaktivace VLAN: modprobe -rv 8021q<\/li>\n<li>Deaktivace kontroly zdroje paketu\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 (negativn\u00ed 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>Zdroj: <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\/cs\/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=\"cs_CZ\" \/>\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\/cs\/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\udd47Optimalizace Linuxu pro zpracov\u00e1n\u00ed 1,2 milionu JSON dotaz\u016f za sekundu | ProHoster","description":"Byl publikov\u00e1n podrobn\u00fd n\u00e1vod na lad\u011bn\u00ed prost\u0159ed\u00ed Linux pro maxim\u00e1ln\u00ed v\u00fdkon zpracov\u00e1n\u00ed HTTP dotaz\u016f.","canonical_url":"https:\/\/prohoster.info\/cs\/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":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/100221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=100221"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/100221\/revisions"}],"predecessor-version":[{"id":164272,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/100221\/revisions\/164272"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/100222"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=100221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=100221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=100221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}