Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Ndikukupemphani kuti muwerenge zomwe zinalembedwa ndi Alexey Lesovsky kuchokera ku Data Egret "Mfundo Zofunikira za PostgreSQL monitoring"

Mu lipoti ili, Alexey Lesovsky adzakamba za mfundo zazikulu za ziwerengero za post-gress, zomwe zikutanthawuza, ndi chifukwa chake ayenera kukhalapo pakuwunika; za ma graph omwe akuyenera kukhala pakuwunika, momwe angawonjezere ndi momwe angawamasulire. Lipotili lidzakhala lothandiza kwa oyang'anira ma database, oyang'anira machitidwe ndi omanga omwe ali ndi chidwi ndi Postgres kuthetsa mavuto.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Dzina langa ndi Alexey Lesovsky, ndikuyimira kampani ya Data Egret.

Mawu ochepa onena za ine. Ndinayamba kalekale monga woyang'anira dongosolo.

Ndinayang'anira mitundu yonse ya machitidwe osiyanasiyana a Linux, ndikugwira ntchito pazinthu zosiyanasiyana zokhudzana ndi Linux, mwachitsanzo, kuyang'anira, kugwira ntchito ndi ma proxies, etc. Koma panthawi ina ndinayamba kugwira ntchito zambiri ndi ma database, PostgreSQL. Ndinamukonda kwambiri. Ndipo nthawi ina ndidayamba kugwira ntchito pa PostgreSQL nthawi yanga yambiri yogwira ntchito. Ndipo pang'onopang'ono ndinakhala PostgreSQL DBA.

Ndipo pa ntchito yanga yonse, ndakhala ndikuchita chidwi ndi mitu ya ziwerengero, kuyang'anira, ndi telemetry. Ndipo pamene ndinali woyang'anira dongosolo, ndinagwira ntchito kwambiri ndi Zabbix. Ndipo ine ndinalemba yaing'ono ya zolembedwa ngati zabbix-zowonjezera. Iye anali wotchuka kwambiri mu nthawi yake. Ndipo kumeneko kunali kotheka kuyang'anira zinthu zofunika kwambiri, osati Linux yokha, komanso zigawo zosiyanasiyana.

Tsopano ndikugwira ntchito pa PostgreSQL. Ndikulemba kale chinthu china chomwe chimakulolani kuti mugwire ntchito ndi ziwerengero za PostgreSQL. Amatchedwa pgCenter (Nkhani ya HabrΓ© - Ziwerengero za post-gress popanda mitsempha ndi kupsinjika).

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Mawu oyambira pang'ono. Kodi makasitomala athu, makasitomala athu amakhala ndi zochitika ziti? Pali mtundu wina wa ngozi wokhudzana ndi nkhokwe. Ndipo nkhokweyo ikabwezeretsedwa, mkulu wa dipatimentiyo kapena mkulu wa zachitukuko amabwera n’kunena kuti: β€œAnzanga, tifunika kuyang’anira nkhokweyo, chifukwa chinachake choipa chachitika ndipo tiyenera kupewa kuti zimenezi zisadzachitike m’tsogolo.” Ndipo apa pakuyamba njira yosangalatsa yosankha njira yowunikira kapena kusintha njira yowunikira yomwe ilipo kuti mutha kuyang'anira database yanu - PostgreSQL, MySQL kapena ena. Ndipo ogwira nawo ntchito akuyamba kunena kuti: "Ndinamva kuti pali nkhokwe yamtunduwu. Tithandizeni." Anzake amayamba kukangana. Ndipo pamapeto pake zimakhala kuti timasankha mtundu wina wa database, koma kuwunika kwa PostgreSQL kumawonetsedwa momwemo molakwika ndipo nthawi zonse timayenera kuwonjezera china. Tengani nkhokwe zina kuchokera ku GitHub, zisintheni, sinthani zolemba, ndikusintha mwanjira ina. Ndipo pamapeto pake zimangokhala mtundu wina wa ntchito yamanja.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Chifukwa chake, munkhani iyi ndiyesetsa kukupatsani chidziwitso chamomwe mungasankhire kuyang'anira osati PostgreSQL, komanso nkhokwe. Ndipo ndikupatseni chidziwitso chomwe chingakuthandizeni kumaliza kuwunika kwanu kuti mupindule nawo, kuti muthe kuyang'anira database yanu ndi phindu, kuti mupewe msanga zovuta zilizonse zomwe zikubwera zomwe zingachitike.

Ndipo malingaliro omwe adzakhale mu lipotili akhoza kusinthidwa mwachindunji ku database iliyonse, kukhala DBMS kapena noSQL. Chifukwa chake, palibe PostgreSQL yokha, koma padzakhala maphikidwe ambiri momwe mungachitire izi mu PostgreSQL. Padzakhala zitsanzo zamafunso, zitsanzo za mabungwe omwe PostgreSQL ili nawo kuti awonedwe. Ndipo ngati DBMS yanu ili ndi zinthu zomwezo zomwe zimakulolani kuziyika muzowunikira, mukhoza kuzisintha, kuziwonjezera ndipo zidzakhala zabwino.

Zoyambira pakuwunika kwa PostgreSQL. Alexey LesovskySindikhala mu lipoti
lankhulani za momwe mungatumizire ndi kusunga ma metric. Sindinena chilichonse chokhudza kukonzanso deta ndikuyipereka kwa wogwiritsa ntchito. Ndipo sindikunena chilichonse chokhudza kuchenjeza.
Koma pamene nkhaniyo ikupita patsogolo, ndiwonetsa zithunzithunzi zosiyana za kuwunika komwe kulipo ndikuwadzudzula mwanjira ina. Komabe, ndiyesetsa kuti ndisatchule mitundu kuti ndisapange zotsatsa kapena zotsutsana ndi malonda awa. Chifukwa chake, zochitika zonse zimachitika mwachisawawa ndipo zimasiyidwa m'malingaliro anu.
Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky
Choyamba, tiyeni tiwone kuti kuyang'anira ndi chiyani. Kuyang'anira ndi chinthu chofunikira kwambiri kukhala nacho. Aliyense akumvetsa izi. Koma panthawi imodzimodziyo, kuyang'anitsitsa sikukhudzana ndi malonda a bizinesi ndipo sikukhudza mwachindunji phindu la kampani, choncho nthawi zonse zimaperekedwa kuti ziwonetsedwe pazotsalira. Ngati tili ndi nthawi, ndiye kuti timawunika; ngati tilibe nthawi, ndiye kuti zili bwino, tidzaziyika m'mbuyo ndipo tsiku lina tidzabwerera kuntchito izi.

Choncho, kuchokera muzochita zathu, tikabwera kwa makasitomala, kuyang'anitsitsa nthawi zambiri sikukwanira ndipo kulibe zinthu zosangalatsa zomwe zingatithandize kuchita ntchito yabwino ndi database. Ndipo chifukwa chake kuyang'anira kuyenera kumalizidwa nthawi zonse.

