Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Zabbix як системаи мониторинг аст. Мисли ҳама гуна системаи дигар, он бо се мушкилоти асосии тамоми системаҳои мониторинг дучор меояд: ҷамъоварӣ ва коркарди маълумот, нигоҳ доштани таърих ва тоза кардани он.

Марҳилаҳои қабул, коркард ва сабти маълумот вақтро талаб мекунанд. На он қадар зиёд, аммо барои системаи калон ин метавонад ба таъхирҳои калон оварда расонад. Мушкилоти нигоҳдорӣ масъалаи дастрасии маълумот аст. Онҳо барои гузоришҳо, чекҳо ва триггерҳо истифода мешаванд. Нигоҳубини дастрасии додаҳо низ ба кор таъсир мерасонад. Вақте ки пойгоҳи додаҳо афзоиш меёбанд, маълумоти номатлуб бояд нест карда шаванд. Хориҷ кардан як амалиёти душворест, ки баъзе захираҳоро низ мехӯрад.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Проблемаҳои таъхир ҳангоми ҷамъоварӣ ва нигоҳдорӣ дар Zabbix тавассути кэш ҳал карда мешаванд: якчанд намуди кэшҳо, кэш дар базаи маълумот. Барои ҳалли мушкилоти сеюм, кэш мувофиқ нест, аз ин рӯ Zabbix TimescaleDB-ро истифода бурд. Ӯ ба шумо дар бораи он нақл мекунад Андрей Гушчин - муҳандиси дастгирии техникӣ Zabbix SIA. Андрей зиёда аз 6 сол аст, ки Zabbix-ро дастгирӣ мекунад ва таҷрибаи мустақими иҷроиш дорад.

TimescaleDB чӣ гуна кор мекунад, он дар муқоиса бо PostgreSQL-и муқаррарӣ чӣ кор карда метавонад? Zabbix барои пойгоҳи додаҳои TimescaleDB чӣ нақш мебозад? Чӣ тавр аз сифр оғоз кардан мумкин аст ва чӣ гуна аз PostgreSQL муҳоҷират кардан мумкин аст ва кадом конфигуратсия иҷрои беҳтар дорад? Дар бораи хамаи ин дар зери набуред.

Проблемахои хосилнокии мехнат

Ҳар як системаи мониторинг бо мушкилоти мушаххаси иҷроиш рӯ ба рӯ мешавад. Ман дар бораи се нафари онҳо сӯҳбат мекунам: ҷамъоварӣ ва коркарди маълумот, нигоҳдорӣ ва тозакунии таърих.

Ҷамъоварӣ ва коркарди маълумотҳои зуд. Системаи хуби мониторинг бояд ҳама маълумотро зуд қабул кунад ва онро мувофиқи ифодаҳои триггер - мувофиқи меъёрҳои худ коркард кунад. Пас аз коркард, система инчунин бояд ин маълумотро барои истифодаи минбаъда зуд дар базаи маълумот захира кунад.

Нигоҳдории таърих. Системаи хуби мониторинг бояд таърихро дар пойгоҳи додаҳо нигоҳ дорад ва дастрасии осонро ба метрика таъмин кунад. Таърих барои истифода дар гузоришҳо, графикҳо, триггерҳо, остонаҳо ва ҷузъҳои маълумоти ҳушдор ҳисобшуда лозим аст.

Тоза кардани таърих. Баъзан рӯзе мерасад, ки ба шумо лозим нест, ки ченакҳоро нигоҳ доред. Чаро ба шумо маълумоте лозим аст, ки 5 сол пеш, як ё ду моҳ ҷамъоварӣ шуда буданд: баъзе гиреҳҳо нест карда шуданд, баъзе ҳостҳо ё метрика дигар лозим нестанд, зеро онҳо кӯҳнаанд ва дигар ҷамъоварӣ намешаванд. Системаи хуби мониторинг бояд маълумоти таърихиро нигоҳ дорад ва гоҳ-гоҳ онро нест кунад, то базаи маълумот афзоиш наёбад.

Тоза кардани маълумоти кӯҳна як масъалаи муҳимест, ки ба кори пойгоҳи додаҳо таъсири калон мерасонад.

Кэш дар Zabbix

