{"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\/nl\/blog\/news\/optimizacziya-linux-dlya-obrabotki-1-2-mln-json-zaprosov-v-sekundu","title":{"rendered":"Optimalisatie van Linux voor het verwerken van 1,2 miljoen JSON-verzoeken per seconde","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Er is een gedetailleerde handleiding gepubliceerd voor het tunen van de Linux-omgeving om de maximale prestaties bij het verwerken van HTTP-verzoeken te bereiken. De voorgestelde methoden hebben de prestaties van de JSON-handler, gebaseerd op de libreactor-bibliotheek, in de Amazon EC2-omgeving (4 vCPU) verhoogd van 224 duizend API-verzoeken per seconde met standaardinstellingen van Amazon Linux 2 met kernel 4.14 naar 1,2 miljoen verzoeken per seconde na optimalisatie (een stijging van 436%), en resulteerde ook in een vermindering van de latentie bij het verwerken van verzoeken met 79%. De voorgestelde methoden zijn niet specifiek voor libreactor en werken ook met andere http-servers, waaronder nginx, Actix, Netty en Node.js (libreactor werd in de tests gebruikt omdat de oplossing op basis daarvan de beste prestaties vertoonde).      <center><img decoding=\"async\" alt=\"Optimalisatie van Linux voor het verwerken van 1,2 miljoen JSON-verzoeken per seconde\" src=\"\/wp-content\/uploads\/2021\/05\/908fb8d92e84a3e7557af7f6c622298e.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Belangrijkste optimalisaties:  <\/p>\n<ul>\n<li class=\"l\"> Optimalisatie van de libreactor-code. De basis was versie R18 uit de Techempower-set, die is verbeterd door code te verwijderen die het aantal gebruikte CPU-kernen beperkte (de optimalisatie versnelde de werking met 25-27%), het compileren in GCC met de opties '-O3' (een verbetering van 5-10%) en '-march-native' (5-10%), het vervangen van read\/write door recv\/send (5-10%) en het verlagen van overhead bij het gebruik van pthreads (2-3%). De algehele prestatieverbetering na de code-optimalisatie was 55%, terwijl de doorvoer steeg van 224k req\/s naar 347k req\/s.\n<li class=\"l\"> Het uitschakelen van bescherming tegen kwetsbaarheden door speculatieve uitvoering van instructies. Het gebruik van parameters bij het opstarten van de kernel 'nospectre_v1 nospectre_v2 pti=off mds=off tsx_async_abort=off' resulteerde in een prestatieverbetering van 28%, terwijl de doorvoer steeg van 347k req\/s naar 446k req\/s. De afzonderlijke verbetering van de parameter 'nospectre_v1' (bescherming tegen Spectre v1 + SWAPGS) was 1-2%, 'nospectre_v2' (bescherming tegen Spectre v2) \u2014 15-20%, 'pti=off' (Spectre v3\/Meltdown) \u2014 6%, 'mds=off tsx_async_abort=off' (MDS\/Zombieload en TSX Asynchronous Abort) \u2014 6%. De instellingen voor bescherming tegen L1TF\/Foreshadow-aanvallen (l1tf=flush), iTLB multihit, Speculative Store Bypass en SRBDS zijn ongewijzigd gelaten, aangezien ze geen invloed hadden op de prestaties doordat ze niet overlapten met de geteste configuratie (bijvoorbeeld specifiek voor <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4395\">KVM<\/a>, geneste virtualisatie en andere CPU-modellen).\n<li class=\"l\"> Het uitschakelen van auditmechanismen en het blokkeren van systeemaanroepen met het commando 'auditctl -a never,task' en de optie '--security-opt seccomp=unconfined' bij het starten van de docker-container. De algehele prestatieverbetering was 11%, terwijl de doorvoer steeg van 446k req\/s naar 495k req\/s.\n<li class=\"l\"> Uitschakelen van iptables\/netfilter door het uitladen van de bijbehorende kernelmodules. De gedachte om de firewall uit te schakelen, die niet werd gebruikt in de specifieke serveroplossing, werd gestimuleerd door profielen die aangaven dat het uitvoeren van de functie nf_hook_slow 18% van de tijd in beslag nam. Het wordt opgemerkt dat nftables effici\u00ebnter werkt dan iptables, maar iptables blijft nog steeds gebruikt in Amazon Linux. Na het uitschakelen van iptables was er een prestatieverbetering van 22%, en de doorvoer nam toe van 495k req\/s naar 603k req\/s.\n<li class=\"l\"> Vermindering van migratie van verwerkers tussen verschillende CPU-cores om de effici\u00ebntie van de gebruik van de processork cache te verhogen. De optimalisatie werd uitgevoerd op zowel het niveau van procesbinding van libreactor aan CPU-cores (CPU Pinning) als via het vastleggen van netwerkinvoerverwerkers (Receive Side Scaling). Bijvoorbeeld, irqbalance is uitgeschakeld en de bindngen van wachtrijen aan de CPU zijn expliciet ingesteld in \/proc\/irq\/$IRQ\/smp_affinity_list. Voor het gebruik van dezelfde CPU-core voor het verwerken van libreactor-processen en de netwerkwachtrij van inkomende pakketten is een eigen BPF-handler ingezet, verbonden via het instellen van de SO_ATTACH_REUSEPORT_CBPF-vlag bij het maken van de socket. Voor de binding van de CPU aan uitgaande pakketwachtrijen zijn de instellingen in \/sys\/class\/net\/eth0\/queues\/tx-&lt;n&gt;\/xps_cpus gewijzigd. De totale prestatieverbetering was 38%, en de doorvoer steeg van 603k req\/s naar 834k req\/s.\n<li class=\"l\"> Optimalisatie van interruptverwerking en gebruik van polling. Het inschakelen van de adaptive-rx-modus in de ENA-driver en manipulatie van sysctl net.core.busy_read resulteerde in een prestatieverbetering van 28% (de doorvoer steeg van 834k req\/s naar 1.06M req\/s, terwijl de vertragingen daalden van 361\u00b5s naar 292\u00b5s).\n<li class=\"l\"> Uitschakelen van systeemdiensten die leiden tot onnodige blokkades in de netwerkstack. Het uitschakelen van dhclient en handmatige instelling <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/lir\/ipv4\/\"   title=\"IP-adressen\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"683\">IP-adressen<\/a> leidde tot een prestatieverbetering van 6%, en de doorvoer steeg van 1.06M req\/s naar 1.12M req\/s. De reden voor de impact van dhclient op de prestaties is geanalyseerd met behulp van raw-socket traffic.\n<li class=\"l\"> Bestrijding van Spin Lock. Het overzetten van de netwerkstack naar de 'noqueue'-modus via sysctl 'net.core.default_qdisc=noqueue' en 'tc qdisc replace dev eth0 root mq' leidde tot een prestatieverbetering van 2%, terwijl de doorvoer steeg van 1.12M req\/s naar 1.15M req\/s.\n<li class=\"l\"> Eindoptimalisaties zoals het uitschakelen van GRO (Generic Receive Offload) met het commando &#171;ethtool -K eth0 gro off&#187; en het vervangen van het congestie-algoritme cubic door reno met sysctl &#171;net.ipv4.tcp_congestion_control=reno&#187;. De totale prestatiewinst was 4%. De doorvoersnelheid steeg van 1,15M req\/s naar 1,2M req\/s.          <\/ul>\n<p>Naast de werkende optimalisaties worden in het artikel ook methoden besproken die niet hebben geleid tot de verwachte prestatieverbetering. Bijvoorbeeld, de volgende bleken ineffectief:    <\/p>\n<ul>\n<li class=\"l\"> Een aparte uitvoering van libreactor had qua prestaties geen verschil met uitvoering in de container. Het vervangen van writev door send, het verhogen van maxevents in epoll_wait, en experimenten met versies en vlaggen van GCC hadden geen invloed (het effect was alleen merkbaar voor de vlaggen &#171;-O3&#187; en &#171;-march-native&#187;).\n<li class=\"l\"> De prestatie werd niet be\u00efnvloed door de update van de Linux-kernel naar versies 4.19 en 5.4, het gebruik van de planningsstrategie\u00ebn SCHED_FIFO en SCHED_RR, manipulaties met sysctl kernel.sched_min_granularity_ns, kernel.sched_wakeup_granularity_ns, transparent_hugepages=never, skew_tick=1 en clocksource=tsc.\n<li class=\"l\"> In de ENA-driver had het inschakelen van Offload-modus (segmentation, scatter-gather, rx\/tx checksum), het bouwen met de vlag &#171;-O3&#187; en het toepassen van de parameters ena.rx_queue_size en ena.force_large_llq_header geen effect.\n<li class=\"l\"> De wijzigingen in de netwerkmiddleware leidden niet tot prestatieverbeteringen:\n<ul>\n<li>Uitschakelen van IPv6: ipv6.disable=1<\/li>\n<li>Uitschakelen van VLAN: modprobe -rv 8021q<\/li>\n<li>Uitschakelen van de controle van de bron van het pakket\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 (negatief effect)<\/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>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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\udd47 Linux-optimalisatie voor het verwerken van 1,2 miljoen JSON-verzoeken per seconde | ProHoster","description":"Een gedetailleerde gids voor het tunen van de Linux-omgeving voor het bereiken van de maximale prestaties bij het verwerken van HTTP-verzoeken is gepubliceerd.","canonical_url":"https:\/\/prohoster.info\/nl\/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":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/100221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=100221"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/100221\/revisions"}],"predecessor-version":[{"id":164272,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/100221\/revisions\/164272"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/100222"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=100221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=100221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=100221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}