Ma database ndi zinthu zovuta kwambiri zomwe zimafunikanso kuyang'aniridwa, chifukwa nkhokwe ndizosungira zambiri. Ndipo zambiri ndizofunikira kwambiri pakampani; sizingatayike mwanjira iliyonse. Koma nthawi yomweyo, ma database ndi zidutswa zovuta kwambiri zamapulogalamu. Amakhala ndi zigawo zambiri. Ndipo zambiri mwa zigawozi ziyenera kuyang'aniridwa.

Zoyambira pakuwunika kwa PostgreSQL. Alexey LesovskyNgati tikulankhula mwachindunji za PostgreSQL, ndiye kuti ikhoza kuyimiridwa mu mawonekedwe a chiwembu chomwe chili ndi zigawo zambiri. Zigawozi zimagwirizana. Ndipo panthawi imodzimodziyo, PostgreSQL ili ndi zomwe zimatchedwa Stats Collector subsystem, zomwe zimakulolani kusonkhanitsa ziwerengero zokhudzana ndi kayendetsedwe ka magawowa ndikupereka mawonekedwe amtundu wina kwa woyang'anira kapena wogwiritsa ntchito kuti athe kuwona ziwerengerozi.

Ziwerengerozi zimaperekedwa mu mawonekedwe a gulu lina la ntchito ndi malingaliro. Akhozanso kutchedwa matebulo. Ndiko kuti, pogwiritsa ntchito kasitomala wanthawi zonse wa psql, mutha kulumikizana ndi database, sankhani ntchito ndi mawonedwe awa, ndikupeza manambala enieni okhudza magwiridwe antchito a PostgreSQL.

Mutha kuwonjezera manambalawa pamakina omwe mumawakonda kwambiri, kujambula ma graph, kuwonjezera ntchito ndikupeza ma analytics pakapita nthawi.

Koma mu lipotili sindifotokoza ntchito zonsezi kwathunthu, chifukwa zitha kutenga tsiku lonse. Ndikambirana zinthu ziwiri, zitatu kapena zinayi ndikukuuzani momwe zimathandizire kuwunikira bwino.
Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky
Ndipo ngati tilankhula za kuyang'anira ma database, ndi chiyani chomwe chiyenera kuyang'aniridwa? Choyamba, tiyenera kuyang'anira kupezeka, chifukwa deta ndi ntchito yomwe imapereka mwayi wopeza deta kwa makasitomala ndipo tiyenera kuyang'anitsitsa kupezeka, komanso kupereka zina mwazofunikira komanso kuchuluka kwake.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Tiyeneranso kuyang'anira makasitomala omwe amalumikizana ndi database yathu, chifukwa akhoza kukhala makasitomala abwino komanso ovulaza omwe angawononge malo osungirako zinthu. Ayeneranso kuyang'aniridwa ndikutsatiridwa ntchito zawo.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Makasitomala akamalumikizana ndi database, zikuwonekeratu kuti amayamba kugwira ntchito ndi deta yathu, chifukwa chake tiyenera kuyang'anira momwe makasitomala amagwirira ntchito ndi deta: ndi matebulo ati, komanso pang'ono, ndi ma index ati. Ndiko kuti, tiyenera kuwunika kuchuluka kwa ntchito zomwe zimapangidwa ndi makasitomala athu.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Koma kuchuluka kwa ntchito kumakhalanso, zopempha. Mapulogalamu amalumikizana ndi nkhokwe, kupeza deta pogwiritsa ntchito mafunso, kotero ndikofunikira kuyesa mafunso omwe tili nawo mu database, kuyang'anira kukwanira kwawo, kuti sizinalembedwe molakwika, kuti zosankha zina ziyenera kulembedwanso ndikupangidwa kuti zigwire ntchito mofulumira. ndi kuchita bwino.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Ndipo popeza tikulankhula za database, database nthawi zonse imakhala yakumbuyo. Njira zakumbuyo zimathandizira kuti magwiridwe antchito a database akhale abwino, kotero amafunikira kuchuluka kwazinthu kuti agwiritse ntchito. Ndipo panthawi imodzimodziyo, amatha kuyanjana ndi zopempha zamakasitomala, kotero kuti njira zadyera zakumbuyo zimatha kukhudza mwachindunji momwe makasitomala amathandizira. Chifukwa chake, amafunikanso kuyang'aniridwa ndikutsatiridwa kuti pasakhale zosokoneza potsata njira zakumbuyo.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Ndipo zonsezi potsata kuwunika kwa database zimakhalabe mu metric system. Koma poganizira kuti zambiri mwazinthu zathu zikupita kumitambo, ma metrics amtundu wamunthu payekha amazimiririka kumbuyo. Koma m'ma database akadali ofunikira ndipo, ndithudi, ndikofunikira kuyang'anira ma metrics a dongosolo.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Chilichonse chili bwino kwambiri ndi ma metrics a dongosolo, machitidwe onse owunikira amakono amathandizira kale ma metrics, koma kawirikawiri, zigawo zina sizikwanira ndipo zina ziyenera kuwonjezeredwa. Ndikhudzanso pa iwo, padzakhala zithunzi zingapo za iwo.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky
Mfundo yoyamba ya ndondomekoyi ndi kupezeka. Kodi kupezeka ndi chiyani? Kupezeka pakumvetsetsa kwanga ndikutha kwa maziko ku kulumikizana kwautumiki, i.e. maziko amakwezedwa, iwo, monga ntchito, amavomereza kulumikizana kuchokera kwa makasitomala. Ndipo kupezeka uku kungawunikidwe ndi mikhalidwe ina. Ndikwabwino kwambiri kuwonetsa izi pama dashboards.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky
Aliyense amadziwa zomwe dashboards ndi. Apa ndi pamene inu munayang'ana pa zenera limene mfundo zofunika ndi mwachidule. Ndipo mutha kudziwa nthawi yomweyo ngati pali vuto mu database kapena ayi.
Chifukwa chake, kupezeka kwa nkhokwe ndi mawonekedwe ena ofunikira kuyenera kuwonetsedwa nthawi zonse pama dashboards kuti chidziwitsochi chikhale pafupi komanso kupezeka kwa inu nthawi zonse. Zina zowonjezera zomwe zimathandiza kale pakufufuza zochitika, pofufuza zochitika zina zadzidzidzi, ziyenera kuikidwa kale pazidashibodi zachiwiri, kapena zobisika muzitsulo zomwe zimatsogolera ku machitidwe a chipani chachitatu.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Chitsanzo cha njira imodzi yodziwika bwino yowunikira. Iyi ndi njira yabwino kwambiri yowunikira. Amasonkhanitsa zambiri, koma kuchokera kumalingaliro anga, ali ndi lingaliro lachilendo la dashboards. Pali ulalo "kupanga dashboard". Koma mukamapanga dashboard, mumapanga mndandanda wa mizati iwiri, mndandanda wa ma graph. Ndipo mukafuna kuyang'ana chinachake, mumayamba kudina ndi mbewa, kupukuta, kuyang'ana tchati chomwe mukufuna. Ndipo izi zimatenga nthawi, i.e. palibe dashboards monga choncho. Pali mndandanda wa ma chart okha.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Kodi muyenera kuwonjezera chiyani pazidashibodi izi? Mutha kuyamba ndi mawonekedwe ngati nthawi yoyankha. PostgreSQL ili ndi pg_stat_statements view. Imayimitsidwa mwachisawawa, koma ndi imodzi mwamawonedwe ofunikira omwe ayenera kuyatsidwa ndikugwiritsidwa ntchito nthawi zonse. Imasunga zidziwitso zamafunso onse omwe afunsidwa mu database.