Дар Zabbix зангҳои якум ва дуюм бо истифода аз кэш ҳал карда мешаванд. RAM барои ҷамъоварӣ ва коркарди маълумот истифода мешавад. Барои нигоҳдорӣ - таърих дар триггерҳо, графикҳо ва унсурҳои ҳисобшудаи маълумот. Дар тарафи пойгоҳи додаҳо баъзе кэш барои интихоби асосӣ, масалан, графикҳо мавҷуд аст.

Кэшкунӣ дар паҳлӯи худи сервери Zabbix ин аст:

  • ConfigurationCache;
  • ValueCache;
  • HistoryCache;
  • TrendsCache.

Ба онҳо муфассалтар таваҷҷӯҳ кунед.

ConfigurationCache

Ин кэши асосӣест, ки дар он мо ченакҳо, ҳостҳо, ҷузъҳои додаҳо, триггерҳо - ҳама чизеро, ки барои коркарди пешакӣ ва ҷамъоварии маълумот лозим аст, нигоҳ медорем.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Ҳамаи ин дар ConfigurationCache нигоҳ дошта мешавад, то дар базаи маълумот дархостҳои нолозим эҷод нашавад. Пас аз оғози сервер, мо ин кэшро навсозӣ мекунем, конфигуратсияҳоро эҷод мекунем ва мунтазам навсозӣ мекунем.

Ҷамъоварии маълумот

Диаграмма хеле калон аст, аммо чизи асосӣ дар он аст коллекторхо. Инҳо "поллерҳо"-и гуногун - равандҳои васлкунӣ мебошанд. Онҳо барои намудҳои гуногуни васлкунӣ масъуланд: онҳо тавассути SNMP, IPMI маълумот ҷамъ мекунанд ва ҳамаашро ба PreProcessing интиқол медиҳанд.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDBКоллекторҳо бо ранги норанҷӣ нишон дода шудаанд.

Zabbix ададҳои ҷамъшударо ҳисоб кардааст, ки барои ҷамъбасти чекҳо лозиманд. Агар мо онҳоро дошта бошем, мо маълумотро барои онҳо мустақиман аз ValueCache мегирем.

Таърихи пешакии коркарди кэш

Ҳама коллекторҳо барои гирифтани ҷойҳои корӣ ConfigurationCache-ро истифода мебаранд. Сипас онҳо онҳоро ба PreProcessing интиқол медиҳанд.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

PreProcessing ConfigurationCache-ро барои қабули қадамҳои PreProcessing истифода мебарад. Он ин маълумотро бо роҳҳои гуногун коркард мекунад.

Пас аз коркарди маълумот бо истифодаи PreProcessing, мо онро дар HistoryCache барои коркард захира мекунем. Ин ҷамъоварии маълумотро ба итмом мерасонад ва мо ба раванди асосӣ дар Zabbix мегузарем - ҳамоҳангсози таърих, зеро он меъмории монолитист.

Эзоҳ: Коркарди пешакӣ як амалиёти хеле душвор аст. Бо v 4.2 он ба прокси интиқол дода шудааст. Агар шумо Zabbix-и хеле калон дошта бошед, ки шумораи зиёди унсурҳои маълумот ва басомади ҷамъоварӣ дошта бошед, пас ин корро хеле осон мекунад.

ValueCache, кэши таърих ва тамоюлҳо

Синсери таърих раванди асосӣест, ки ҳар як унсури додаҳоро атомӣ коркард мекунад, яъне ҳар як арзиш.

Синсери таърих аз HistoryCache арзишҳоро мегирад ва Конфигуратсияро барои мавҷудияти триггерҳо барои ҳисобҳо тафтиш мекунад. Агар онҳо вуҷуд дошта бошанд, он ҳисоб мекунад.

Синхронизатсияи таърих ҳодиса, суръат бахшидан ба эҷоди огоҳиҳо, агар конфигуратсия талаб карда шавад ва сабтҳоро эҷод мекунад. Агар триггерҳо барои коркарди минбаъда вуҷуд дошта бошанд, он гоҳ ин арзишро дар ValueCache нигоҳ медорад, то ба ҷадвали таърих дастрасӣ надошта бошад. Ҳамин тавр ValueCache бо маълумоте пур карда мешавад, ки барои ҳисоб кардани триггерҳо ва унсурҳои ҳисобшуда заруранд.

