
Муқаддимаи фалсафӣ
Тавре ки шумо медонед, танҳо ду роҳи ҳалли мушкилот вуҷуд дорад:
- Усули таҳлил ё усули тарҳкунӣ ё аз умумӣ ба мушаххас.
- Усули синтез ё усули индуксия ё аз махсус ба умумӣ.
Барои ҳалли масъалаи "беҳтар кардани кори пойгоҳи додаҳо", он метавонад чунин бошад.
Таҳлил — мо масъаларо ба кисмхои алохида тахлил карда, бо халли онхо кушиш мекунем, ки кори базаро умуман бехтар кунем.
Дар амал, таҳлил чунин менамояд:
- Мушкилот рух медиҳад (ҳодисаи иҷроиш)
- Ҷамъоварии маълумоти оморӣ дар бораи ҳолати базаи маълумот
- Дар ҷустуҷӯи монеаҳо
- Мо мушкилотро аз мушкилот ҳал мекунем
Маҳдудиятҳои пойгоҳи додаҳо — инфрасохтор (CPU, хотира, дискҳо, шабака, OS), танзимот (postgresql.conf), дархостҳо:
Инфраструктура: Имкониятҳои таъсир ва тағирот барои муҳандис тақрибан ба сифр баробар аст.
Танзимоти пойгоҳи додаҳо: Имкониятҳои тағирот нисбат ба ҳолати қаблӣ каме зиёдтаранд, аммо чун қоида, онҳо ҳанӯз хеле душворанд, махсусан дар абрҳо.
Пурсишҳо ба базаи маълумот: танҳо ҳуҷра барои манёвр.
Синтез — мо кори кисмхои алохидаро бехтар менамоем ва умедворем, ки дар натичаи ин кори база бехтар мешавад.
Муқаддимаи лирикӣ ё чаро ҳамаи ин зарур аст
Раванди ҳалли ҳодисаҳои иҷроиш, агар иҷрои пойгоҳи додаҳо назорат карда нашавад, чӣ гуна аст:
Муштарӣ - "ҳама чиз дар мо бад аст, ин хеле тӯл мекашад, барои мо кори хубе кунед"
Муҳандис - "Ин чӣ қадар бад аст?"
Муштарӣ - "ҳоло ҳамин тавр аст (як соат пеш, дирӯз, охирин бор буд), оҳиста-оҳиста"
Муҳандис - "кай кай хуб буд?"
Мизоч — «як хафта (ду хафта) пеш бад набуд. "(Ин хушбахт аст)
Муштарӣ - "Дар ёд надорам, ки кай хуб буд, аммо ҳоло бад аст" (Ҷавоби муқаррарӣ)
Дар натиҷа як тасвири классикӣ аст:

Кӣ гунаҳкор аст ва чӣ бояд кард?
Қисми якуми савол ҷавоб додан осонтарин аст - муҳандиси DBA ҳамеша гунаҳкор аст.
Ҷавоб додан ба қисми дуюм низ чандон душвор нест - шумо бояд системаи мониторинги иҷрои пойгоҳи додаҳоро татбиқ кунед.
Саволи аввал ба миён меояд - чӣ назорат кардан лозим аст?
Роҳи 1. Мо ҳама чизро назорат мекунем