Chifukwa chake, titha kuyambira pomwe titha kutenga nthawi yonse yoperekera zopempha zonse ndikugawa ndi kuchuluka kwa zopempha pogwiritsa ntchito magawo omwe ali pamwambapa. Koma uku ndiko kutentha kwapakati m'chipatala. Titha kuyamba kuchokera m'magawo ena - nthawi yochepa yofunsa mafunso, yochuluka komanso yapakatikati. Ndipo titha kupanga ma percentiles; PostgreSQL ili ndi ntchito zofananira za izi. Ndipo titha kupeza manambala omwe amawonetsa nthawi yoyankhira nkhokwe yathu pazofunsira zomwe zamalizidwa kale, mwachitsanzo, sitipereka pempho labodza 'sankhani 1' ndikuyang'ana nthawi yoyankhira, koma timasanthula nthawi yoyankha pazofunsira zomwe zamalizidwa kale ndikujambula. mwina chithunzi chosiyana, kapena timapanga graph potengera izo.

Ndikofunikiranso kuyang'anira kuchuluka kwa zolakwika zomwe panopa zimapangidwira ndi dongosolo. Ndipo pa izi mutha kugwiritsa ntchito pg_stat_database view. Timayang'ana kwambiri pagawo la xact_rollback. Mundawu umawonetsa osati kuchuluka kwa ma rollbacks omwe amapezeka mu database, komanso amaganizira kuchuluka kwa zolakwika. Mwachidule, titha kuwonetsa chiwerengerochi mu dashboard yathu ndikuwona kuchuluka kwa zolakwika zomwe tili nazo pano. Ngati pali zolakwika zambiri, ndiye kuti ichi ndi chifukwa chabwino choyang'ana muzolembazo ndikuwona kuti ndi zolakwika zotani komanso chifukwa chake zimachitika, ndikuyika ndalama ndikuzithetsa.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Mukhoza kuwonjezera chinthu monga Tachometer. Izi ndi chiwerengero cha zochitika pa sekondi imodzi ndi chiwerengero cha zopempha pa sekondi iliyonse. Kunena zoona, mutha kugwiritsa ntchito manambalawa ngati momwe mukugwirira ntchito panopa ndikuwona ngati pali nsonga zopempha, nsonga zamabizinesi, kapenanso, ngati nkhokweyo yatsitsidwa chifukwa chakumbuyo kwina kwalephera. Ndikofunika kuyang'ana chiwerengerochi nthawi zonse ndikukumbukira kuti ntchito yathu yotereyi ndi yachilendo, koma zomwe zili pamwamba ndi pansipa ndizovuta komanso zosamvetsetseka, zomwe zikutanthauza kuti tiyenera kuyang'ana chifukwa chake ziwerengerozi zilili. apamwamba kwambiri.

Kuti tiyerekeze kuchuluka kwa zomwe zachitika, titha kulozanso pg_stat_database view. Titha kuwonjezera kuchuluka kwa mabizinesi ndi kuchuluka kwa zobweza ndikupeza kuchuluka kwa zomwe zachitika pamphindikati.

Kodi aliyense amamvetsetsa kuti zopempha zingapo zitha kulowa mumalonda amodzi? Chifukwa chake TPS ndi QPS ndizosiyana pang'ono.

Chiwerengero cha zopempha pa sekondi iliyonse chikhoza kupezeka kuchokera ku pg_stat_statements ndikungowerengera kuchuluka kwa zopempha zonse zomwe zamalizidwa. Zikuwonekeratu kuti timafanizira mtengo wamakono ndi wapitawo, kuchotsa, kupeza delta, ndikupeza kuchuluka kwake.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Mutha kuwonjezera ma metric ngati mukufuna, zomwe zimathandiziranso kuwunika kupezeka kwa nkhokwe yathu ndikuwunika ngati pakhala pali nthawi zina zotsika.

Chimodzi mwama metrics awa ndi uptime. Koma uptime mu PostgreSQL ndizovuta. Ndikuuzani chifukwa chake. PostgreSQL ikayamba, nthawi yowonjezera imayamba kufotokoza. Koma ngati nthawi ina, mwachitsanzo, ntchito ina ikugwira ntchito usiku, wakupha wa OOM adabwera ndikuletsa njira ya ana ya PostgreSQL, ndiye kuti PostgreSQL imathetsa kulumikizana kwa makasitomala onse, ndikukhazikitsanso malo okumbukira ndikuyamba kuchira. cheke chomaliza. Ndipo ngakhale kuchira uku kuchokera pa cheke kutha, databaseyo sivomereza kulumikizana, mwachitsanzo, izi zitha kuyesedwa ngati nthawi yopuma. Koma chowerengera cha uptime sichidzakhazikitsidwanso, chifukwa chimaganizira nthawi yoyambira positi kuyambira nthawi yoyamba. Choncho, zinthu zoterezi zikhoza kudumpha.

Muyeneranso kuyang'anira kuchuluka kwa ogwira ntchito mu vacuum. Kodi aliyense amadziwa zomwe autovacuum ili mu PostgreSQL? Iyi ndi gawo losangalatsa mu PostgreSQL. Nkhani zambiri zalembedwa za iye, malipoti ambiri apangidwa. Pali zokambirana zambiri za vacuum ndi momwe ziyenera kugwirira ntchito. Ambiri amachiwona kukhala choyipa chofunikira. Koma ndi mmene zilili. Uwu ndi mtundu wa analogue ya otolera zinyalala omwe amatsuka mizere yakale yomwe sikufunika pakuchitapo kanthu ndikumasula malo m'matebulo ndi ma index a mizere yatsopano.

Chifukwa chiyani muyenera kuyang'anira? Chifukwa chakuti nthawi zina kupukuta kumapweteka kwambiri. Imawononga ndalama zambiri ndipo zopempha zamakasitomala zimayamba kuvutika chifukwa cha izi.

Ndipo iyenera kuyang'aniridwa kudzera pa pg_stat_activity view, yomwe ndilankhule nayo mu gawo lotsatira. Mawonedwe awa akuwonetsa zomwe zikuchitika mu database. Ndipo kudzera mu ntchitoyi titha kutsata kuchuluka kwa vacuums zomwe zikugwira ntchito pakali pano. Titha kuyang'anira vacuum ndikuwona kuti ngati tapyola malire, ndiye kuti ichi ndi chifukwa choyang'ana makonzedwe a PostgreSQL ndikuwongolera magwiridwe antchito a vacuum.