Синсери таърих ҳама маълумотро ба базаи маълумот менависад ва он ба диск менависад. Раванди коркард дар ин ҷо ба охир мерасад.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Кэш дар базаи маълумот

Дар тарафи пойгоҳи додаҳо кэшҳои гуногун мавҷуданд, вақте ки шумо мехоҳед графикҳо ё гузоришҳоро дар бораи рӯйдодҳо дидан хоҳед:

  • Innodb_buffer_pool дар тарафи MySQL;
  • shared_buffers дар тарафи PostgreSQL;
  • effective_cache_size дар тарафи Oracle;
  • shared_pool дар тарафи DB2.

Бисёр кэшҳои дигар вуҷуд доранд, аммо инҳо барои ҳама пойгоҳи додаҳо асосӣ мебошанд. Онҳо ба шумо имкон медиҳанд, ки маълумотро дар RAM нигоҳ доред, ки аксар вақт барои дархостҳо лозиманд. Барои ин онҳо технологияҳои худро доранд.

Фаъолияти пойгоҳи додаҳо муҳим аст

Сервери Zabbix пайваста маълумот ҷамъ мекунад ва онро менависад. Ҳангоми аз нав оғоз кардан, он инчунин аз таърих мехонад, то ValueCache пур кунад. Скриптҳо ва гузоришҳоро истифода мебарад API Zabbix, ки дар интерфейси веб сохта шудааст. Zabbix API ба пойгоҳи додаҳо дастрасӣ пайдо мекунад ва маълумоти заруриро барои графикҳо, ҳисоботҳо, рӯйхатҳои рӯйдодҳо ва масъалаҳои охирин дарёфт мекунад.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Барои визуалӣ - Графана. Ин як ҳалли маъмул дар байни корбарони мост. Он метавонад мустақиман тавассути Zabbix API ва ба пойгоҳи додаҳо дархост фиристад ва барои қабули маълумот рақобати муайян эҷод кунад. Аз ин рӯ, танзими дақиқтар ва беҳтари пойгоҳи додаҳо лозим аст, ки ба зуд расонидани натиҷаҳо ва санҷиш мувофиқат кунад.

housekeeper

Мушкилоти сеюми иҷроиш дар Zabbix тозакунии таърих бо истифода аз Housekeeper мебошад. Он ҳама танзимотҳоро риоя мекунад - унсурҳои маълумот нишон медиҳанд, ки динамикаи тағирот (тамоюлҳо) дар рӯзҳо то чӣ андоза нигоҳ дошта мешаванд.

Мо TrendsCache-ро дар парвоз ҳисоб мекунем. Вақте ки маълумот ворид мешавад, мо онро барои як соат ҷамъоварӣ мекунем ва онро дар ҷадвалҳо барои динамикаи тағирёбии тамоюл сабт мекунем.

Хонадор маълумотро аз базаи маълумот бо истифода аз "интихобҳо"-и муқаррарӣ оғоз ва нест мекунад. Ин на хамеша самарабахш аст, чунон ки аз графикхои ичрои процессхои дохилй дида мешавад.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Графикаи сурх нишон медиҳад, ки синсери Таърих доимо банд аст. Графикаи норанҷӣ дар боло Housekeeper аст, ки пайваста кор мекунад. Ӯ мунтазири он аст, ки пойгоҳи додаҳо ҳамаи сатрҳои муайянкардаашро нест кунад.

Кай бояд хонасозро хомӯш кунед? Масалан, "Идентификатсияи ашё" вуҷуд дорад ва шумо бояд 5 ҳазор сатри охиринро дар муддати муайян нест кунед. Албатта, ин аз рӯи индекс рӯй медиҳад. Аммо одатан маҷмӯи додаҳо хеле калон аст ва пойгоҳи додаҳо ҳанӯз ҳам аз диск мехонад ва онро ба кэш мегузорад. Ин ҳамеша як амалиёти хеле гаронбаҳо барои пойгоҳи додаҳо аст ва вобаста ба андозаи базаи маълумот метавонад ба мушкилоти иҷроиш оварда расонад.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Хонадорро хомӯш кардан осон аст. Дар интерфейси веб танзимот дар "Маъмурияти умумӣ" барои хонашин мавҷуд аст. Мо нигоҳдории дохилиро барои таърихи тамоюли дохилӣ ғайрифаъол мекунем ва он дигар онро идора намекунад.