Сарбории CPU, шумораи амалиёти хондан/навиштани диск, андозаи хотираи ҷудошуда ва як мегатони дигари ҳисобкунакҳои гуногун, ки ҳар як системаи мониторинги кори кам ё камтар метавонад таъмин кунад.
Дар натиҷа як қатор графикҳо, ҷадвалҳои ҷамъбастӣ ва огоҳиномаҳои доимии почтаи электронӣ ва 100% муҳандиси банд аст, ки як қатор чиптаҳои якхеларо ҳал мекунад, аммо, чун қоида, бо ибораи стандартӣ - "Масъалаи муваққатӣ. Ҳеҷ чорае лозим нест." Аммо хама банд аст ва хамеша ба муштарй чизе нишон медихад — кор дар чушу хуруш аст.
Роҳи 2. Танҳо он чизеро, ки лозим аст, назорат кунед ва он чизе, ки лозим нест, назорат кардан лозим нест
Шумо метавонед ба таври дигар, танҳо объектҳо ва рӯйдодҳоро назорат кунед:
- Кадом муҳандиси DBA метавонад таъсир расонад
- Барои он алгоритми амалҳо ҳангоми рух додани ҳодиса ё тағирёбии объект мавҷуд аст.
Бар асоси ин тахмин ва ёдоварӣ "Муқаддимаи фалсафӣ"барои пешгирӣ кардани такрори мунтазам"Муқаддимаи лирикӣ ё чаро ҳамаи ин зарур аст«Мақсад мебуд, ки мониторинги иҷрои дархостҳои инфиродӣ барои оптимизатсия ва таҳлил, ки дар ниҳоят бояд ба беҳтар шудани кори тамоми пойгоҳи додаҳо оварда расонад.
Аммо барои беҳтар кардани дархости вазнин, ки ба кори умумии пойгоҳи додаҳо таъсир мерасонад, шумо бояд аввал онро пайдо кунед.
Ҳамин тавр, ду саволи ба ҳам алоқаманд ба миён меоянд:
- ки талабнома сахт хисоб карда мешавад
- чӣ тавр ҷустуҷӯи дархостҳои душвор.
Аён аст, ки дархости вазнин ин дархостест, ки барои ба даст овардани натиҷа захираҳои зиёди OS-ро истифода мебарад.
Биёед ба саволи дуюм гузарем - чӣ гуна бояд дархостҳои вазнинро ҷустуҷӯ ва сипас назорат кард?
PostgreSQL кадом имкониятҳои мониторинги дархостҳоро дорад?
Дар муқоиса бо Oracle, имкониятҳо каманд, аммо ба ҳар ҳол чизе кардан мумкин аст.

PG_STAT_STATEMENTS
Барои ҷустуҷӯ ва мониторинги дархостҳои вазнин дар PostgreSQL, тамдиди стандартии pg_stat_statements пешбинӣ шудааст.
Пас аз насб кардани васеъкунӣ, дар пойгоҳи додаҳои мақсаднок намуди ҳамон ном пайдо мешавад, ки бояд барои мақсадҳои мониторинг истифода шавад.
Сутунҳои мақсадноки pg_stat_statements барои сохтани системаи мониторинг:
- пурсиш Рамзи хэши дохилӣ аз дарахти таҳлили оператор ҳисоб карда мешавад
- максимум_вақт Вақти ҳадди аксар барои изҳорот сарфшуда бо миллисонияҳо
Бо ҷамъоварӣ ва истифодаи омор дар ин ду сутун, шумо метавонед системаи мониторингро созед.
Чӣ тавр pg_stat_statements барои мониторинги иҷрои PostgreSQL истифода мешавад