Chinanso chokhudza PostgreSQL ndikuti PostgreSQL ndiyodwala kwambiri chifukwa chochita nthawi yayitali. Makamaka kuchokera kuzinthu zomwe zimakhazikika kwa nthawi yayitali osachita chilichonse. Izi ndi zomwe zimatchedwa stat idle-in-transaction. Kuchita koteroko kumakhala ndi maloko ndikulepheretsa vacuum kugwira ntchito. Chotsatira chake, matebulo amatupa ndikukula kukula. Ndipo mafunso omwe amagwira ntchito ndi matebulowa amayamba kugwira ntchito pang'onopang'ono, chifukwa muyenera fosholo mizere yonse yakale kuchokera pamtima kupita ku disk ndi kumbuyo. Chifukwa chake, nthawi, nthawi yayitali kwambiri yochita zinthu, zopempha zazitali kwambiri za vacuum ziyenera kuyang'aniridwa. Ndipo ngati tiwona njira zina zomwe zakhala zikuyenda kwa nthawi yayitali kwambiri, kuposa mphindi 10-20-30 pa katundu wa OLTP, ndiye kuti tiyenera kuzisamalira ndikuzithetsa mwamphamvu, kapena kukhathamiritsa kugwiritsa ntchito kuti samaitanidwa ndipo samapachika nthawi yayitali. Pantchito yowunikira, mphindi 10-20-30 ndizabwinobwino; palinso yayitali.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky
Kenako tili ndi mwayi ndi makasitomala olumikizidwa. Pamene tapanga kale dashboard ndikuyikapo makiyi opezekapo, titha kuwonjezeranso zambiri zamakasitomala olumikizidwa pamenepo.

Zambiri zokhudzana ndi makasitomala olumikizidwa ndizofunikira chifukwa, kuchokera ku PostgreSQL, makasitomala ndi osiyana. Pali makasitomala abwino ndipo pali makasitomala oipa.

Chitsanzo chosavuta. Ndi kasitomala ndimamvetsetsa ntchito. Pulogalamuyi idalumikizidwa ndi nkhokwe ndipo nthawi yomweyo imayamba kutumiza zopempha zake kumeneko, njira zosungiramo zinthu zakale ndikuzipereka, ndikubweza zotsatira kwa kasitomala. Awa ndi makasitomala abwino komanso olondola.

Pali zochitika pamene kasitomala wagwirizanitsa, amagwirizanitsa, koma sachita kanthu. Zili m'malo opanda pake.

Koma pali makasitomala oipa. Mwachitsanzo, kasitomala yemweyo adalumikizana, adatsegula malonda, adachita chinachake m'dawunilodi ndiyeno adalowa mu code, mwachitsanzo, kuti apeze gwero lakunja kapena kukonza zomwe adalandira kumeneko. Koma sanatseke malondawo. Ndipo ntchitoyo imapachikidwa mu database ndipo imasungidwa mu loko pamzere. Izi ndizovuta. Ndipo ngati mwadzidzidzi ntchito kwinakwake mkati mwawokha ikulephera kupatulapo, ndiye kuti ntchitoyo ikhoza kukhala yotseguka kwa nthawi yayitali kwambiri. Ndipo izi zimakhudza mwachindunji ntchito ya PostgreSQL. PostgreSQL ikhala pang'onopang'ono. Chifukwa chake, ndikofunikira kutsata makasitomala otere munthawi yake ndikuthetsa ntchito yawo mwamphamvu. Ndipo muyenera kukhathamiritsa ntchito yanu kuti izi zisachitike.

Makasitomala ena oyipa akudikirira makasitomala. Koma amakhala oipa chifukwa cha mikhalidwe. Mwachitsanzo, ntchito yosavuta yopanda pake: imatha kutsegula malonda, kutenga maloko pamizere ina, ndiye penapake mu code idzalephera, kusiya ntchito yolendewera. Makasitomala wina abwera ndikufunsa zomwezo, koma adzakumana ndi loko, chifukwa ntchito yopachikidwayo imasunga kale maloko pamizere ina yofunika. Ndipo kugulitsa kwachiwiri kumangodikirira kudikirira kuti ntchito yoyamba ithe kapena kutseka mokakamiza ndi woyang'anira. Chifukwa chake, zomwe zikuyembekezeredwa zimatha kudziunjikira ndikudzaza malire olumikizira database. Ndipo malire akadzadza, kugwiritsa ntchito sikungathenso kugwira ntchito ndi database. Izi ndizovuta kale pantchitoyi. Chifukwa chake, makasitomala oyipa amayenera kutsatiridwa ndikuyankhidwa munthawi yake.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Chitsanzo china chowunika. Ndipo pali kale dashboard yabwino pano. Pali zambiri zamalumikizidwe pamwambapa. DB kugwirizana - 8 zidutswa. Ndipo ndizo zonse. Tilibe chidziwitso chokhudza makasitomala omwe akugwira ntchito, omwe makasitomala amangokhala opanda pake, osachita kalikonse. Palibe zambiri zokhudzana ndi zochitika zomwe zikudikirira ndi zolumikizira zomwe zikudikirira, i.e. ichi ndi chithunzi chomwe chikuwonetsa kuchuluka kwa maulumikizidwe ndipo ndizomwezo. Ndiyeno dziganizireni nokha.
Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky
Chifukwa chake, kuti muwonjezere chidziwitsochi pakuwunika, muyenera kupeza pg_stat_activity system view. Ngati mumathera nthawi yochuluka mu PostgreSQL, ndiye kuti awa ndi malingaliro abwino kwambiri omwe ayenera kukhala bwenzi lanu, chifukwa amasonyeza zomwe zikuchitika mu PostgreSQL, mwachitsanzo, zomwe zikuchitika mmenemo. Pa ndondomeko iliyonse pali mzere wosiyana womwe umawonetsa zambiri za ndondomekoyi: kuchokera kwa omwe adagwirizanitsa nawo, pansi pa wogwiritsa ntchito, pansi pa dzina liti, pamene ntchitoyo inayambika, pempho liti lomwe likugwira ntchito panopa, ndi pempho liti lomwe linachitidwa komaliza. Ndipo, moyenerera, titha kuyesa dziko la kasitomala pogwiritsa ntchito gawo la ziwerengero. M'malo mwake, titha kupanga magulu ndi gawo ili ndikupeza ziwerengero zomwe zili mgululi komanso kuchuluka kwa maulumikizidwe omwe ali ndi ziwerengerozi. Ndipo titha kutumiza manambala omwe talandira kale kuwunikira kwathu ndikujambula ma graph potengera iwo.
Ndikofunikiranso kuwunika nthawi yomwe mwachita. Ndanena kale kuti ndikofunikira kuyesa nthawi ya vacuum, koma zochitika zimawunikidwa chimodzimodzi. Pali magawo a xact_start ndi query_start. Iwo, kunena kwake, amasonyeza nthawi yoyambira ndi nthawi yoyambira pempho. Timatenga ntchito ya now(), yomwe ikuwonetsa chidindo chanthawi yapano, ndikuchotsa zomwe zachitikazo ndikupempha chidindo chanthawi. Ndipo timapeza nthawi yamalonda, nthawi ya pempho.