Хонадор хомӯш карда шуд, графикҳо баробар карда шуданд - дар ин ҳолат чӣ мушкилот вуҷуд дошта метавонанд ва чӣ барои ҳалли мушкилоти сеюми иҷроиш кӯмак карда метавонад?

Тақсимкунӣ - тақсимкунӣ ё тақсимкунӣ

Одатан, тақсимкунӣ дар ҳар як пойгоҳи додаи релятсионӣ, ки ман номбар кардаам, ба таври дигар танзим карда мешавад. Ҳар як технологияи худро дорад, аммо дар маҷмӯъ онҳо якхелаанд. Эҷоди як қисми нав аксар вақт ба мушкилоти муайян оварда мерасонад.

Одатан, қисмҳо вобаста ба "насбкунӣ" - миқдори маълумоте, ки дар як рӯз сохта мешаванд, танзим карда мешаванд. Чун қоида, тақсимот дар як рӯз дода мешавад, ин ҳадди аққал аст. Барои тамоюлҳои гурӯҳи нав - 1 моҳ.

Агар "насб" хеле калон бошад, арзишҳо метавонанд тағир ёбанд. Агар "насб" -и хурд то 5 nvps (қиматҳои нав дар як сония) бошад, миёна аз 000 то 5 бошад, пас калонтар аз 000 nvps болотар аст. Инҳо насбҳои калон ва хеле калон мебошанд, ки конфигуратсияи бодиққати пойгоҳи додаҳоро талаб мекунанд.

Дар дастгоҳҳои хеле калон, мӯҳлати як рӯз метавонад беҳтарин набошад. Ман қисмҳои MySQL-и 40 ГБ ё бештар аз он дар як рӯз дидаам. Ин миқдори хеле зиёди маълумотест, ки метавонад боиси мушкилот гардад ва бояд кам карда шавад.

Тақсимкунӣ чӣ медиҳад?

Ҷадвалҳои тақсимкунӣ. Аксар вақт инҳо файлҳои алоҳида дар диск мебошанд. Нақшаи дархост як қисматро оптималтар интихоб мекунад. Одатан тақсимкунӣ аз рӯи диапазон истифода мешавад - ин ба Zabbix низ дахл дорад. Мо дар он ҷо "тамгаи вақт" -ро истифода мебарем - вақт аз ибтидои эра. Инҳо барои мо рақамҳои оддӣ ҳастанд. Шумо ибтидо ва охири рӯзро муқаррар мекунед - ин қисмат аст.

Бартараф кардани зуд - DELETE. Ба ҷои интихоби сатрҳо барои ҳазф, як файл/зерчабвал интихоб карда мешавад.

Ҷустуҷӯи маълумотро ба таври назаррас суръат мебахшад SELECT - як ё якчанд қисмҳоро истифода мебарад, на тамоми ҷадвал. Агар шумо ба маълумоти дурӯза дастрасӣ дошта бошед, он аз пойгоҳи додаҳо зудтар барқарор карда мешавад, зеро шумо бояд танҳо як файлро ба кэш бор кунед ва онро баргардонед, на ҷадвали калон.

Аксар вақт бисёр базаҳои маълумот низ суръат мебахшанд INSERT — дохил кардан ба ҷадвали кӯдак.

TimescaleDB

Барои v 4.2, мо диққати худро ба TimescaleDB равона кардем. Ин васеъшавӣ барои PostgreSQL бо интерфейси аслӣ мебошад. Васеъ бо маълумоти силсилаи вақт самаранок кор мекунад, бе аз даст додани бартариҳои пойгоҳи додаҳои релятсионӣ. TimescaleDB инчунин ба таври худкор тақсим мешавад.

TimescaleDB консепсия дорад гипертаблица (гипертабли), ки шумо эҷод мекунед. Он дорои пораҳо - қисмҳо. Қисмҳо порчаҳои гипертаблизи ба таври худкор идорашаванда мебошанд, ки ба порчаҳои дигар таъсир намерасонанд. Ҳар як порча доираи вақти худро дорад.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

