{"id":38927,"date":"2019-10-31T22:26:48","date_gmt":"2019-10-31T19:26:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb\/"},"modified":"2019-10-31T22:26:48","modified_gmt":"2019-10-31T19:26:48","slug":"vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb","title":{"rendered":"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Zabbix \u00e4r ett \u00f6vervakningssystem. Precis som alla andra system st\u00e5r det inf\u00f6r tre grundl\u00e4ggande problem som alla \u00f6vervakningssystem m\u00f6ter: insamling och bearbetning av data, lagring av historik och dess reng\u00f6ring.<\/p>\n<p>Stegen f\u00f6r att erh\u00e5lla, bearbeta och registrera data tar tid. Lite, men f\u00f6r ett st\u00f6rre system kan det leda till betydande f\u00f6rdr\u00f6jningar. Lagringsproblemet \u00e4r en fr\u00e5ga om datatillg\u00e5ng. De anv\u00e4nds f\u00f6r rapportering, kontroller och triggers. F\u00f6rdr\u00f6jningar i datatillg\u00e5ng p\u00e5verkar ocks\u00e5 prestandan. N\u00e4r databaser v\u00e4xer m\u00e5ste f\u00f6r\u00e5ldrad data raderas. Radering \u00e4r en resurskr\u00e4vande operation som ocks\u00e5 p\u00e5verkar resurstillg\u00e5ngen.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/9b7aa23705cd32b4d8d858ad78b181fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProblemen med f\u00f6rdr\u00f6jningar vid insamling och lagring i Zabbix l\u00f6ses med caching: flera typer av cache och caching i databasen. F\u00f6r att l\u00f6sa det tredje problemet \u00e4r caching inte tillr\u00e4ckligt, d\u00e4rf\u00f6r har Zabbix implementerat TimescaleDB. Mer om detta kommer att ber\u00e4ttas av <strong>Andrej Gushchin<\/strong> \u2014 teknisk supportingenj\u00f6r <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/zabbix\/\">Zabbix SIA<\/a><\/noindex>. Andrej har arbetat med Zabbix-support i \u00f6ver 6 \u00e5r och har direkt erfarenhet av prestanda.<\/p>\n<p>Hur fungerar TimescaleDB, vilken prestanda kan det ge j\u00e4mf\u00f6rt med vanligt PostgreSQL? Vilken roll spelar Zabbix f\u00f6r TimescaleDB? Hur b\u00f6rjar man fr\u00e5n noll och hur migrerar man fr\u00e5n PostgreSQL och vilken konfiguration ger b\u00e4st prestanda? Allt detta kommer vi att diskutera.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"umRk94j5M8o\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/umRk94j5M8o\/hqdefault.jpg\" alt=\"Spela video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h2>Prestandautmaningar<\/h2>\n<p>\nVarje \u00f6vervakningssystem st\u00e4lls inf\u00f6r specifika prestandautmaningar. Jag kommer att ber\u00e4tta om tre av dem: insamling och bearbetning av data, lagring och rensning av historik.<\/p>\n<p><strong>Snabb insamling och bearbetning av data. <\/strong>Ett bra \u00f6vervakningssystem m\u00e5ste snabbt samla in all data och bearbeta den enligt triggeruttryck \u2014 efter sina egna kriterier. Efter bearbetning m\u00e5ste systemet ocks\u00e5 snabbt spara dessa data i databasen f\u00f6r senare anv\u00e4ndning.<\/p>\n<p><strong>Lagring av historik. <\/strong>Ett bra \u00f6vervakningssystem m\u00e5ste lagra historik i databasen och ge enkel \u00e5tkomst till m\u00e4tdata. Historik \u00e4r n\u00f6dv\u00e4ndig f\u00f6r att anv\u00e4ndas i rapporter, diagram, triggers, tr\u00f6skelv\u00e4rden och ber\u00e4knade datatyper f\u00f6r notifieringar.<\/p>\n<p><strong>Rensning av historik. <\/strong>Ibland kommer en dag d\u00e5 du inte beh\u00f6ver lagra metrik. Varf\u00f6r skulle du vilja ha data som samlades in f\u00f6r 5 \u00e5r sedan, f\u00f6r en m\u00e5nad eller tv\u00e5: vissa noder har tagits bort, vissa v\u00e4rdar eller metrik \u00e4r inte l\u00e4ngre n\u00f6dv\u00e4ndiga eftersom de har blivit f\u00f6r\u00e5ldrade och inte samlas in l\u00e4ngre. Ett bra \u00f6vervakningssystem b\u00f6r lagra historiska data och regelbundet ta bort dem f\u00f6r att f\u00f6rhindra att databasen v\u00e4xer sig f\u00f6r stor.<\/p>\n<blockquote><p>Rensning av f\u00f6r\u00e5ldrad data \u00e4r en akut fr\u00e5ga som p\u00e5verkar databasens prestanda kraftigt.<\/p><\/blockquote>\n<p><\/p>\n<h2>Caching i Zabbix<\/h2>\n<p>\nI Zabbix hanteras f\u00f6rsta och andra anrop genom caching. F\u00f6r insamling och bearbetning av data anv\u00e4nds RAM. F\u00f6r lagring \u2013 historik i triggerar, diagram och ber\u00e4knade datakoder. P\u00e5 databasens sida finns det viss caching f\u00f6r huvudfr\u00e5gor, till exempel diagram.<\/p>\n<p>Caching p\u00e5 sj\u00e4lva Zabbix-servern \u00e4r:<\/p>\n<ul>\n<li>ConfigurationCache;<\/li>\n<li>ValueCache;<\/li>\n<li>HistoryCache;<\/li>\n<li>TrendsCache.<\/li>\n<\/ul>\n<p>\nL\u00e5t oss titta n\u00e4rmare p\u00e5 dem.<\/p>\n<h3>ConfigurationCache<\/h3>\n<p>\nDetta \u00e4r den huvudsakliga cachen d\u00e4r vi lagrar metrik, v\u00e4rdar, datakoder, triggerar \u2013 allt som beh\u00f6vs f\u00f6r PreProcessing och datainsamling.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/122708198f6cd136fbd0420876c06e9c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAllt detta lagras i ConfigurationCache f\u00f6r att undvika extra fr\u00e5gor till databasen. Efter serverstart uppdaterar vi denna cache och skapar och uppdaterar konfigurationer regelbundet.<\/p>\n<h3>Datainsamling<\/h3>\n<p>\nSchemat \u00e4r ganska stort, men det viktigaste \u00e4r <strong>insamlarna<\/strong>. Det \u00e4r olika \"pollers\" \u2013 insamlingsprocesser. De ansvarar f\u00f6r olika typer av insamling: de h\u00e4mtar data via SNMP, IPMI och \u00f6verf\u00f6r allt detta till PreProcessing.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/deff5d9ff358f1b04b505d18c7770f21.jpg\" style=\"display:block;margin: 0 auto;\" \/><em>Insamlarna \u00e4r markerade med en orange linje.<\/em><\/p>\n<p>I Zabbix finns det ber\u00e4knade aggregationsdatakoder som beh\u00f6vs f\u00f6r att aggregera kontrollerna. Om vi har dem h\u00e4mtar vi data f\u00f6r dem direkt fr\u00e5n ValueCache.<\/p>\n<h3>PreProcessing HistoryCache<\/h3>\n<p>\nAlla insamlare anv\u00e4nder ConfigurationCache f\u00f6r att f\u00e5 uppgifter. Sedan \u00f6verf\u00f6r de dem till PreProcessing.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/116e25100ebdf9ed209a9b04fa6fa156.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPreProcessing anv\u00e4nder ConfigurationCache f\u00f6r att h\u00e4mta stegen i PreProcessing. Den bearbetar dessa data p\u00e5 olika s\u00e4tt.<\/p>\n<p>Efter att ha bearbetat data med hj\u00e4lp av PreProcessing sparar vi dem i HistoryCache f\u00f6r att bearbeta dem. H\u00e4r slutar datainsamlingen och vi g\u00e5r vidare till huvudprocessen i Zabbix \u2013 <strong>history syncer<\/strong>, eftersom det \u00e4r en monolitisk arkitektur.<\/p>\n<p><em>Obs: PreProcessing \u00e4r en ganska resurskr\u00e4vande operation. Fr\u00e5n version 4.2 har den flyttats till proxy. Om du har ett mycket stort Zabbix med m\u00e5nga datakoder och h\u00f6g insamlingsfrekvens underl\u00e4ttar detta kraftigt arbetsb\u00f6rdan.<\/em><\/p>\n<h3>ValueCache, historik och trender cache<\/h3>\n<p><\/p>\n<blockquote><p>Historiksynkroniseraren \u00e4r den huvudsakliga processen som atom\u00e4rt bearbetar varje dataval, det vill s\u00e4ga varje v\u00e4rde.<\/p><\/blockquote>\n<p>\nHistoriksynkroniseraren tar v\u00e4rden fr\u00e5n HistoryCache och kontrollerar i Configuration om det finns triggers f\u00f6r ber\u00e4kningar. Om de finns - ber\u00e4knar den.<\/p>\n<p>Historiksynkroniseraren skapar en h\u00e4ndelse, en eskalering, f\u00f6r att skapa meddelanden om det beh\u00f6vs enligt konfigurationen, och registrerar. Om det finns triggers f\u00f6r efterf\u00f6ljande bearbetning, sparar den detta v\u00e4rde i ValueCache f\u00f6r att inte beh\u00f6va h\u00e4nvisa till historiktabellen. S\u00e5 fylls ValueCache med data som beh\u00f6vs f\u00f6r ber\u00e4kning av triggers, ber\u00e4knade element.<\/p>\n<p>Historiksynkroniseraren registrerar all data i databasen, och den - p\u00e5 disken. Bearbetningsprocessen slutar h\u00e4r.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/4d74195381fda7756b0250982f6896be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Caching i databasen<\/h3>\n<p>\nP\u00e5 databassidan finns det olika cachar n\u00e4r du vill titta p\u00e5 diagram eller rapporter om h\u00e4ndelser:<\/p>\n<ul>\n<li><code>Innodb_buffer_pool<\/code> p\u00e5 MySQL-sidan;<\/li>\n<li><code>shared_buffers<\/code> p\u00e5 PostgreSQL-sidan;<\/li>\n<li><code>effective_cache_size<\/code> p\u00e5 Oracle-sidan;<\/li>\n<li><code>shared_pool<\/code> p\u00e5 DB2-sidan.<\/li>\n<\/ul>\n<p>\nDet finns m\u00e5nga andra cacher, men detta \u00e4r de huvudsakliga f\u00f6r alla databaser. De g\u00f6r det m\u00f6jligt att h\u00e5lla data i RAM som ofta beh\u00f6vs f\u00f6r f\u00f6rfr\u00e5gningar. De har sina egna teknologier f\u00f6r detta.<\/p>\n<h3>Databasens prestanda \u00e4r kritiskt viktig<\/h3>\n<p>\nZabbix-servern samlar st\u00e4ndigt in data och registrerar dem. Vid omstart l\u00e4ser den ocks\u00e5 fr\u00e5n historiken f\u00f6r att fylla ValueCache. Skripten och rapporterna anv\u00e4nder <strong>Zabbix API<\/strong>, som bygger p\u00e5 webgr\u00e4nssnittet. Zabbix API g\u00f6r f\u00f6rfr\u00e5gningar mot databasen och f\u00e5r n\u00f6dv\u00e4ndig data f\u00f6r diagram, rapporter, h\u00e4ndelselistor och senaste problemen.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/dd0efdc4e57c1197d448ce453012091e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nF\u00f6r visualisering - <strong>Grafana<\/strong>. Bland v\u00e5ra anv\u00e4ndare \u00e4r det en popul\u00e4r l\u00f6sning. Den kan skicka f\u00f6rfr\u00e5gningar direkt genom Zabbix API b\u00e5de till databasen och skapar en viss konkurrens f\u00f6r att h\u00e4mta data. D\u00e4rf\u00f6r beh\u00f6vs en mer finjusterad och bra konfiguration av databasen f\u00f6r att motsvara snabb resultat\u00e5tergivning och testning.<\/p>\n<h2>Housekeeper<\/h2>\n<p>\nDet tredje prestandautmaningen i Zabbix \u00e4r rensning av historik med Housekeeper. Den f\u00f6ljer alla inst\u00e4llningar - i datatelemen anges hur l\u00e4nge dynamikf\u00f6r\u00e4ndringar (trender) ska bevaras i dagar.<\/p>\n<p>TrendsCache ber\u00e4knar vi i realtid. N\u00e4r data kommer in aggregerar vi dem under en timme och registrerar dem i tabeller f\u00f6r dynamikf\u00f6r\u00e4ndringar av trender.<\/p>\n<p>Housekeeper startar och tar bort information fr\u00e5n databasen med vanliga \"selects\". Detta \u00e4r inte alltid effektivt, vilket kan f\u00f6rst\u00e5s fr\u00e5n prestandadiagram f\u00f6r interna processer.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/a3af1badd14b1092bc26e0b53845ae04.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet r\u00f6da diagrammet visar att History syncer konstant \u00e4r upptagen. Det orange diagrammet ovan \u00e4r Housekeeper, som st\u00e4ndigt startar. Den v\u00e4ntar p\u00e5 att databasen ska ta bort alla rader som den har beg\u00e4rt.<\/p>\n<p>N\u00e4r b\u00f6r man st\u00e4nga av Housekeeper? Till exempel, om det finns \"Item ID\" och man beh\u00f6ver ta bort de senaste 5 000 raderna under en viss tid. Sj\u00e4lvklart sker detta via index. Men vanligtvis \u00e4r datasetet v\u00e4ldigt stort, och databasen l\u00e4ser fortfarande fr\u00e5n disken och laddar upp i cachen. Detta \u00e4r alltid en mycket kostsam operation f\u00f6r databasen och kan, beroende p\u00e5 storleken av databasen, leda till prestandaproblem.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/0778318b539fbe33318e8a7310f8a89b.jpg\" style=\"display:block;margin: 0 auto;\" \/> <\/p>\n<p>Housekeeper kan enkelt st\u00e4ngas av. I webbgr\u00e4nssnittet finns en inst\u00e4llning under \"Administration general\" f\u00f6r Housekeeper. Vi st\u00e4nger av intern Housekeeping f\u00f6r intern trendhistorik, och den hanterar inte l\u00e4ngre detta.<\/p>\n<p>Housekeeper har st\u00e4ngts av, och diagrammen har j\u00e4mnat ut sig. Vilka problem kan uppst\u00e5 i detta fall, och vad kan hj\u00e4lpa till att l\u00f6sa den tredje prestandautmaningen?<\/p>\n<h2>Partitioning \u2014 partitionering eller sektionering<\/h2>\n<p>\nOftast konfigureras partitionering p\u00e5 olika s\u00e4tt i varje relationsdatabas, som jag har n\u00e4mnt. Varje har sin egen teknik, men de \u00e4r liknande i stort. Skapandet av en ny partition leder ofta till vissa problem.<\/p>\n<p>Oftast anpassas partitioner beroende p\u00e5 \"setup\" \u2014 m\u00e4ngden data som skapas under en dag. Vanligtvis s\u00e4tts Partitioning f\u00f6r en dag, detta \u00e4r minimi. F\u00f6r trender s\u00e4tts en ny partition f\u00f6r en m\u00e5nad.<\/p>\n<p>V\u00e4rden kan \u00e4ndras i fall av ett mycket stort \"setup\". Om ett litet \"setup\" \u00e4r upp till 5 000 nvps (nya v\u00e4rden per sekund), medel \u00e4r mellan 5 000 och 25 000, medan stort \u00e4r \u00f6ver 25 000 nvps. Detta \u00e4r stora och mycket stora installationer som kr\u00e4ver noggrann databasjustering.<\/p>\n<p>Vid mycket stora installationer kan ett intervall p\u00e5 en dag vara suboptimalt. Jag har sett MySQL-partitioner p\u00e5 40 GB eller mer per dag. Detta \u00e4r en mycket stor m\u00e4ngd data som kan leda till problem, och det b\u00f6r minskas.<\/p>\n<h3>Vad ger Partitioning?<\/h3>\n<p>\n<strong>Sektionering av tabeller<\/strong>. Ofta \u00e4r detta separata filer p\u00e5 disken. Fr\u00e5geplanen v\u00e4ljer mer optimalt en partition. Vanligtvis anv\u00e4nds partitionering efter intervall - detta g\u00e4ller \u00e4ven f\u00f6r Zabbix. Vi anv\u00e4nder d\u00e4r \"timestamp\" - tiden sedan epoch. Hos oss \u00e4r detta vanliga siffror. Du anger b\u00f6rjan och slutet av dagen - detta \u00e4r en partition.<\/p>\n<p><strong>Snabb borttagning<\/strong> \u2014 <code>TA BORT<\/code>. En fil\/subtabell v\u00e4ljs, inte en radval f\u00f6r borttagning.<\/p>\n<p><strong>Ger avsev\u00e4rt snabbare dataval<\/strong> <code>V\u00c4LJ<\/code> \u2014 anv\u00e4nder en eller flera partitioner, inte hela tabellen. Om du beg\u00e4r data fr\u00e5n tv\u00e5 dagar sedan h\u00e4mtas de snabbare fr\u00e5n databasen, eftersom det bara beh\u00f6ver laddas i cachen och endast ett fil, inte en stor tabell, beh\u00f6ver f\u00e5s fram.<\/p>\n<p>Ofta p\u00e5skyndar detta m\u00e5nga databaser ocks\u00e5 <code>INS\u00c4TT<\/code> \u2014 ins\u00e4ttningar i barn-tabellen.<\/p>\n<h2>TimescaleDB<\/h2>\n<p>\nF\u00f6r v 4.2 har vi noterat TimescaleDB. Det \u00e4r ett till\u00e4gg f\u00f6r PostgreSQL med ett inbyggt gr\u00e4nssnitt. Till\u00e4gget fungerar effektivt med tidsseriedata utan att f\u00f6rlora f\u00f6rdelarna med relationsdatabaser. TimescaleDB partitionerar ocks\u00e5 automatiskt.<\/p>\n<p>I TimescaleDB finns det en begrepp <strong>hypertabell<\/strong> (hypertable) som du skapar. Den inneh\u00e5ller <strong>chunkar<\/strong> \u2014 partitioner. Chunkar \u00e4r automatiskt hanterade delar av hypertabellen, som inte p\u00e5verkar andra delar. F\u00f6r varje chunk finns en egen tidsintervall.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/91a24560ff12aa17f98689e3445f50e1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>TimescaleDB vs PostgreSQL<\/h3>\n<p>\nTimescaleDB fungerar verkligen effektivt. Tillverkarna av till\u00e4gget h\u00e4vdar att de anv\u00e4nder en mer korrekt algoritm f\u00f6r att behandla f\u00f6rfr\u00e5gningar, s\u00e4rskilt &lt;code&gt;ins\u00e4ttningar&lt;\/code&gt;. N\u00e4r storleken p\u00e5 datasetins\u00e4ttningarna v\u00e4xer, uppr\u00e4tth\u00e5ller algoritmen konstant prestanda.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/52f042018180ffd2cb6a2cf4a3af603e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEfter 200 miljoner rader b\u00f6rjar PostgreSQL vanligtvis att tappa prestanda kraftigt och tappar sin effektivitet till 0. TimescaleDB m\u00f6jligg\u00f6r effektiv ins\u00e4ttning av \"ins\u00e4ttningar\" oavsett datavolym.<\/p>\n<h3>Installation<\/h3>\n<p>\nAtt installera TimescaleDB \u00e4r ganska enkelt f\u00f6r alla paket. I <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.timescale.com\/v1.3\/getting-started\">dokumentationen<\/a><\/noindex> \u00e4r allt utf\u00f6rligt beskrivet - det beror p\u00e5 de officiella PostgreSQL-paketen. TimescaleDB kan ocks\u00e5 byggas och kompileras manuellt.<\/p>\n<p>F\u00f6r Zabbix-databaser aktiverar vi helt enkelt till\u00e4gget:<\/p>\n<pre><code class=\"sql\">echo \"CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;\" | sudo -u postgres psql zabbix<\/code><\/pre>\n<p>\nDu aktiverar <code>till\u00e4gget<\/code> och skapar det f\u00f6r Zabbix-databasen. Slutsteget \u00e4r att skapa hypertabellen.<\/p>\n<h3>Migration av historiska tabeller till TimescaleDB<\/h3>\n<p>\nDet finns en speciell funktion f\u00f6r detta <code>create_hypertable<\/code>:<\/p>\n<pre><code class=\"sql\">V\u00c4LJ skapa_hypertable(\u2018history\u2019, \u2018clock\u2019, chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nV\u00c4LJ skapa_hypertable(\u2018history_unit\u2019, \u2018clock\u2019, chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nV\u00c4LJ skapa_hypertable(\u2018history_log\u2019, \u2018clock\u2019, chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nV\u00c4LJ skapa_hypertable(\u2018history_text\u2019, \u2018clock\u2019, chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nV\u00c4LJ skapa_hypertable(\u2018history_str\u2019, \u2018clock\u2019, chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nV\u00c4LJ skapa_hypertable(\u2018trends\u2019, \u2018clock\u2019, chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nV\u00c4LJ skapa_hypertable(\u2018trends_unit\u2019, \u2018clock\u2019, chunk_time_interval =&gt; 86400, migrate_data =&gt; true);\nUPPDATERA config SET db_extension=\u2019timescaledb\u2019, hk_history_global=1, hk_trends_global=1<\/code><\/pre>\n<p>\nFunktionen har tre parametrar. Den f\u00f6rsta \u00e4r<strong> tabellen i databasen<\/strong>, f\u00f6r vilken en hypertabell ska skapas. Den andra \u00e4r <strong>f\u00e4ltet<\/strong>, efter vilket man m\u00e5ste skapa <code>chunk_time_interval<\/code> \u2014 intervall f\u00f6r partitionernas chunk, som ska anv\u00e4ndas. I mitt fall \u00e4r intervallet en dag \u2014 86 400.<\/p>\n<p>Den tredje parametern \u00e4r <code><strong>migrera_data<\/strong><\/code>. Om man s\u00e4tter <code>true<\/code>, flyttas alla nuvarande data till de f\u00f6rhands skapade chunkarna. Jag anv\u00e4nde det. <code>migrera_data<\/code>Jag hade ungef\u00e4r 1 TB, vilket tog \u00f6ver en timme. \u00c4ven i vissa fall under testning raderade jag on\u00f6diga historiska data av typ str\u00e4ng f\u00f6r att inte flytta dem.<\/p>\n<p>Det sista steget \u00e4r\u00a0<code><strong>UPPDATERA<\/strong><\/code>: i <code>db_extension<\/code> s\u00e4tter vi <code>timescaledb<\/code>, s\u00e5 att databasen f\u00f6rst\u00e5r att detta till\u00e4gg finns. Zabbix aktiverar det och anv\u00e4nder korrekt syntax och fr\u00e5gor mot databasen \u2014 de funktioner som beh\u00f6vs f\u00f6r TimescaleDB.<\/p>\n<h2>H\u00e5rdvarukonfiguration<\/h2>\n<p>\nJag anv\u00e4nde tv\u00e5 servrar. Den f\u00f6rsta \u00e4r <strong>VMware-maskin<\/strong>. Den \u00e4r ganska liten: 20 processorer Intel\u00ae Xeon\u00ae CPU E5-2630 v 4 @ 2.20GHz, 16 GB RAM och en SSD-disk p\u00e5 200 GB.<\/p>\n<p>Jag installerade PostgreSQL 10.8 med Debian 10.8-1.pgdg90+1 och filsystemet xfs. Jag gjorde minimi-inst\u00e4llningar f\u00f6r att anv\u00e4nda just denna databas, f\u00f6rutom att Zabbix kommer att anv\u00e4nda den.<\/p>\n<p>P\u00e5 denna maskin fanns Zabbix-servern, PostgreSQL och <strong>lastningsagenter<\/strong>. Jag hade 50 aktiva agenter som anv\u00e4nde <code>LoadableModule<\/code>, f\u00f6r att mycket snabbt generera olika resultat: siffror, str\u00e4ngar. Jag fyllde databasen med stora m\u00e4ngder data.<\/p>\n<p>Initialt inneh\u00f6ll konfigurationen <strong>5 000 datanoder<\/strong> per v\u00e4rd. N\u00e4stan varje nod inneh\u00f6ll en trigger f\u00f6r att likna verkliga installationer. I vissa fall fanns det mer \u00e4n en trigger. P\u00e5 en nod i n\u00e4tverket fanns det <strong>3 000-7 000 triggers<\/strong>.<\/p>\n<p>Uppdateringsintervallet f\u00f6r datanoder \u00e4r <strong>4-7 sekunder<\/strong>Jag justerade lasten genom att anv\u00e4nda inte bara 50 agenter, utan jag lade ocks\u00e5 till fler. Dessutom justerade jag lasten dynamiskt med hj\u00e4lp av dataelement och s\u00e4nkte uppdateringsintervallet till 4 s.<\/p>\n<h3>PostgreSQL. 35 000 nvps<\/h3>\n<p>\nMitt f\u00f6rsta k\u00f6rning p\u00e5 denna h\u00e5rdvara var p\u00e5 ren PostgreSQL \u2014 35 000 v\u00e4rden per sekund. Som man kan se, tar ins\u00e4ttning av data br\u00e5kdelen av en sekund \u2014 allt fungerar bra och snabbt. Det enda \u00e4r att SSD-disken p\u00e5 200 GB snabbt fylls.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/e84b2eb0f6fbbd902c5feab367c750ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDetta \u00e4r den standardiserade prestations\u00f6versikten f\u00f6r Zabbix \u2014 servrar.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/c3afe021acf8e272813b8d8c2f82e762.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDen f\u00f6rsta bl\u00e5 grafen visar antalet v\u00e4rden per sekund. Den andra grafen till h\u00f6ger visar belastningen av byggprocesserna. Den tredje \u2014 belastningen av interna byggprocesser: history syncers och Housekeeper, som h\u00e4r k\u00f6rdes under en tillr\u00e4cklig tid.<\/p>\n<p>Den fj\u00e4rde grafen visar anv\u00e4ndningen av HistoryCache. Detta \u00e4r en typ av buffert f\u00f6re ins\u00e4ttning i databasen. Den gr\u00f6na femte grafen visar anv\u00e4ndningen av ValueCache, det vill s\u00e4ga hur m\u00e5nga tr\u00e4ffar ValueCache f\u00e5r f\u00f6r triggarna \u2014 detta \u00e4r flera tusen v\u00e4rden per sekund.<\/p>\n<h3>PostgreSQL. 50 000 nvps<\/h3>\n<p>\nD\u00e4refter \u00f6kade jag lasten till 50 000 v\u00e4rden per sekund p\u00e5 samma h\u00e5rdvara.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/8f10944486d5502b57d36059382d551b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVid belastning med Housekeeper registrerades 10 000 v\u00e4rden p\u00e5 2-3 s.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/5228c1735f0ee2da7f827093f3c7b1f9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Housekeeper b\u00f6rjar redan p\u00e5verka arbetet.<\/em><\/p>\n<p>Fr\u00e5n den tredje grafen kan man se att, \u00f6vergripande, belastningen av trapper och history syncers fortfarande ligger p\u00e5 60%. P\u00e5 den fj\u00e4rde grafen b\u00f6rjar HistoryCache under Housekeepers arbete fyllas tillr\u00e4ckligt aktivt. Det har fyllts till 20% \u2014 det \u00e4r omkring 0,5 GB.<\/p>\n<h3>PostgreSQL. 80 000 nvps<\/h3>\n<p>\nD\u00e4refter \u00f6kade jag lasten till 80 000 v\u00e4rden per sekund. Det \u00e4r ungef\u00e4r 400 000 dataelement och 280 000 triggar.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/f6c6b0d6793f96523f7406e68f98c608.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Ins\u00e4ttningen med belastning fr\u00e5n trettio history syncers \u00e4r redan ganska h\u00f6g.<\/em><\/p>\n<p>Jag \u00f6kade ocks\u00e5 olika parametrar: history syncers, cache.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/6ca7edd76aea6fdec00a61a0a6dc34e5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00e5 min h\u00e5rdvara \u00f6kade belastningen av history syncers till maximalt. HistoryCache fylldes snabbt med data \u2014 bufferten samlade data f\u00f6r bearbetning.<\/p>\n<p>Hela tiden observerade jag hur processorn, RAM och andra systemparametrar anv\u00e4ndes, och jag uppt\u00e4ckte att diskanv\u00e4ndningen var maximal.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/e964a000156b561accd23b4e1644f4a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJag uppn\u00e5dde anv\u00e4ndningen <strong>av diskens maximala kapacitet<\/strong> p\u00e5 denna h\u00e5rdvara och p\u00e5 denna virtuella maskin. Vid s\u00e5dan intensitet b\u00f6rjade PostgreSQL snabbt sl\u00e4ppa data, och disken kunde inte l\u00e4ngre h\u00e5lla j\u00e4mna steg med skriv- och l\u00e4soperationer.<\/p>\n<h3>En andra server<\/h3>\n<p>\nJag tog en annan server som redan hade 48 processorer och 128 GB RAM. Jag finjusterade den \u2014 installerade 60 history syncer och uppn\u00e5dde acceptabel prestanda.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/591fc759b336d5fb2091460036b136bf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFaktiskt \u00e4r detta redan prestationsgr\u00e4nsen d\u00e4r n\u00e5got m\u00e5ste g\u00f6ras.<\/p>\n<h3>TimescaleDB. 80 000 nvps<\/h3>\n<p>\nMitt huvudsakliga m\u00e5l \u00e4r att testa TimescaleDB:s kapabiliteter under belastning fr\u00e5n Zabbix. 80 000 v\u00e4rden per sekund \u00e4r mycket, insamlingsfrekvensen f\u00f6r metric (utom Yandex, f\u00f6rst\u00e5s) och en ganska stor \"setup\".<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/aa569847e7bc31baab91661db1ee78a2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00e5 varje graf finns en nedg\u00e5ng \u2014 det \u00e4r just data\u00f6verf\u00f6ringen. Efter nedg\u00e5ngarna i Zabbix-servern \u00e4ndrades belastningsprofilen f\u00f6r history syncer dramatiskt \u2014 den f\u00f6ll med tre g\u00e5nger.<\/p>\n<blockquote><p>TimescaleDB g\u00f6r det m\u00f6jligt att inf\u00f6ra data n\u00e4stan tre g\u00e5nger snabbare och anv\u00e4nda mindre HistoryCache.<\/p><\/blockquote>\n<p>\nD\u00e4rmed kommer dina data att levereras i r\u00e4tt tid.<\/p>\n<h3>TimescaleDB. 120 000 nvps<\/h3>\n<p>\nD\u00e4refter \u00f6kade jag antalet datapunkter till 500 000. Huvudm\u00e5let var att testa TimescaleDB:s kapabiliteter \u2014 jag fick ett ber\u00e4knat v\u00e4rde p\u00e5 125 000 v\u00e4rden per sekund.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/4770ca4030e1c086f2fd9305a12496bb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDetta \u00e4r en fungerande \"setup\" som kan fungera l\u00e4nge. Men eftersom min disk bara var 1,5 TB, fyllde jag den p\u00e5 n\u00e5gra dagar.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/1ad521b909a22a7db81a9ed802d348e7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet viktigaste \u00e4r att nya partitioner i TimescaleDB ocks\u00e5 skapades under samma tid.<\/p>\n<p>F\u00f6r prestandan \u00e4r detta helt om\u00e4rkbart. N\u00e4r partitioner skapas i MySQL, till exempel, \u00e4r allt annorlunda. Vanligtvis sker detta p\u00e5 natten, eftersom det blockerar all inmatning, arbetar med tabeller och kan skapa service degradation. I fallet med TimescaleDB finns detta inte.<\/p>\n<p>Som exempel visar jag en graf fr\u00e5n m\u00e5nga i community. I bilden \u00e4r TimescaleDB aktiverat, vilket g\u00f6r att belastningen p\u00e5 io.weight p\u00e5 processorn sj\u00f6nk. Anv\u00e4ndningen av interna processer minskade ocks\u00e5. Dessutom \u00e4r detta en vanlig virtuell maskin p\u00e5 vanliga spinning disks, inte SSD.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB\" src=\"\/wp-content\/uploads\/2019\/10\/bea0cd0f1448e1d1b3a5f979d51ce61c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Slutsatser<\/h2>\n<p>\n<strong>TimescaleDB \u00e4r en bra l\u00f6sning f\u00f6r sm\u00e5 \"setup\"<\/strong>, som st\u00f6ter p\u00e5 diskprestanda. Det kommer att till\u00e5ta att forts\u00e4tta arbeta bra tills databasens migration till snabbare h\u00e5rdvara.<\/p>\n<p>TimescaleDB \u00e4r l\u00e4tt att konfigurera, ger en prestations\u00f6kning, fungerar bra med Zabbix och <strong>har f\u00f6rdelar j\u00e4mf\u00f6rt med PostgreSQL<\/strong>.<\/p>\n<p>Om du anv\u00e4nder PostgreSQL och inte planerar att byta, rekommenderar jag <strong>att anv\u00e4nda PostgreSQL med TimescaleDB-till\u00e4gget i samverkan med Zabbix<\/strong>. Denna l\u00f6sning fungerar effektivt upp till medelstora \"setup\".<\/p>\n<blockquote>\n<p>N\u00e4r vi s\u00e4ger \"h\u00f6gpresterande\" menar vi <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\">HighLoad++<\/a><\/noindex>Det dr\u00f6jer inte l\u00e4nge innan vi f\u00e5r bekanta oss med teknologier och metoder som g\u00f6r det m\u00f6jligt f\u00f6r tj\u00e4nster att betj\u00e4na miljontals anv\u00e4ndare. Listan <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\">\u00f6ver rapporter<\/a><\/noindex> f\u00f6r den 7 och 8 november har vi redan sammanst\u00e4llt, men <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/meetups\">m\u00f6ten<\/a><\/noindex> kan fortfarande f\u00f6resl\u00e5s.<\/p>\n<p>Prenumerera p\u00e5 v\u00e5r <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/VYVaf\">nyhetsbrev<\/a><\/noindex> och <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/HighLoadChannel\">telegram<\/a><\/noindex>, d\u00e4r vi avsl\u00f6jar nyheter om den kommande konferensen och l\u00e4r dig hur du f\u00e5r ut maximalt.<\/p>\n<\/blockquote>\n<p>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/470902\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Zabbix \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430. \u041a\u0430\u043a \u0438 \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043e\u043d\u0430 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0442\u0440\u0435\u043c\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0432\u0441\u0435\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430: \u0441\u0431\u043e\u0440 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0435\u0435 \u043e\u0447\u0438\u0441\u0442\u043a\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0432\u0440\u0435\u043c\u044f. \u041d\u0435\u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u0434\u043b\u044f \u043a\u0440\u0443\u043f\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u0432\u043e\u043f\u0440\u043e\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0434\u0430\u043d\u043d\u044b\u043c. \u041e\u043d\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29204,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38927","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.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"Zabbix \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.\" \/>\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\/sv\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: Zabbix \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 TimescaleDB | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Zabbix \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb\" \/>\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-31T19:26:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:26:48+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\udd47H\u00f6g prestanda och inbyggd partitionering: Zabbix med st\u00f6d f\u00f6r TimescaleDB | ProHoster","description":"Zabbix \u00e4r ett \u00f6vervakningssystem.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: Zabbix \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 TimescaleDB | ProHoster","og:description":"Zabbix \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/vysokaya-proizvoditelnost-i-nativnoe-partitsionirovanie-zabbix-s-podderzhkoj-timescaledb","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-31T19:26:48+00:00","article:modified_time":"2019-10-31T19:26:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38927","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-01-23 23:59:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 21:14:06","updated":"2026-01-23 23:59:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/38927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=38927"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/38927\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/29204"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=38927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=38927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=38927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}