Ngati tiwona zochitika zazitali, tiyenera kuzimaliza kale. Pa katundu wa OLTP, zochitika zazitali zatha kale kuposa mphindi 1-2-3. Kwa ntchito ya OLAP, zochitika zazitali ndizabwinobwino, koma ngati zitenga maola opitilira awiri kuti amalize, ndiye kuti ichi ndi chizindikiro chakuti tili ndi skew kwinakwake.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky
Makasitomala akalumikizana ndi database, amayamba kugwira ntchito ndi data yathu. Amapeza matebulo, amapeza ma index kuti apeze deta kuchokera patebulo. Ndipo ndikofunikira kuyesa momwe makasitomala amalumikizirana ndi datayi.

Izi ndizofunikira kuti tiwunikire kuchuluka kwa ntchito yathu ndikumvetsetsa kuti ndi matebulo ati omwe ali "otentha kwambiri" kwa ife. Mwachitsanzo, izi zimafunika nthawi yomwe tikufuna kuyika matebulo "otentha" pamtundu wina wa SSD yofulumira. Mwachitsanzo, matebulo ena osungira omwe sitinawagwiritse ntchito kwa nthawi yayitali akhoza kusunthira kumtundu wina wa "ozizira" archive, kupita ku SATA drives ndikuwalola kuti azikhala kumeneko, adzafikiridwa ngati pakufunika.

Izi ndizothandizanso pakuzindikira zolakwika pambuyo pa kutulutsidwa kulikonse ndi kutumiza. Tinene kuti polojekitiyi yatulutsa zina zatsopano. Mwachitsanzo, tawonjezera ntchito zatsopano zogwirira ntchito ndi database. Ndipo ngati tikonza ma graph ogwiritsira ntchito patebulo, titha kuzindikira zovuta izi pazithunzizi. Mwachitsanzo, sinthani kuphulika kapena kufufuta zophulika. Zidzawoneka kwambiri.

Mutha kuzindikiranso zolakwika mu ziwerengero "zoyandama". Zikutanthauza chiyani? PostgreSQL ili ndi ndandanda yamafunso yamphamvu komanso yabwino kwambiri. Ndipo opanga amapereka nthawi yochuluka pa chitukuko chake. Kodi amagwira ntchito bwanji? Kuti mupange mapulani abwino, PostgreSQL imasonkhanitsa ziwerengero za kugawidwa kwa deta m'matebulo panthawi inayake komanso pafupipafupi. Izi ndizo zomwe zimakonda kwambiri: chiwerengero cha makhalidwe apadera, zambiri za NULL patebulo, zambiri.

Kutengera ziwerengerozi, wokonza amapanga mafunso angapo, amasankha yomwe ili yabwino kwambiri, ndikugwiritsa ntchito dongosolo la funsoli kuti ayankhe yekha ndikubweza deta.

Ndipo zimachitika kuti ziwerengero "zimayandama". Ubwino ndi kuchuluka kwa data mwanjira ina zidasintha patebulo, koma ziwerengero sizinasonkhanitsidwe. Ndipo mapulani opangidwa sangakhale abwino. Ndipo ngati mapulani athu atakhala ocheperako kutengera kuwunika komwe kwasonkhanitsidwa, kutengera matebulo, titha kuwona zolakwika izi. Mwachitsanzo, kwinakwake deta inasintha bwino ndipo m'malo mwa ndondomekoyi, kupitirira motsatizana kudutsa patebulo kunayamba kugwiritsidwa ntchito, i.e. ngati funso likufunika kubweza mizere 100 yokha (pali malire a 100), ndiye kuti kufufuza kwathunthu kudzachitidwa pafunsoli. Ndipo izi nthawi zonse zimakhala ndi zotsatira zoyipa kwambiri pakuchita.

Ndipo titha kuwona izi pakuwunika. Ndipo yang'anani kale funso ili, fotokozerani, sonkhanitsani ziwerengero, pangani index yowonjezera yatsopano. Ndipo yankhani kale vuto ili. Chifukwa chake ndikofunikira.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Chitsanzo china chowunika. Ndikuganiza kuti anthu ambiri anamuzindikira chifukwa ndi wotchuka kwambiri. Amene amagwiritsa ntchito mu ntchito zawo Prometheus? Ndani amagwiritsa ntchito mankhwalawa molumikizana ndi Prometheus? Chowonadi ndi chakuti m'malo osungiramo kuwunikaku pali dashboard yogwira ntchito ndi PostgreSQL - postgres_exporter Prometheus. Koma pali tsatanetsatane woyipa.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Pali ma graph angapo. Ndipo ma byte amawonetsedwa ngati mgwirizano, i.e. pali ma graph 5. Izi ndi Insert data, Update data, Delete data, Fetch data and Return data. Muyeso wa mayunitsi ndi mabaiti. Koma chinthu ndichakuti ziwerengero mu PostgreSQL zimabwezera deta mu tuple (mizere). Ndipo, moyenerera, ma graph awa ndi njira yabwino kwambiri yochepetsera kuchuluka kwa ntchito yanu kangapo, kangapo, nthawi zambiri, chifukwa tuple si baiti, tuple ndi chingwe, ndi ma byte ambiri ndipo nthawi zonse imakhala yosiyana. Ndiko kuti, kuwerengera kuchuluka kwa ntchito mu ma byte pogwiritsa ntchito ma tuples ndi ntchito yosatheka kapena yovuta kwambiri. Chifukwa chake, mukamagwiritsa ntchito dashboard kapena kuwunika kokhazikika, ndikofunikira nthawi zonse kumvetsetsa kuti imagwira ntchito bwino ndikukubwezerani zomwe mwayesedwa bwino.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Kodi mungapeze bwanji ziwerengero pamatebulo awa? Pachifukwa ichi, PostgreSQL ili ndi banja lina lamalingaliro. Ndipo lingaliro lalikulu ndilo pg_stat_user_tables. User_tables - izi zikutanthauza matebulo opangidwa m'malo mwa wogwiritsa ntchito. Mosiyana ndi izi, pali malingaliro adongosolo omwe amagwiritsidwa ntchito ndi PostgreSQL yokha. Ndipo pali tebulo lachidule la Alltables, lomwe limaphatikizapo machitidwe ndi ogwiritsa ntchito. Mutha kuyamba kuchokera kwa aliyense wa iwo omwe mumakonda kwambiri.

Pogwiritsa ntchito minda yomwe ili pamwambapa mutha kuyerekeza kuchuluka kwa zoyika, zosintha ndi zochotsa. Chitsanzo cha dashboard yomwe ndidagwiritsa ntchito imagwiritsa ntchito magawowa kuwunika momwe ntchito ikuyendera. Choncho, tikhoza kumanganso pa iwo. Koma ndikofunikira kukumbukira kuti awa ndi ma tuples, osati ma byte, kotero sitingathe kuchita izi mwa ma byte.

Malingana ndi deta iyi, tikhoza kupanga matebulo otchedwa TopN. Mwachitsanzo, Top-5, Top-10. Ndipo mutha kutsata matebulo otentha omwe amasinthidwanso kuposa ena. Mwachitsanzo, matebulo 5 "otentha" oyikapo. Ndipo pogwiritsa ntchito matebulo awa a TopN timayesa kuchuluka kwa ntchito yathu ndipo titha kuwunika kuchuluka kwa ntchito pambuyo potulutsa, zosintha, ndi kutumiza.