Барои мониторинги иҷрои дархост истифода баред:
Дар паҳлӯи пойгоҳи додаҳо - pg_stat_statements намуди
Аз тараф сервер ва пойгоҳҳои додаҳои мониторинг - маҷмӯи скриптҳои bash ва ҷадвалҳои хидматрасонӣ.
Марҳилаи 1 - ҷамъоварии маълумоти оморӣ
Дар мизбони мониторинги cron, скрипт мунтазам оғоз карда мешавад, ки мундариҷаи намуди pg_stat_statements-ро аз пойгоҳи додаи мақсаднок ба ҷадвали pg_stat_history дар базаи мониторинг нусхабардорӣ мекунад.
Ин таърихи иҷрои дархостҳои инфиродӣ эҷод мекунад, ки метавонад барои тавлиди гузоришҳои иҷроиш ва танзими ченакҳо истифода шавад.
Марҳилаи 2 - муқаррар кардани нишондиҳандаҳои иҷроиш
Дар асоси маълумоти ҷамъшуда, мо дархостҳоеро интихоб мекунем, ки иҷрои онҳо барои муштарӣ (барнома) муҳимтарин/муҳимтар аст. Дар мувофиқа бо фармоишгар, мо бо истифода аз майдонҳои queryid ва max_time арзишҳои ченакҳоро муқаррар мекунем.
Натиҷа - оғози мониторинги иҷроиш
- Скрипти мониторинг ҳангоми иҷро кардан, ченакҳои конфигуратсияшудаи иҷроишро тавассути муқоисаи арзиши max_time метрика бо арзиши намуди pg_stat_statements дар базаи мақсаднок месанҷад.
- Агар арзиш дар пойгоҳи додаҳо аз арзиши метрӣ зиёд бошад, огоҳӣ тавлид мешавад (ҳодиса дар системаи чиптаҳо)
Варианти иловагӣ 1
Таърихи нақшаи дархост
Барои кӯмак расонидан дар ҳалли ҳодисаҳои иҷроиш, хуб аст, ки таърихи тағир додани нақшаҳои иҷрои дархостҳо дошта бошед.
Ҷадвали хидматрасонии log_query барои нигоҳ доштани таърих истифода мешавад. Ҷадвал ҳангоми таҳлили файли сабти PostgreSQL пур карда мешавад. Азбаски файли журнал, бар хилофи намуди pg_stat_statements, дорои матни пурраи арзишҳои параметрҳои иҷро мебошад, на матни муқарраршуда, имкон дорад на танҳо вақт ва давомнокии дархостҳоро сабт кунед, балки нақшаҳои иҷроро дар айни замон нигоҳ доред. вақт.
Варианти иловагӣ 2
Раванди пайваста такмил додани фаъолият
Мониторинги дархостҳои инфиродӣ дар маҷмӯъ барои ҳалли масъалаи пайваста такмил додани кори базаи маълумот дар маҷмӯъ пешбинӣ нашудааст, зеро он танҳо барои дархостҳои инфиродӣ мушкилоти иҷроишро назорат ва ҳал мекунад. Бо вуҷуди ин, шумо метавонед усулро васеъ кунед ва дархостҳои мониторингро барои ҳама пойгоҳи додаҳо танзим кунед.
Барои ин, шумо бояд нишондиҳандаҳои иловагии иҷроишро ворид кунед:
- Дар рузхои охир
- Барои давраи асосй
Скрипт дархостҳоро аз намуди pg_stat_statements дар базаи мақсаднок интихоб мекунад ва арзиши max_time-ро бо арзиши миёнаи max_time, дар ҳолати аввал барои рӯзҳои охир ё барои давраи интихобшуда (базавӣ), дар ҳолати дуюм муқоиса мекунад.
Ҳамин тариқ, дар сурати паст шудани иҷрои ҳама гуна дархост, огоҳӣ ба таври худкор бидуни таҳлили дастӣ гузоришҳо тавлид мешавад.
Синтез ба он чӣ иртибот дорад?
Дар равиши тавсифшуда, чунон ки усули синтез пешниҳод мекунад, бо такмил додани қисмҳои алоҳидаи система, мо системаро дар маҷмӯъ такмил медиҳем.
- Дархосте, ки аз ҷониби пойгоҳи додаҳо иҷро карда мешавад - реферат
- Дархости тағирёфта - антитеза
- Тағйир додани ҳолати система - синтез

Рушди система
- Васеъ кардани омори ҷамъшуда тавассути илова кардани таърих барои намуди системаи pg_stat_activity
- Васеъ кардани омори ҷамъшуда тавассути илова кардани таърих барои омори ҷадвалҳои алоҳида, ки дар дархостҳо иштирок мекунанд
- Интегратсия бо системаи мониторинги абрии AWS
- Ва аммо, шумо метавонед чизе пайдо кунед ...
Манбаъ: will.com