TimescaleDB против PostgreSQL

TimescaleDB воқеан самаранок кор мекунад. Истеҳсолкунандагони васеъ изҳор мекунанд, ки онҳо алгоритми коркарди дархостҳои дурусттарро истифода мебаранд, аз inserts . Вақте ки андозаи маҷмӯи додаҳо афзоиш меёбад, алгоритм кори доимиро нигоҳ медорад.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Пас аз 200 миллион сатр, PostgreSQL одатан ба таври назаррас коҳиш меёбад ва иҷрои онро то 0 гум мекунад. TimescaleDB ба шумо имкон медиҳад, ки барои ҳама миқдори маълумот ба таври муассир "воридҳо" ворид кунед.

параметр

Насб кардани TimescaleDB барои ҳама бастаҳо хеле осон аст. ДАР хуччатхо ҳама чиз ба таври муфассал тавсиф шудааст - он аз бастаҳои расмии PostgreSQL вобаста аст. TimescaleDB инчунин метавонад дастӣ сохта ва тартиб дода шавад.

Барои базаи Zabbix мо танҳо васеъкуниро фаъол мекунем:

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

Шумо фаъол мекунед extension ва онро барои базаи Zabbix эҷод кунед. Қадами охирин ин сохтани гипертаблица мебошад.

Интиқоли ҷадвалҳои таърих ба TimescaleDB

Барои ин функсияи махсус вуҷуд дорад create_hypertable:

SELECT create_hypertable(‘history’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_unit’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_log’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_text’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_str’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘trends’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘trends_unit’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
UPDATE config SET db_extension=’timescaledb’, hk_history_global=1, hk_trends_global=1

Функсия се параметр дорад. Аввал - ҷадвал дар пойгоҳи додаҳо, ки барои он шумо бояд гипертаблица эҷод кунед. Дуюм - майдон, ки мувофиқи он шумо бояд эҷод кунед chunk_time_interval — фосилаи қисмҳои тақсимкунӣ барои истифода. Дар ҳолати ман, фосила як рӯз аст - 86.

Параметри сеюм - migrate_data. Агар шумо муқаррар кунед true, пас тамоми маълумоти ҷорӣ ба қисмҳои қаблан сохташуда интиқол дода мешавад. Ман онро худам истифода кардам migrate_data. Ман тақрибан 1 TB доштам, ки беш аз як соат вақт гирифт. Ҳатто дар баъзе ҳолатҳо, ҳангоми санҷиш ман маълумоти таърихии намудҳои аломатҳоро, ки барои нигоҳдорӣ лозим набуданд, нест кардам, то онҳоро интиқол надиҳам.

Қадами охирин - UPDATE: дар db_extension гузошта timescaledbто базаи маълумот дарк кунад, ки ин васеъшавӣ вуҷуд дорад. Zabbix онро фаъол мекунад ва синтаксис ва дархостҳоро ба пойгоҳи додаҳо дуруст истифода мебарад - он хусусиятҳое, ки барои TimescaleDB заруранд.

Конфигуратсияи сахтафзор

Ман ду серверро истифода кардам. Аввал - Мошини VMware. Он хеле хурд аст: 20 Intel® Xeon® CPU E5-2630 v 4 @ протсессори 2.20 ГГц, 16 ГБ RAM ва 200 ГБ SSD.

Ман PostgreSQL 10.8-ро дар он бо системаи Debian 10.8-1.pgdg90+1 ва системаи файлии xfs насб кардам. Ман ҳама чизро ба ҳадди ақал танзим кардам, то ин махзани мушаххасро истифода барад, ба истиснои он чизе, ки худи Zabbix истифода хоҳад кард.

Дар ҳамон мошин сервери Zabbix, PostgreSQL ва агентҳои боркунӣ. Ман 50 агенти фаъол доштам, ки истифода мекарданд LoadableModuleбарои хеле зуд ба даст овардани натиҷаҳои гуногун: рақамҳо, сатрҳо. Ман базаи маълумотро бо маълумоти зиёд пур кардам.

Дар аввал конфигуратсия мавҷуд буд 5 адад маълумот барои як мизбон. Қариб ҳар як элемент як триггер дошт, ки онро ба насбҳои воқеӣ монанд кунад. Дар баъзе мавридҳо зиёда аз як триггер вуҷуд дошт. Барои як гиреҳи шабака вуҷуд дошт 3-000 триггер.

Фосилаи навсозии банди маълумот − Сонияҳои 4-7. Ман худи сарбориро бо истифода аз на танҳо 50 агент, балки илова кардани бештар танзим кардам. Инчунин, бо истифода аз унсурҳои додаҳо, ман сарбориро динамикӣ танзим кардам ва фосилаи навсозиро то 4 сония кам кардам.

PostgreSQL. 35 nvps

Давраи аввалини ман дар ин сахтафзор дар PostgreSQL холис буд - 35 ҳазор арзиш дар як сония. Тавре ки шумо мебинед, ворид кардани маълумот як сонияро мегирад - ҳама чиз хуб ва зуд аст. Ягона чизе, ки диски 200 ГБ SSD зуд пур мешавад.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Ин панели стандартии иҷрои сервери Zabbix аст.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Графикаи кабуди аввал шумораи арзишҳо дар як сония аст. Графикаи дуюм дар тарафи рост боркунии равандҳои сохтмон аст. Сеюм боркунии равандҳои дохилии сохтмон аст: синсерҳои таърих ва Housekeeper, ки муддати тӯлонӣ дар ин ҷо кор мекунад.

Графикаи чорум истифодаи HistoryCache-ро нишон медиҳад. Ин як навъ буфери пеш аз ворид кардан ба базаи маълумот аст. Графикаи панҷуми сабз истифодаи ValueCache-ро нишон медиҳад, яъне чанд маротиба ValueCache барои триггерҳо мезанад - ин чанд ҳазор арзиш дар як сония аст.

PostgreSQL. 50 nvps

Пас аз он ман сарбориро дар ҳамон сахтафзор то 50 ҳазор арзиш дар як сония зиёд кардам.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Ҳангоми бор кардан аз Housekeeper, ворид кардани 10 ҳазор арзиш 2-3 сонияро дар бар гирифт.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB
Хонадор аллакай ба кор халал мерасонад.

Графикаи сеюм нишон медиҳад, ки дар маҷмӯъ, сарборӣ ба трапперҳо ва синхерҳои таърихӣ ҳоло ҳам дар 60% аст. Дар графики чорум, HistoryCache аллакай ҳангоми амалиёти Housekeeper ба таври фаъол пур мешавад. Он 20% пур аст, ки тақрибан 0,5 ГБ аст.

PostgreSQL. 80 nvps

Пас аз он ман сарбориро то 80 ҳазор арзиш дар як сония зиёд кардам. Ин тақрибан 400 ҳазор унсури маълумот ва 280 ҳазор триггер мебошад.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB
Арзиши боркунии сӣ синхерҳои таърихӣ аллакай хеле баланд аст.

Ман инчунин параметрҳои гуногунро зиёд кардам: синсерҳои таърих, кэшҳо.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Дар сахтафзори ман, боркунии синсерҳои таърих то ҳадди аксар афзоиш ёфт. HistoryCache зуд бо маълумот пур шуд - маълумот барои коркард дар буфер ҷамъ шуда буд.

Дар тӯли ин вақт ман мушоҳида кардам, ки чӣ тавр коркардкунанда, хотираи оперативӣ ва дигар параметрҳои система истифода мешаванд ва дарёфтам, ки истифодаи диск ба ҳадди аксар расидааст.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Ман ба истифода ноил шудам ҳадди аксар имкониятҳои диск дар ин сахтафзор ва дар ин мошини виртуалӣ. Бо чунин шиддат, PostgreSQL ба тоза кардани маълумот хеле фаъолона оғоз кард ва диск дигар барои навиштан ва хондан вақт надошт.

Сервери дуюм

Ман сервери дигареро гирифтам, ки аллакай 48 протсессори ва 128 ГБ хотираи оперативӣ дошт. Ман онро танзим кардам - ​​онро ба 60 синсери таърих насб кардам ва ба иҷрои қобили қабул ноил шудам.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Дарвоқеъ, ин аллакай маҳдудияти ҳосилнокӣ аст, ки дар он коре кардан лозим аст.

TimescaleDB. 80 nvps

Вазифаи асосии ман озмоиши қобилиятҳои TimescaleDB дар муқобили сарбории Zabbix аст. 80 ҳазор арзиш дар як сония зиёд аст, басомади ҷамъоварии метрика (ба истиснои Яндекс, албатта) ва "насб" хеле калон.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Дар ҳар як график пастшавӣ мавҷуд аст - ин маҳз муҳоҷирати додаҳост. Пас аз нокомиҳо дар сервери Zabbix, профили боркунии синсери таърих хеле тағйир ёфт - он се маротиба коҳиш ёфт.

TimescaleDB ба шумо имкон медиҳад, ки маълумотро тақрибан 3 маротиба тезтар ворид кунед ва HistoryCache камтар истифода баред.

Бинобар ин, шумо маълумотро сари вақт қабул мекунед.

TimescaleDB. 120 nvps

Пас аз он ман шумораи унсурҳои маълумотро ба 500 ҳазор зиёд кардам. Вазифаи асосӣ санҷиши имкониятҳои TimescaleDB буд - ман арзиши ҳисобшудаи 125 ҳазор арзиш дар як сония гирифтам.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Ин як «настройка»-и корӣ аст, ки метавонад муддати тӯлонӣ кор кунад. Аммо азбаски диски ман ҳамагӣ 1,5 ТБ буд, ман онро дар тӯли якчанд рӯз пур кардам.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

Муҳимтар аз ҳама он аст, ки дар айни замон қисмҳои нави TimescaleDB сохта шуданд.

Ин барои иҷроиш комилан ноаён аст. Вақте ки қисмҳо дар MySQL сохта мешаванд, масалан, ҳама чиз дигар аст. Ин одатан шабона рӯй медиҳад, зеро он воридкунии умумиро манъ мекунад, бо ҷадвал кор мекунад ва метавонад таназзули хидматро ба вуҷуд орад. Ин ҳолат бо TimescaleDB нест.

Ҳамчун мисол, ман як графикро аз бисёриҳо дар ҷомеа нишон медиҳам. Дар расм, TimescaleDB фаъол карда шудааст, ки ба шарофати он сарбории истифодаи io.weight дар протсессор коҳиш ёфтааст. Истифодаи элементхои процесси дохилй низ кам шуд. Гузашта аз ин, ин як мошини муқаррарии виртуалӣ дар дискҳои оддӣ аст, на SSD.

Иҷрои баланд ва тақсимоти маҳаллӣ: Zabbix бо дастгирии TimescaleDB

натиҷаҳои

TimescaleDB як ҳалли хуб барои "насби" хурд аст, ки ба кори диск таъсир мерасонад. Он ба шумо имкон медиҳад, ки кори хубро идома диҳед, то даме ки пойгоҳи додаҳо ба сахтафзор ҳарчи зудтар интиқол дода шавад.

Танзими TimescaleDB осон аст, дастовардҳои иҷроиш медиҳад, бо Zabbix ва нисбат ба PostgreSQL бартариҳо дорад.

Агар шумо PostgreSQL-ро истифода баред ва тағир додани онро надоред, ман тавсия медиҳам PostgreSQL-ро бо тамдиди TimescaleDB дар якҷоягӣ бо Zabbix истифода баред. Ин ҳалли самаранок то дараҷаи миёна "насб" кор мекунад.

Вақте ки мо "иҷрои баланд" мегӯем, мо дар назар дорем HighLoad++. Барои омӯхтани технологияҳо ва амалияҳое, ки хидматрасониро ба миллионҳо корбарон фароҳам меоранд, дер интизор нахоҳед шуд. Рӯйхат хабар медихад барои 7 ва 8 ноябр мо аллакай тартиб додем, аммо дар ин ҷо вохӯриҳо бештар таклиф кардан мумкин аст.

Ба мо обуна шавед ахбор и телеграмма, ки дар он мо хусусиятҳои конфронси дарпешистодаро ошкор мекунем ва мефаҳмем, ки чӣ гуна аз он бештар истифода барем.

Манбаъ: will.com

Илова Эзоҳ