Ndikofunikiranso kuyesa kukula kwa tebulo, chifukwa nthawi zina opanga amatulutsa chinthu chatsopano, ndipo matebulo athu amayamba kutukusira m'miyeso yawo yayikulu, chifukwa adaganiza zowonjezera kuchuluka kwa data, koma sananeneretu momwe izi zingakhalire. zimakhudza kukula kwa database. Nkhani zotere zimatidabwitsanso.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Ndipo tsopano funso laling'ono kwa inu. Ndi funso liti lomwe limabwera mukawona katundu pa seva yanu ya database? Funso lotsatira lomwe muli nalo ndi liti?

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Koma kwenikweni funso limakhala motere. Kodi katundu amabweretsa zopempha zotani? Ndiko kuti, sizosangalatsa kuyang'ana njira zomwe zimayambitsidwa ndi katundu. Zikuwonekeratu kuti ngati wolandirayo ali ndi database, ndiye kuti databaseyo ikugwira ntchito pamenepo ndipo zikuwonekeratu kuti ma database okha ndi omwe adzatayidwe pamenepo. Ngati titsegula Pamwamba, tidzawona mndandanda wazinthu mu PostgreSQL zomwe zikuchita chinachake. Sizidziwika kuchokera Kumwamba zomwe akuchita.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Chifukwa chake, muyenera kupeza mafunso omwe amayambitsa katundu wambiri, chifukwa kuwongolera mafunso, monga lamulo, kumapereka phindu lochulukirapo kuposa kukonza PostgreSQL kapena kasinthidwe ka makina ogwiritsira ntchito, kapenanso kukonza zida. Malinga ndi kuyerekezera kwanga, izi ndi pafupifupi 80-85-90%. Ndipo izi zimachitika mofulumira kwambiri. Ndikofulumira kukonza pempho kusiyana ndi kukonza kasinthidwe, konzekerani kuyambiranso, makamaka ngati nkhokwe silingathe kuyambiranso, kapena kuwonjezera hardware. Ndikosavuta kulembanso funsolo penapake kapena kuwonjezera index kuti mupeze zotsatira zabwinoko kuchokera pafunsoli.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky
Chifukwa chake, ndikofunikira kuyang'anira zopempha ndi kukwanira kwake. Tiyeni titenge chitsanzo china chowunika. Ndipo apanso, zikuwoneka kuti pali kuyang'anira bwino kwambiri. Pali zambiri zobwerezabwereza, pali zambiri pazantchito, kutsekereza, kugwiritsa ntchito zinthu. Chilichonse chili bwino, koma palibe chidziwitso pazopempha. Sizikudziwika kuti ndi mafunso ati omwe akuyenda mu database yathu, nthawi yayitali bwanji, ndi angati mwa mafunsowa. Nthawi zonse tiyenera kukhala ndi chidziwitso ichi pakuwunika kwathu.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Ndipo kuti tidziwe izi titha kugwiritsa ntchito gawo la pg_stat_statements. Kutengera ndi izi, mutha kupanga ma graph osiyanasiyana. Mwachitsanzo, mutha kupeza zambiri zamafunso omwe amapezeka pafupipafupi, ndiye kuti, pamafunso omwe amafunsidwa nthawi zambiri. Inde, pambuyo pa kutumizidwa ndizothandiza kwambiri kuziyang'ana ndikumvetsetsa ngati pali kuwonjezereka kwa zopempha.

Mutha kuyang'anira mafunso aatali kwambiri, ndiye kuti, mafunso omwe amatenga nthawi yayitali kuti amalize. Amathamanga pa purosesa, amadya I/O. Tikhozanso kuyesa izi pogwiritsa ntchito magawo total_time, mean_time, blk_write_time ndi blk_read_time.

Titha kuwunika ndikuyang'anira zopempha zolemera kwambiri pakugwiritsa ntchito zida, zomwe zimawerengedwa kuchokera pa disk, zomwe zimagwira ntchito ndi kukumbukira, kapena, mosiyana, kupanga mtundu wina wa zolemba.

Tikhoza kuwunika zopempha mowolowa manja kwambiri. Awa ndi mafunso omwe amabweretsa mizere yambiri. Mwachitsanzo, izi zitha kukhala pempho lina pomwe adayiwala kukhazikitsa malire. Ndipo imangobweza zonse zomwe zili patebulo kapena funso pamatebulo ofunsidwa.

Ndipo mutha kuyang'aniranso mafunso omwe amagwiritsa ntchito mafayilo osakhalitsa kapena matebulo osakhalitsa.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky
Ndipo tikadali ndi ndondomeko zakumbuyo. Njira zakumbuyo ndizoyang'ana kapena zimatchedwanso ma checkpoint, awa ndi autovacuum ndi kubwerezabwereza.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Chitsanzo china chowunika. Pali tabu ya Maintenance kumanzere, pitaniko ndikuyembekeza kuwona china chake chothandiza. Koma ino ndi nthawi yokhayo yopangira vacuum ndi kusonkhanitsa ziwerengero, palibenso china. Izi ndizovuta kwambiri, choncho nthawi zonse timafunika kukhala ndi chidziwitso cha momwe ndondomeko zakumbuyo zimagwirira ntchito mu database yathu komanso ngati pali vuto lililonse pa ntchito yawo.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Tikayang'ana ma checkpoints, tiyenera kukumbukira kuti ma checkpoints amachotsa masamba akuda kuchokera kumalo osungiramo kukumbukira mpaka ku disk, ndiyeno pangani poyang'ana. Ndipo poyang'ana izi zitha kugwiritsidwa ntchito ngati malo ochira ngati PostgreSQL idathetsedwa mwadzidzidzi mwadzidzidzi.

Chifukwa chake, kuti mutsitse masamba onse "odetsedwa" ku disk, muyenera kulemba kuchuluka kwake. Ndipo, monga lamulo, pa machitidwe omwe ali ndi kukumbukira kwakukulu, izi ndizochuluka. Ndipo ngati tichita macheke pafupipafupi pakanthawi kochepa, ndiye kuti magwiridwe antchito a disk adzatsika kwambiri. Ndipo zopempha zamakasitomala zidzavutika ndi kusowa kwazinthu. Adzapikisana ndi chuma ndi kusowa zokolola.

Chifukwa chake, kudzera pg_stat_bgwriter pogwiritsa ntchito minda yomwe tafotokozayi titha kuyang'anira kuchuluka kwa macheke omwe amachitika. Ndipo ngati tili ndi ma checkpoints ambiri panthawi inayake (mu 10-15-20 mphindi, theka la ola), mwachitsanzo, 3-4-5, ndiye kuti izi zikhoza kukhala kale vuto. Ndipo muyenera kuyang'ana kale mu nkhokwe, yang'anani mu kasinthidwe, chomwe chimayambitsa kuchulukira kwa macheke. Mwinamwake pali mtundu wina wa zojambula zazikulu zomwe zikuchitika. Titha kuyesa kale kuchuluka kwa ntchito, chifukwa tawonjezera kale ma grafu olemetsa. Titha kusinthanso magawo a cheke ndikuwonetsetsa kuti sizikhudza kwambiri momwe amafunsira.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Ndikubwereranso ku autovacuum kachiwiri chifukwa ndi chinthu choterocho, monga ndinanena, chomwe chitha kuwonjezera mosavuta ma disk ndi mafunso, kotero ndikofunikira nthawi zonse kuyerekezera kuchuluka kwa autovacuum.

