{"id":30767,"date":"2019-10-31T21:37:21","date_gmt":"2019-10-31T18:37:21","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql\/"},"modified":"2019-10-31T21:37:21","modified_gmt":"2019-10-31T18:37:21","slug":"sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","title":{"rendered":"Cloudflare heeft zijn eigen VPN-service gelanceerd op basis van de 1.1.1.1-app voor mobiele apparaten","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Cloudflare heeft zijn eigen VPN-service gelanceerd op basis van de 1.1.1.1-app voor mobiele apparaten\" src=\"\/wp-content\/uploads\/2019\/04\/6960ab96e829332fbde0b2aebd79b48a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Filosofische inleiding<\/h3>\n<p>\nZoals bekend zijn er maar twee methoden om problemen op te lossen:<\/p>\n<ol>\n<li>Analyse methode of deductieve methode, van algemeen naar specifiek.<\/li>\n<li>Synthese methode of inductieve methode, van specifiek naar algemeen.<\/li>\n<\/ol>\n<p>\nVoor het probleem 'de prestaties van de database verbeteren' kan dit er als volgt uitzien.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b>Analyse<\/b> \u2014 we ontleden het probleem in afzonderlijke delen en proberen door deze op te lossen de prestaties van de database als geheel te verbeteren.<\/p>\n<p>In de praktijk ziet analyse er ongeveer zo uit:<\/p>\n<ul>\n<li>Er verschijnt een probleem (prestatie-incident) <\/li>\n<li>We verzamelen statistische informatie over de status van de database<\/li>\n<li>We zoeken naar knelpunten (bottlenecks)<\/li>\n<li>We lossen de problemen met de knelpunten op<\/li>\n<\/ul>\n<p>\n<b>Knelpunten van de database<\/b> \u2014 infrastructuur (CPU, Geheugen, Schijven, Netwerk, OS), instellingen (postgresql.conf), queries:<\/p>\n<p><b>Infrastructuur<\/b>: mogelijkheden voor invloed en veranderingen voor de engineer \u2014 bijna nul.<\/p>\n<p><b>Database-instellingen<\/b>: mogelijkheden voor wijzigingen zijn iets groter dan in de vorige geval, maar zijn meestal toch behoorlijk moeilijk, vooral in de cloud.<\/p>\n<p><b>Queries<\/b> naar de database: <u>de enige ruimte voor manoeuvre<\/u>.<\/p>\n<p><b>Synthese<\/b> \u2014 we verbeteren de prestaties van afzonderlijke delen, in de verwachting dat de prestaties van de database als geheel zullen verbeteren. <\/p>\n<h3>Lyrische inleiding of waarom is dit allemaal nodig <\/h3>\n<p>\nHoe verloopt het proces van het oplossen van prestatie-incidenten als de prestaties van de database niet worden gemonitord: <\/p>\n<p>Klant - \u201chet gaat slecht, het is traag, maak het goed voor ons\u201d<br \/>\nEngineer - \u201cwat bedoelt u met slecht?\u201d<br \/>\nKlant \u2013 \u201czo als het nu is (een uur geleden, gisteren, tijdens de laatste keer), langzaam\u201d<br \/>\nEngineer \u2013 \u201cen wanneer was het goed?\u201d<br \/>\nKlant \u2013 \u201ceen week (twee weken) geleden was het niet slecht.\u201d (Dat was geluk)<br \/>\nKlant \u2013 \u201cen ik herinner me niet wanneer het goed was, maar het is nu slecht\u201d (Gewoonlijk antwoord)<\/p>\n<p>Uiteindelijk krijgen we een klassiek beeld:<\/p>\n<p><img decoding=\"async\" alt=\"Cloudflare heeft zijn eigen VPN-service gelanceerd op basis van de 1.1.1.1-app voor mobiele apparaten\" src=\"\/wp-content\/uploads\/2019\/04\/836777a3f813b1f5c36cc23aa5af6ad0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Wie is verantwoordelijk en wat te doen?<\/h3>\n<p>\nDe eerste vraag is het gemakkelijkst te beantwoorden \u2014 de engineer DBA is altijd verantwoordelijk. <\/p>\n<p>De tweede vraag is ook niet te complex te beantwoorden \u2014 er moet een systeem voor prestatiemonitoring van de database worden ingevoerd.<\/p>\n<p>De eerste vraag rijst \u2014 <b>wat te monitoren?<\/b><\/p>\n<p><b>Pad 1. We zullen ALLES monitoren<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Cloudflare heeft zijn eigen VPN-service gelanceerd op basis van de 1.1.1.1-app voor mobiele apparaten\" src=\"\/wp-content\/uploads\/2019\/04\/9aa90bcce679e67d1749e270828cf792.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe CPU-belasting, het aantal schijflees- en schrijfoperaties, de toegewezen geheugengrootte en nog een megaton aan verschillende statistieken die elk redelijk werkend monitoringssysteem kan bieden.<\/p>\n<p>Dit resulteert in een berg grafieken, samenvattende tabellen en continue meldingen per e-mail, en 100% bezetheid van de ingenieur met het oplossen van een hoop identieke tickets, maar meestal met de standaardzin \u2013 \u201cTijdelijk probleem. Geen actie nodig.\u201d Maar iedereen is druk, en er is altijd iets om aan de klant te tonen \u2013 het werk gaat door.<\/p>\n<h3>Methode 2. Alleen monitoren wat nodig is, en wat niet nodig is, hoeft niet gemonitord te worden.<\/h3>\n<p>\nJe kunt het iets anders monitoren - alleen entiteiten en gebeurtenissen:<\/p>\n<ul>\n<li>waar de DBA-ingenieur invloed op kan uitoefenen.<\/li>\n<li>Voor welke er een actie-algoritme bestaat bij het optreden van een gebeurtenis of wijziging van een entiteit.<\/li>\n<\/ul>\n<p>\nVanuit deze veronderstelling en in herinnering aan \u201c<b>Filosofische inleiding<\/b>\u201d om regelmatig herhaling van \u201c<b>Lyrische inleiding of waarom is dit allemaal nodig<\/b>\u201d te vermijden, is het zinvol om de prestaties van afzonderlijke queries te monitoren, om optimalisatie en analyse mogelijk te maken, wat uiteindelijk moet leiden tot een verbetering van de algehele prestaties van de database. <\/p>\n<p>Maar om een zware query die invloed heeft op de algehele databaseprestaties te verbeteren, moet je deze eerst vinden. <\/p>\n<p>Dus ontstaan er twee onderling verbonden vragen:<\/p>\n<ul>\n<li>wat wordt als een zware query beschouwd? <\/li>\n<li>hoe zoek je naar zware queries.<\/li>\n<\/ul>\n<p>\nHet is duidelijk dat een zware query een query is die veel middelen van het besturingssysteem gebruikt om een resultaat te verkrijgen.<\/p>\n<p><b>Laten we overgaan naar de tweede vraag \u2013 hoe zoek je en monitor je vervolgens zware queries?<\/b><\/p>\n<h3>Welke mogelijkheden zijn er voor het monitoren van queries in PostgreSQL? <\/h3>\n<p>\nIn vergelijking met Oracle zijn er niet veel mogelijkheden, maar toch kan er iets gedaan worden.<\/p>\n<p><img decoding=\"async\" alt=\"Cloudflare heeft zijn eigen VPN-service gelanceerd op basis van de 1.1.1.1-app voor mobiele apparaten\" src=\"\/wp-content\/uploads\/2019\/04\/995419a92c0b340512bef6221e76822f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>PG_STAT_STATEMENTS<\/h3>\n<p>\nVoor het zoeken naar en monitoren van zware queries in PostgreSQL is de standaard extensie pg_stat_statements bedoeld.<\/p>\n<p>Na installatie van de extensie verschijnt er een gelijknamig view in de doeldatabase die gebruikt moet worden voor monitoringsdoeleinden.<\/p>\n<p>Doelkolommen van pg_stat_statements voor het opzetten van een monitoringsysteem:<\/p>\n<ul>\n<li><b>queryid <\/b>Interne hashcode, berekend op basis van de parse-boom van de operator.<\/li>\n<li><b>max_time <\/b>Maximale tijd, besteed aan de operator, in milliseconden.<\/li>\n<\/ul>\n<p>\nDoor de statistieken van deze twee kolommen te verzamelen en te gebruiken, kan een monitoringsysteem worden opgebouwd.<\/p>\n<h3>Hoe pg_stat_statements wordt gebruikt voor het monitoren van de prestaties van PostgreSQL.<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Cloudflare heeft zijn eigen VPN-service gelanceerd op basis van de 1.1.1.1-app voor mobiele apparaten\" src=\"\/wp-content\/uploads\/2019\/04\/fbec099eb6ff2de2fb3c90c7cbcf9505.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVoor het monitoren van de prestaties van verzoeken wordt gebruikt:<br \/>\nAan de kant van de doel-database \u2014 het weergave pg_stat_statements <br \/>\nAan de kant van <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/server\/dts-los-angeles\/\"   title=\"de server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3479\">de server<\/a> en de database monitoring \u2014 een set bash-scripts en service-tabellen.<\/p>\n<h3>Fase 1 \u2014 het verzamelen van statistische gegevens<\/h3>\n<p>\nOp de host voor monitoring wordt regelmatig een script uitgevoerd via cron dat de inhoud van de weergave pg_stat_statements van de doel-database kopieert naar de tabel pg_stat_history in de monitoring-database. <\/p>\n<p>Op deze manier wordt een geschiedenis van de uitvoering van afzonderlijke verzoeken gevormd, die kan worden gebruikt voor het genereren van prestatierapporten en het instellen van metrics.<\/p>\n<h3>Fase 2 \u2014 het instellen van prestatiemetrics<\/h3>\n<p>\nGebaseerd op de verzamelde gegevens selecteren we de verzoeken waarvan de uitvoering het kritischst\/belangrijkst is voor de klant (applicatie). In overleg met de opdrachtgever stellen we de waarden van de prestatiemetrics in met behulp van de velden queryid en max_time. <\/p>\n<h3>Resultaat \u2014 start van de prestatiemonitoring<\/h3>\n<p><\/p>\n<ol>\n<li>Het monitoring-script controleert bij de start de geconfigureerde prestatiemetrics door de waarde van de max_time metric te vergelijken met de waarde uit de weergave pg_stat_statements in de doel-database.<\/li>\n<li>Als de waarde in de doel-database de waarde van de metric overschrijdt, wordt er een waarschuwing gegenereerd (incident in het ticketsysteem)<\/li>\n<\/ol>\n<p><\/p>\n<h3>Extra mogelijkheid 1<\/h3>\n<p>\n<b>Geschiedenis van uitvoeringsplannen van verzoeken<\/b><\/p>\n<p>Voor het oplossen van prestatietincidenten is het zeer nuttig om een geschiedenis te hebben van de wijzigingen in de uitvoeringsplannen van verzoeken. <\/p>\n<p>Voor het opslaan van de geschiedenis wordt de service-tabel log_query gebruikt. De tabel wordt gevuld tijdens de analyse van het ge\u00fcploade logbestand van PostgreSQL. Aangezien het logbestand, in tegenstelling tot de weergave pg_stat_statements, de volledige tekst met uitvoeringsparameters bevat, in plaats van de genormaliseerde tekst, is het mogelijk om niet alleen de tijd en duur van verzoeken te loggen, maar ook de uitvoeringsplannen op dat moment op te slaan.<\/p>\n<h3>Extra mogelijkheid 2<\/h3>\n<p>\n<b>Doorlopend proces van prestatieverbetering<\/b><\/p>\n<p>Monitoring van individuele aanvragen is in het algemeen niet bedoeld voor het continu verbeteren van de prestaties van de database als geheel, omdat het zich alleen richt op de prestaties van individuele aanvragen. Het is echter mogelijk om de methode uit te breiden en monitoring in te stellen voor alle databases. <\/p>\n<p>Hiervoor moeten extra prestatiestatistieken worden ingevoerd:<\/p>\n<ul>\n<li>In de afgelopen dagen<\/li>\n<li>Voor de basisperiode<\/li>\n<\/ul>\n<p>\nHet script selecteert aanvragen uit de weergave pg_stat_statements in de doel-database en vergelijkt de waarde van max_time met de gemiddelde waarde van max_time; in het eerste geval voor de afgelopen dagen of voor de gekozen periode (baseline), in het tweede geval.<\/p>\n<p>Dus in geval van prestatievermindering voor een willekeurige aanvraag, wordt er automatisch een waarschuwing gegenereerd, zonder handmatige analyse van rapporten. <\/p>\n<h3>Wat heeft synthese hiermee te maken?<\/h3>\n<p>\nIn de beschreven benadering, zoals de synthese-methode impliceert, verbeteren we het systeem als geheel door de afzonderlijke delen van het systeem te verbeteren.<\/p>\n<ul>\n<li>De aanvraag die door de database wordt uitgevoerd \u2013 these<\/li>\n<li>De gewijzigde aanvraag \u2013 antithese<\/li>\n<li>Verandering van de staat van het systeem \u2014 synthese<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Cloudflare heeft zijn eigen VPN-service gelanceerd op basis van de 1.1.1.1-app voor mobiele apparaten\" src=\"\/wp-content\/uploads\/2019\/04\/088abb9900319353a42d236d26a20a2c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Ontwikkeling van het systeem<\/h3>\n<p><\/p>\n<ul>\n<li>Uitbreiding van de verzamelde statistieken door geschiedenis toe te voegen aan de systeembweergave pg_stat_activity<\/li>\n<li>Uitbreiding van de verzamelde statistieken door geschiedenis toe te voegen voor de statistieken van individuele tabellen die betrokken zijn bij de aanvragen <\/li>\n<li>Integratie met het monitoring systeem in de AWS cloud<\/li>\n<li>En verder, we kunnen nog iets verzinnen\u2026<\/li>\n<\/ul>\n<p>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444988\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u043e\u0435 \u0432\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447: \u041c\u0435\u0442\u043e\u0434 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434 \u0434\u0435\u0434\u0443\u043a\u0446\u0438\u0438, \u0438\u043b\u0438 \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u043a \u0447\u0430\u0441\u0442\u043d\u043e\u043c\u0443. \u041c\u0435\u0442\u043e\u0434 \u0441\u0438\u043d\u0442\u0435\u0437\u0430 \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434 \u0438\u043d\u0434\u0443\u043a\u0446\u0438\u0438, \u0438\u043b\u0438 \u043e\u0442 \u0447\u0430\u0441\u0442\u043d\u043e\u0433\u043e \u043a \u043e\u0431\u0449\u0435\u043c\u0443. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u201c\u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u201d \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0410\u043d\u0430\u043b\u0438\u0437 \u2014 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0438 \u0440\u0435\u0448\u0430\u044f \u0438\u0445 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22752,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30767","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u043e\u0435.\" \/>\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\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql\" \/>\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\u0421\u0438\u043d\u0442\u0435\u0437 \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 PostgreSQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u043e\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql\" \/>\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=\"2019-10-31T18:37:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:37:21+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\udd47Synthese als een van de methoden voor het verbeteren van de prestaties van PostgreSQL | ProHoster","description":"Filosofisch.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","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\u0421\u0438\u043d\u0442\u0435\u0437 \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 PostgreSQL | ProHoster","og:description":"\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u043e\u0435.","og:url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","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":"2019-10-31T18:37:21+00:00","article:modified_time":"2019-10-31T18:37:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30767","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":"2026-02-22 15:31:13","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:29:57","updated":"2026-02-22 15:31:13","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\/30767","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=30767"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/30767\/revisions"}],"predecessor-version":[{"id":162005,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/30767\/revisions\/162005"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/22752"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=30767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=30767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=30767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}