Chiwerengero cha ogwira ntchito pa autovacuum mu database ndi ochepa. Mwachikhazikitso, pali atatu mwa iwo, kotero ngati nthawi zonse timakhala ndi antchito atatu ogwira ntchito mu database, izi zikutanthauza kuti autovacuum yathu siidakonzedwe, tiyenera kukweza malire, kukonzanso zoikamo autovacuum ndi kulowa mu kasinthidwe.
Ndikofunikira kuunika ogwira ntchito opanda vacuum omwe tili nawo. Mwina idakhazikitsidwa kuchokera kwa wogwiritsa ntchito, DBA idabwera ndikuyambitsa pamanja mtundu wina wa vacuum, ndipo izi zidapanga katundu. Tili ndi vuto linalake. Kapena ichi ndi chiwerengero cha vacuums zomwe zimachotsa kauntala. Kwa mitundu ina ya PostgreSQL awa ndi ma vacuum olemera kwambiri. Ndipo amatha kuwonjezera magwiridwewo mosavuta chifukwa amawerenga tebulo lonse, kusanthula midadada yonse yomwe ili patebulolo.

Ndipo, ndithudi, nthawi ya vacuums. Ngati tili ndi ma vacuum okhalitsa omwe amayenda kwa nthawi yayitali kwambiri, ndiye kuti tifunikanso kuyang'anitsitsa kasinthidwe ka vacuum ndipo mwina tiganizirenso zoikamo zake. Chifukwa zinthu zitha kuchitika pamene vacuum ikugwira ntchito patebulo kwa nthawi yayitali (maola 3-4), koma panthawi yomwe mpweya umagwira ntchito, mizere yambiri yakufa imatha kudziunjikiranso patebulo. Ndipo chotsekeracho chikangotha, ayenera kusesanso tebulo ili. Ndipo ife tifika pa mkhalidwe - wopanda mapeto vacuum. Ndipo pamenepa, vacuum sagwirizana ndi ntchito yake, ndipo matebulo amayamba kukula pang'onopang'ono, ngakhale kuchuluka kwa deta yothandiza momwemo kumakhalabe chimodzimodzi. Choncho, pa nthawi ya vacuums yaitali, nthawi zonse timayang'ana kasinthidwe ndikuyesera kuwongolera, koma nthawi yomweyo kuti ntchito ya zopempha za kasitomala isavutike.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Masiku ano palibe kuyika kwa PostgreSQL komwe kulibe kubwerezabwereza. Kubwereza ndi njira yosamutsa deta kuchokera ku master kupita ku chofananira.

Kubwereza mu PostgreSQL kumachitika kudzera pa chipika chogulitsira. Wizard imapanga chipika chochita. Cholembacho chimadutsa pa intaneti kupita ku chofananacho, kenako chimapangidwanso pachifanizirocho. Ndi zophweka.

Chifukwa chake, pg_stat_replication view imagwiritsidwa ntchito kuyang'anira kubwerezabwereza. Koma sikuti zonse ndi zophweka ndi iye. Mu mtundu 10, mawonekedwe asintha kangapo. Choyamba, minda ina yasinthidwa. Ndipo minda ina yawonjezedwa. Mu mtundu 10, minda idawonekera yomwe imakupatsani mwayi woyerekeza kubwereza kwa masekondi. Ndi bwino kwambiri. Asanatuluke 10, zinali zotheka kuyerekeza kuchuluka kwa ma byte. Njirayi imakhalabe mumtundu wa 10, mwachitsanzo, mutha kusankha chomwe chili chosavuta kwa inu - yerekezerani kuchuluka kwa ma byte kapena yerekezerani kutsalira mumasekondi. Anthu ambiri amachita zonsezi.

Koma, kuti muyese kubwerezabwereza, muyenera kudziwa malo a chipikacho. Ndipo malo olowera awa ali ndendende momwe pg_stat_replication view. Kunena zoona, titha kutenga mfundo ziwiri mu chipika chogulitsira pogwiritsa ntchito pg_xlog_location_diff() ntchito. Werengetsani delta pakati pawo ndikupeza kubwerezabwereza mu byte. Ndi yabwino komanso yosavuta.

Mu mtundu 10, ntchitoyi idasinthidwa kukhala pg_wal_lsn_diff(). Nthawi zambiri, muzochita zonse, mawonedwe, ndi zofunikira zomwe mawu oti "xlog" adawonekera, adasinthidwa ndi mtengo "wal". Izi zikugwiranso ntchito pazowonera ndi ntchito. Izi ndi zatsopano.

Kuphatikiza apo, mu mtundu 10, mizere idawonjezedwa yomwe ikuwonetsa kuchedwa. Izi ndi kulemba kuchedwa, kuchedwa, kuchedwa kobwerezabwereza. Ndiko kuti, ndikofunikira kuyang'anira zinthu izi. Ngati tiwona kuti tili ndi kubwerezabwereza, tiyenera kufufuza chifukwa chake zidawonekera, komwe zidachokera ndikukonza vutolo.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Pafupifupi zonse zikuyenda bwino ndi ma metric adongosolo. Kuwunika kulikonse kukayamba, kumayamba ndi ma metric adongosolo. Uku ndikutaya mapurosesa, kukumbukira, kusinthana, network ndi disk. Komabe, magawo ambiri salipo mwachisawawa.

Ngati zonse zili mu dongosolo ndi ndondomeko yobwezeretsanso, ndiye kuti pali mavuto ndi disk recycling. Monga lamulo, otsogolera owunikira amawonjezera zambiri zokhudzana ndi kupititsa patsogolo. Itha kukhala mu iops kapena ma byte. Koma amaiwala za latency ndi kugwiritsa ntchito zida za disk. Izi ndi zofunika kwambiri zomwe zimatilola kuwunika momwe ma disks athu amanyamulira komanso kuti akuchedwa. Ngati tili ndi latency yayikulu, ndiye kuti pali zovuta zina ndi ma disks. Ngati tigwiritsa ntchito kwambiri, zikutanthauza kuti ma disks sakulimbana. Izi ndi zabwinoko kuposa momwe zimakhalira.

Kuphatikiza apo, ziwerengerozi zitha kupezekanso ku /proc file system, monga zimachitikira pokonzanso mapurosesa. Sindikudziwa chifukwa chake chidziwitsochi sichiwonjezedwa pakuwunika. Komabe, ndikofunikira kukhala ndi izi pakuwunika kwanu.

Zomwezo zimagwiranso ntchito pamakina apakanema. Pali zambiri zokhudzana ndi kuchuluka kwa maukonde m'mapaketi, ma byte, komabe palibe chidziwitso chokhudza latency komanso chidziwitso chokhudza kugwiritsidwa ntchito, ngakhale izi ndizothandizanso.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Kuyang'anira kulikonse kumakhala ndi zovuta. Ndipo ziribe kanthu mtundu wa kuwunika komwe mungatenge, nthawi zonse sikukwaniritsa zofunikira zina. Komabe, akupanga, zatsopano ndi zatsopano zikuwonjezedwa, choncho sankhani china chake ndikumaliza.

Ndipo kuti mumalize, muyenera kukhala ndi lingaliro la zomwe ziwerengero zomwe zaperekedwa zikutanthawuza komanso momwe mungagwiritsire ntchito kuthetsa mavuto.

Ndipo mfundo zingapo zofunika:

  • Muyenera kuyang'anira kupezeka ndikukhala ndi ma dashboards kuti muwone msanga kuti zonse zikuyenda bwino ndi database.
  • Nthawi zonse muyenera kukhala ndi lingaliro la zomwe makasitomala akugwira ntchito ndi database yanu kuti muchotse makasitomala oyipa ndikuwawombera.
  • Ndikofunika kuwunika momwe makasitomalawa amagwirira ntchito ndi deta. Muyenera kukhala ndi lingaliro la kuchuluka kwa ntchito yanu.
  • Ndikofunikira kuwunika momwe ntchitoyi imapangidwira, mothandizidwa ndi mafunso. Mutha kuwunika mafunso, mutha kuwongolera, kuwasinthanso, kuwapangira ma index. Ndikofunikira kwambiri.
  • Njira zakumbuyo zimatha kusokoneza zopempha zamakasitomala, chifukwa chake ndikofunikira kuyang'anira kuti sakugwiritsa ntchito zinthu zambiri.
  • Ma metrics amachitidwe amakulolani kuti mupange mapulani okulitsa ndi kukulitsa kuchuluka kwa ma seva anu, chifukwa chake ndikofunikira kuwatsata ndikuwunikanso.

Zoyambira pakuwunika kwa PostgreSQL. Alexey Lesovsky

Ngati muli ndi chidwi ndi mutuwu, mutha kutsatira maulalo awa.
http://bit.do/stats_collector - izi ndi zolembedwa zovomerezeka kuchokera kwa osonkhanitsa ziwerengero. Pali malongosoledwe a ziwerengero zonse ndi kufotokozera madera onse. Mutha kuwerenga, kumvetsetsa ndi kusanthula. Ndipo potengera iwo, pangani ma graph anu ndikuwonjezera pakuwunika kwanu.

Zopempha zachitsanzo:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

Ichi ndi chosungira chathu chamakampani komanso changa. Iwo ali ndi zitsanzo zitsanzo. Palibe mafunso kuchokera ku select* kuchokera pamndandanda pamenepo. Pali mafunso okonzeka kale omwe ali ndi majowina, pogwiritsa ntchito ntchito zosangalatsa zomwe zimakulolani kuti musinthe manambala aiwisi kukhala owerengeka, abwino, mwachitsanzo, awa ndi ma byte, nthawi. Mutha kuzitola, kuziyang'ana, kuzisanthula, kuziwonjezera pakuwunika kwanu, kupanga kuwunika kwanu motengera iwo.

Mafunso anu

Funso: Munati simudzatsatsa malonda, koma ndikufuna kudziwa - ndi ma dashboard amtundu wanji omwe mumagwiritsa ntchito pamapulojekiti anu?
Yankho: Zimasiyana. Zimachitika kuti timabwera kwa kasitomala ndipo ali kale ndi kuyang'anira kwake. Ndipo timalangiza makasitomala pazomwe akuyenera kuwonjezeredwa pakuwunika kwawo. Zoyipa kwambiri zili ndi Zabbix. Chifukwa ilibe luso lopanga ma graph a TopN. Ife tokha ntchito Okmeter, chifukwa tinali kukambirana ndi anyamatawa pa monitoring. Adayang'anira PostgreSQL kutengera luso lathu. Ndikulemba pulojekiti yanga ya pet, yomwe imasonkhanitsa deta kudzera pa Prometheus ndikuimasulira grafana. Ntchito yanga ndikupanga wanga wogulitsa kunja ku Prometheus ndikupereka zonse ku Grafana.

Funso: Kodi pali zofananira za malipoti a AWR kapena ... kuphatikizika? Kodi mukudziwa za chinthu chonga ichi?
Yankho: Inde, ndikudziwa kuti AWR ndi chiyani, ndi chinthu chabwino. Pakali pano pali mitundu yosiyanasiyana ya njinga zomwe zimagwiritsa ntchito pafupifupi chitsanzo chotsatirachi. Panthawi ina, zoyambira zina zimalembedwa ku PostgreSQL yomweyo kapena kusungirako kosiyana. Mutha kuziyika pa Google pa intaneti, zilipo. Mmodzi mwa oyambitsa chinthu choterocho akukhala pabwalo la sql.ru mu ulusi wa PostgreSQL. Inu mukhoza kumugwira iye kumeneko. Inde, pali zinthu zotere, zitha kugwiritsidwa ntchito. Plus mu zake pgCenter Ndikulembanso chinthu chomwe chimakulolani kuchita zomwezo.

PS1 Ngati mukugwiritsa ntchito postgres_exporter, mukugwiritsa ntchito dashboard yanji? Pali angapo a iwo. Zachikale kale. Mwina anthu ammudzi apanga template yosinthidwa?

PS2 Yachotsedwa pganalyze chifukwa ndi eni ake a SaaS omwe amayang'ana kwambiri kuyang'anira magwiridwe antchito ndi malingaliro osintha okha.

Ogwiritsa ntchito olembetsedwa okha ndi omwe angatenge nawo gawo pa kafukufukuyu. Lowani muakauntichonde.

Ndi kuwunika kotani kwa postgresql (kokhala ndi dashboard) komwe mumawona kuti ndikobwino?

  • 30,0%Zabbix + zowonjezera kuchokera ku Alexey Lesovsky kapena zabbix 4.4 kapena libzbxpgsql + zabbix libzbxpgsql + zabbix3

  • 0,0%https://github.com/lesovsky/pgcenter0

  • 0,0%https://github.com/pg-monz/pg_monz0

  • 20,0%https://github.com/cybertec-postgresql/pgwatch22

  • 20,0%https://github.com/postgrespro/mamonsu2

  • 0,0%https://www.percona.com/doc/percona-monitoring-and-management/conf-postgres.html0

  • 10,0%pganalyze ndi eni SaaS - sindingathe kuyichotsa1

  • 10,0%https://github.com/powa-team/powa1

  • 0,0%https://github.com/darold/pgbadger0

  • 0,0%https://github.com/darold/pgcluu0

  • 0,0%https://github.com/zalando/PGObserver0

  • 10,0%https://github.com/spotify/postgresql-metrics1

Ogwiritsa 10 adavota. Ogwiritsa ntchito 26 adakana.

Source: www.habr.com

Kuwonjezera ndemanga