Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Manaʻo wau e heluhelu ʻoe i ka transcript o ka hōʻike e Alexey Lesovsky mai Data Egret "Fundamentals of PostgreSQL monitoring"

Ma kēia hōʻike, e kamaʻilio ʻo Alexey Lesovsky e pili ana i nā kumu nui o nā helu post-gress, pehea lākou e manaʻo ai, a no ke aha lākou e noho ai i ka nānā ʻana; e pili ana i nā kiʻi e pono ai i ka nānā ʻana, pehea e hoʻohui ai a pehea e wehewehe ai. E hoʻohana ka hōʻike i nā luna hoʻomalu waihona, nā luna ʻōnaehana a me nā mea hoʻomohala i makemake i ka hoʻoponopono pilikia Postgres.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

ʻO Alexey Lesovsky koʻu inoa, ke pani nei au i ka hui Data Egret.

He mau hua'ōlelo e pili ana iaʻu iho. Ua hoʻomaka wau i kahi manawa lōʻihi ma ke ʻano he luna ʻōnaehana.

Ua lawelawe wau i nā ʻano ʻōnaehana Linux like ʻole, hana i nā mea like ʻole e pili ana i Linux, ʻo ia hoʻi ka virtualization, ka nānā ʻana, hana me nā proxies, a me nā mea ʻē aʻe. Ua makemake nui au iā ia. A i kekahi manawa ua hoʻomaka wau e hana ma PostgreSQL i ka hapa nui o kaʻu manawa hana. A no laila, ua lilo wau i PostgreSQL DBA.

A i loko o kaʻu ʻoihana, makemake mau wau i nā kumuhana o ka helu, ka nānā ʻana, a me ka telemetry. A i koʻu wā he luna hoʻonohonoho, ua hana pū wau me Zabbix. A kākau wau i kahi liʻiliʻi o nā palapala like zabbix-extensions. Ua kaulana ʻo ia i kona wā. A ma laila ua hiki ke nānā i nā mea koʻikoʻi like ʻole, ʻaʻole wale ʻo Linux, akā i nā ʻāpana like ʻole.

I kēia manawa ke hana nei au ma PostgreSQL. Ke kākau nei au i kahi mea ʻē aʻe e hiki ai iā ʻoe ke hana me nā helu PostgreSQL. Ua kapa ʻia pgCenter (ʻatikala ma Habré - Nā helu helu post-gress me ka ʻole o ke aʻalolo a me ka haʻalulu).

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

He palapala hoʻolauna iki. He aha nā kūlana i loaʻa i kā mākou mea kūʻai aku? Aia kekahi ʻano pōʻino e pili ana i ka waihona. A i ka wā i hoʻihoʻi ʻia ai ka waihona, hele mai ke poʻo o ka ʻoihana a i ʻole ke poʻo o ka hoʻomohala ʻana a ʻōlelo: "E nā hoaaloha, pono mākou e nānā i ka waihona, no ka mea, ua loaʻa kekahi mea ʻino a pono mākou e pale i kēia mai ka wā e hiki mai ana." A eia ka hoʻomaka ʻana o ke kaʻina hana hoihoi o ke koho ʻana i kahi ʻōnaehana nānā a i ʻole ka hoʻololi ʻana i kahi ʻōnaehana nānā i hiki ke nānā i kāu waihona - PostgreSQL, MySQL a i ʻole kekahi mau mea ʻē aʻe. A hoʻomaka nā hoa hana e ʻōlelo: "Ua lohe au aia kekahi ʻano waihona. E hoʻohana kāua." Hoʻomaka nā hoa hana e hoʻopaʻapaʻa kekahi i kekahi. A i ka hopena, ua koho mākou i kekahi ʻano waihona, akā hōʻike ʻia ka nānā ʻana o PostgreSQL i loko o ia mea me ka maikaʻi ʻole a pono mākou e hoʻohui i kekahi mea. E lawe i kekahi mau waihona mai GitHub, clone iā lākou, hoʻololi i nā palapala, a me kekahi ʻano hana. A i ka hopena, ua lilo ia i ʻano hana lima.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

No laila, ma kēia kamaʻilio e hoʻāʻo wau e hāʻawi iā ʻoe i kahi ʻike e pili ana i ke koho ʻana i ka nānā ʻana ʻaʻole wale no PostgreSQL, akā no ka waihona. A hāʻawi iā ʻoe i ka ʻike e hiki ai iā ʻoe ke hoʻopau i kāu nānā ʻana i mea e loaʻa ai kahi pōmaikaʻi mai ia mea, i hiki iā ʻoe ke nānā i kāu waihona me ka pōmaikaʻi, i mea e pale koke ai i nā kūlana pilikia e hiki mai ana.

A hiki ke hoʻololi pololei ʻia nā manaʻo i loko o kēia hōʻike i kekahi waihona, inā he DBMS a i ʻole noSQL. No laila, ʻaʻole wale ʻo PostgreSQL, akā nui nā ʻano ʻike pehea e hana ai i kēia ma PostgreSQL. E loaʻa nā hiʻohiʻona o nā nīnau, nā hiʻohiʻona o nā hui i loaʻa iā PostgreSQL no ka nānā ʻana. A inā loaʻa i kāu DBMS nā mea like e hiki ai iā ʻoe ke hoʻokomo iā lākou i ka nānā ʻana, hiki iā ʻoe ke hoʻololi iā lākou, hoʻohui iā lākou a maikaʻi.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey LesovskyʻAʻole wau i loko o ka hōʻike
e kamaʻilio e pili ana i ka lawe ʻana a me ka mālama ʻana i nā ana. ʻAʻole wau e ʻōlelo i kekahi mea e pili ana i ka hoʻoponopono ʻana i ka ʻikepili a hōʻike i ka mea hoʻohana. A ʻaʻole wau e ʻōlelo i kekahi mea e pili ana i ka makaʻala.
Akā i ka holomua ʻana o ka moʻolelo, e hōʻike wau i nā kiʻi ʻoniʻoni like ʻole o ka nānā ʻana i kēia manawa a me ka hoʻohewa ʻana iā lākou. Akā naʻe, e hoʻāʻo wau ʻaʻole e inoa i nā hōʻailona i ʻole e hana i ka hoʻolaha a i ʻole anti-hoʻolaha no kēia mau huahana. No laila, ʻokoʻa nā mea like ʻole a waiho ʻia i kou manaʻo.
Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky
ʻO ka mea mua, e noʻonoʻo kākou i ke ʻano o ka nānā ʻana. He mea koʻikoʻi loa ka nānā ʻana. Hoʻomaopopo nā kānaka a pau i kēia. Akā i ka manawa like, ʻaʻole pili ka nānā ʻana i kahi huahana ʻoihana a ʻaʻole pili pono i ka loaʻa kālā o ka ʻoihana, no laila ua hāʻawi mau ʻia ka manawa i ka nānā ʻana ma ke koena kumu. Inā loaʻa iā mākou ka manawa, a laila hana mākou i ka nānā ʻana; inā ʻaʻohe manawa, a laila OK, e hoʻokomo mākou i ka backlog a i kekahi lā e hoʻi mākou i kēia mau hana.

No laila, mai kā mākou hoʻomaʻamaʻa, ke hele mai mākou i nā mea kūʻai aku, pinepine ʻole ka nānā ʻana a ʻaʻohe mea hoihoi e kōkua iā mākou e hana i kahi hana ʻoi aku ka maikaʻi me ka waihona. A no laila pono e hoʻopau mau ka nānā ʻana.

ʻO nā ʻikepili nā mea paʻakikī e pono ke nānā ʻia, no ka mea, ʻo ka waihona kahi waihona o ka ʻike. A he mea koʻikoʻi ka ʻike no ka hui; ʻaʻole hiki ke nalowale ma kekahi ʻano. Akā i ka manawa like, ʻo nā ʻikepili he mau ʻāpana paʻakikī o ka polokalamu. Aia lākou i kahi helu nui o nā ʻāpana. A pono e nānā ʻia ka nui o kēia mau ʻāpana.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey LesovskyInā mākou e kamaʻilio kikoʻī e pili ana i PostgreSQL, a laila hiki ke hōʻike ʻia ma ke ʻano o kahi hoʻolālā i loaʻa i ka nui o nā ʻāpana. Hoʻopili kēia mau mea i kekahi i kekahi. A i ka manawa like, loaʻa iā PostgreSQL ka mea i kapa ʻia ʻo Stats Collector subsystem, e hiki ai iā ʻoe ke hōʻiliʻili i nā ʻikepili e pili ana i ka hana ʻana o kēia mau subsystems a hāʻawi i kekahi ʻano o ka interface i ka luna hoʻomalu a mea hoʻohana paha i hiki iā ia ke nānā i kēia mau helu.

Hōʻike ʻia kēia mau ʻikepili ma ke ʻano o kekahi mau hana a me nā manaʻo. Hiki ke kapa ʻia lākou he mau papaʻaina. ʻO ia hoʻi, me ka hoʻohana ʻana i ka mea kūʻai aku psql maʻamau, hiki iā ʻoe ke hoʻopili i ka waihona, e koho i kēia mau hana a me nā manaʻo, a loaʻa i kekahi mau helu kikoʻī e pili ana i ka hana o nā subsystems PostgreSQL.

Hiki iā ʻoe ke hoʻohui i kēia mau helu i kāu ʻōnaehana nānā punahele, kahakiʻi i nā kiʻi, hoʻohui i nā hana a loaʻa nā ʻikepili i ka wā lōʻihi.

Akā ma kēia hōʻike ʻaʻole wau e uhi piha i kēia mau hana a pau, no ka mea hiki ke lawe i ka lā holoʻokoʻa. E kamaʻilio maoli wau i ʻelua, ʻekolu a i ʻole ʻehā mau mea a haʻi iā ʻoe pehea e kōkua ai lākou e hoʻomaikaʻi i ka nānā ʻana.
Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky
A inā mākou e kamaʻilio e pili ana i ka nānā ʻana i ka waihona, a laila he aha ka mea e pono ai ke nānā ʻia? ʻO ka mea mua, pono mākou e nānā i ka loaʻa, no ka mea, ʻo ka ʻikepili kahi lawelawe e hāʻawi i ka ʻike i ka ʻikepili i nā mea kūʻai aku a pono mākou e nānā i ka loaʻa, a hāʻawi pū kekahi i kāna mau hiʻohiʻona qualitative a quantitative.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Pono mākou e nānā i nā mea kūʻai aku e pili ana i kā mākou waihona, no ka mea hiki iā lākou ke lilo i mau mea kūʻai maʻamau a me nā mea kūʻai ʻino e hiki ke hōʻino i ka waihona. Pono e nānā ʻia a mālama ʻia kā lākou mau hana.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Ke hoʻohui nā mea kūʻai aku i ka waihona, ʻike maopopo ʻia e hoʻomaka lākou e hana me kā mākou ʻikepili, no laila pono mākou e nānā i ke ʻano o ka hana ʻana o nā mea kūʻai aku me ka ʻikepili: me nā papa, a me ka liʻiliʻi loa, me nā kuhikuhi. ʻO ia hoʻi, pono mākou e loiloi i ka hana i hana ʻia e kā mākou mea kūʻai aku.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Akā ʻo ka haʻahaʻa hana pū kekahi, ʻoiaʻiʻo, nā noi. Hoʻopili nā noi i ka waihona, ʻike i ka ʻikepili me ka hoʻohana ʻana i nā nīnau, no laila he mea nui e loiloi i nā nīnau i loaʻa iā mākou i ka waihona, e nānā i ko lākou kūpono, ʻaʻole i kākau kekee ʻia, pono e kākau hou ʻia kekahi mau koho i hana wikiwiki lākou. a me ka hana ʻoi aku ka maikaʻi.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

A no ka mea, ke kamaʻilio nei mākou e pili ana i kahi waihona, ʻo ka ʻikepili nā kaʻina hana hope. Kōkua nā kaʻina hana hope i ka mālama ʻana i ka hana ʻikepili ma kahi pae maikaʻi, no laila pono lākou i kahi nui o nā kumuwaiwai no lākou iho e hana. A i ka manawa like, hiki iā lākou ke hoʻopili me nā kumuwaiwai noi a ka mea kūʻai aku, no laila hiki ke hoʻopili pololei nā kaʻina hana hope i ka hana o nā noi o nā mea kūʻai aku. No laila, pono lākou e nānā ʻia a nānā ʻia i ʻole he distortions e pili ana i nā kaʻina hana hope.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

A ʻo kēia mau mea a pau e pili ana i ka nānā ʻana i ka waihona waihona e mau nei i ka metric system. Akā i ka noʻonoʻo ʻana i ka neʻe ʻana o ka hapa nui o kā mākou ʻoihana i nā ao, ʻo nā ʻōnaehana ʻōnaehana o kahi host hoʻokahi e nalo mau i ke kua. Akā i loko o nā ʻikepili pili mau lākou a, ʻoiaʻiʻo, pono nō hoʻi e nānā i nā metric ʻōnaehana.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Ua ʻoi aku ka maikaʻi o nā mea a pau me nā ʻōnaehana ʻōnaehana, ua kākoʻo nā ʻōnaehana kiaʻi hou i kēia mau ana, akā ma ka laulā, ʻaʻole lawa kekahi mau mea a pono e hoʻohui ʻia kekahi mau mea. E hoʻopā aku nō hoʻi au iā lākou, aia kekahi mau paheʻe e pili ana iā lākou.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky
ʻO ka helu mua o ka papahana ka hiki ke komo. He aha ke komo ʻana? Loaʻa i koʻu hoʻomaopopo ʻana i ka hiki o ke kumu i nā pilina lawelawe, ʻo ia hoʻi, hoʻokiʻekiʻe ʻia ke kumu, ʻo ia, ma ke ʻano he lawelawe, ʻae i nā pilina mai nā mea kūʻai aku. A hiki ke loiloi ʻia kēia ʻike e kekahi mau hiʻohiʻona. He mea maʻalahi ke hōʻike i kēia mau hiʻohiʻona ma nā dashboards.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky
Ua ʻike nā kānaka a pau i ke ʻano o nā dashboards. ʻO kēia ka manawa āu i nānā ai i ka pale kahi i hōʻuluʻulu ʻia ai ka ʻike e pono ai. A hiki iā ʻoe ke hoʻoholo koke inā he pilikia ma ka waihona a i ʻole.
No laila, pono e hōʻike mau ʻia ka loaʻa ʻana o ka waihona a me nā ʻano kī nui ʻē aʻe ma nā dashboards i hiki ai kēia ʻike i ka lima a loaʻa mau iā ʻoe. ʻO kekahi mau kikoʻī hou aʻe i kōkua mua i ka hoʻokolokolo ʻana i nā hanana, i ka wā e noiʻi ai i kekahi mau pilikia pilikia, pono lākou e kau ʻia ma nā dashboards lua, a hūnā ʻia paha i nā loulou drilldown e alakaʻi i nā ʻōnaehana nānā ʻekolu.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

He laʻana o kekahi ʻōnaehana nānā kaulana. He ʻōnaehana nānā ʻoluʻolu loa kēia. ʻOhi ʻo ia i nā ʻikepili he nui, akā mai koʻu manaʻo, loaʻa iā ia kahi manaʻo ʻē o nā dashboards. Aia kahi loulou e "hana i kahi dashboard". Akā ke hana ʻoe i kahi dashboard, hana ʻoe i kahi papa inoa o nā kolamu ʻelua, kahi papa inoa o nā kiʻi. A i ka wā e pono ai ʻoe e nānā i kekahi mea, hoʻomaka ʻoe e kaomi me ka ʻiole, ʻōwili, ʻimi i ka pakuhi i makemake ʻia. A he manawa kēia, ʻo ia hoʻi, ʻaʻohe dashboards e like me ia. He mau papa inoa wale nō.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

He aha kāu e hoʻohui ai i kēia mau dashboards? Hiki iā ʻoe ke hoʻomaka me kahi ʻano e like me ka manawa pane. Loaʻa iā PostgreSQL ka ʻike pg_stat_statements. Ua pio ia ma ka paʻamau, akā ʻo ia kekahi o nā manaʻo ʻōnaehana koʻikoʻi e hoʻohana mau ʻia a hoʻohana ʻia. Mālama ia i ka ʻike e pili ana i nā nīnau holo a pau i hana ʻia ma ka waihona.

No laila, hiki iā mākou ke hoʻomaka mai ka ʻoiaʻiʻo e hiki iā mākou ke lawe i ka manawa hoʻokō o nā noi āpau a hoʻokaʻawale iā ia i ka helu o nā noi e hoʻohana ana i nā kahua i luna. Akā ʻo kēia ka maʻamau maʻamau ma ka haukapila. Hiki iā mākou ke hoʻomaka mai nā kahua ʻē aʻe - ka liʻiliʻi o ka manawa hoʻokō nīnau, ka nui a me ka waena. A hiki iā mākou ke kūkulu i nā pākēneka; He mau hana like ko PostgreSQL no kēia. A hiki iā mākou ke loaʻa i kekahi mau helu e hōʻike ana i ka manawa pane o kā mākou waihona no nā noi i hoʻopau ʻia, ʻo ia hoʻi, ʻaʻole mākou e hoʻokō i ka noi hoʻopunipuni 'koho 1' a nānā i ka manawa pane, akā ke nānā nei mākou i ka manawa pane no nā noi i hoʻopau ʻia a huki. he kiʻi ʻokoʻa paha, a i ʻole kūkulu mākou i ka pakuhi ma muli o ia.

He mea nui hoʻi e nānā i ka helu o nā hewa i hana ʻia e ka ʻōnaehana i kēia manawa. A no kēia hiki iā ʻoe ke hoʻohana i ka nānā pg_stat_database. Ke nānā aku nei mākou i ke kahua xact_rollback. Hōʻike kēia kahua ʻaʻole wale i ka helu o nā rollbacks i loaʻa i ka waihona, akā e noʻonoʻo pū i ka helu o nā hewa. Ma ka ʻōlelo pili, hiki iā mākou ke hōʻike i kēia kiʻi i kā mākou dashboard a ʻike i ka nui o nā hewa i loaʻa iā mākou i kēia manawa. Inā he nui nā hewa, a laila he kumu maikaʻi kēia e nānā ai i nā lāʻau a ʻike i ke ʻano o nā hewa a me ke kumu o ia mau mea, a laila hoʻolilo a hoʻoponopono iā lākou.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Hiki iā ʻoe ke hoʻohui i kahi mea e like me kahi Tachometer. ʻO kēia ka helu o nā hana i kēlā me kēia kekona a me ka helu o nā noi i kekona. Ma ka ʻōlelo pili, hiki iā ʻoe ke hoʻohana i kēia mau helu e like me ka hana o kēia manawa o kāu waihona a nānā inā he mau piko i nā noi, nā kiʻekiʻe o nā kālepa, a i ʻole, inā i hoʻoiho ʻia ka waihona no ka mea ua hāʻule kekahi backend. He mea nui e nānā mau i kēia kiʻi a e hoʻomanaʻo no kā mākou papahana he mea maʻamau kēia ʻano hana, akā ʻo nā waiwai ma luna a ma lalo nei kekahi ʻano pilikia a hiki ʻole ke hoʻomaopopo ʻia, ʻo ia hoʻi, pono mākou e nānā i ke kumu o kēia mau helu. kiʻekiʻe loa.

I mea e koho ai i ka nui o nā hana, hiki iā mākou ke nānā hou i ka nānā pg_stat_database. Hiki iā mākou ke hoʻohui i ka helu o nā hana a me ka helu o nā rollbacks a loaʻa ka helu o nā hana i kēlā me kēia kekona.

Maopopo anei i nā mea a pau e hiki ke komo i kekahi mau noi i hoʻokahi kālepa? No laila, ʻokoʻa iki ka TPS a me QPS.

Hiki ke loaʻa ka helu o nā noi i kekona mai nā pg_stat_statements a e helu wale i ka huina o nā noi i hoʻopau ʻia. Ua maopopo ke hoʻohālikelike mākou i ka waiwai o kēia manawa me ka mea ma mua, e unuhi iā ia, e kiʻi i ka delta, a loaʻa ka nui.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Hiki iā ʻoe ke hoʻohui i nā metric ʻē aʻe inā makemake ʻia, e kōkua pū ana i ka loiloi i ka loaʻa ʻana o kā mākou waihona a nānā inā he manawa hoʻomaha.

ʻO kekahi o kēia mau metric ka uptime. Akā ʻoi aku ka paʻakikī o ka uptime ma PostgreSQL. E haʻi wau iā ʻoe i ke kumu. I ka hoʻomaka ʻana o PostgreSQL, hoʻomaka ka hōʻike ʻana i ka manawa. Akā inā i kekahi manawa, no ka laʻana, e holo ana kekahi hana i ka pō, hele mai kahi OOM-killer a hoʻopau ikaika i ke kaʻina hana keiki PostgreSQL, a laila ma kēia hihia e hoʻopau ʻo PostgreSQL i ka pilina o nā mea kūʻai aku a pau, hoʻonohonoho hou i ka wahi hoʻomanaʻo sharded a hoʻomaka i ka hoʻihoʻi mai. ka helu hope loa. A ʻoiai e mau ana kēia hoʻihoʻi ʻana mai ka wahi hōʻoia, ʻaʻole ʻae ka waihona i nā pilina, ʻo ia hoʻi, hiki ke helu ʻia kēia kūlana ma ke ʻano he downtime. Akā, ʻaʻole e hoʻonohonoho hou ʻia ka uptime counter, no ka mea e noʻonoʻo ana i ka manawa hoʻomaka postmaster mai ka manawa mua loa. No laila, hiki ke hoʻokuʻu ʻia kēlā mau kūlana.

Pono ʻoe e nānā i ka helu o nā limahana hana. ʻIke paha nā mea a pau i ka autovacuum ma PostgreSQL? He subsystem hoihoi kēia ma PostgreSQL. Nui nā ʻatikala i kākau ʻia e pili ana iā ia, nui nā hōʻike i hana ʻia. Nui nā kūkākūkā e pili ana i ka vacuum a pehea e hana ai. Manaʻo ka poʻe he mea pono ia. Akā ʻo ia ke ʻano. He ʻano analogue kēia o ka ʻohi ʻōpala e hoʻomaʻemaʻe i nā mana o nā lālani i makemake ʻole ʻia e kekahi kālepa a hoʻokuʻu i nā wahi i nā papa a me nā kuhikuhi no nā lālani hou.

No ke aha ʻoe e nānā pono ai? No ka mea, eha nui ka vacuum i kekahi manawa. Hoʻopau ia i ka nui o nā kumuwaiwai a hoʻomaka ka pilikia o ka mea kūʻai aku ma muli o ka hopena.

A pono e nānā ʻia ma o ka ʻike pg_stat_activity, aʻu e kamaʻilio ai ma ka ʻāpana aʻe. Hōʻike kēia ʻike i ka hana o kēia manawa i ka waihona. A ma o kēia hana hiki iā mākou ke nānā i ka helu o nā vacuums e hana nei i kēia manawa. Hiki iā mākou ke ʻimi i nā vacuums a ʻike inā ua ʻoi aku mākou ma mua o ka palena, a laila he kumu kēia e nānā ai i nā hoʻonohonoho PostgreSQL a i ʻole e hoʻokō i ka hana o ka vacuum.

ʻO kekahi mea e pili ana iā PostgreSQL ʻo ia ka PostgreSQL maʻi nui i nā hana lōʻihi. Maikaʻi mai nā kālepa e kau nei no ka manawa lōʻihi a hana ʻole. ʻO kēia ka mea i kapa ʻia ʻo stat idle-in-transaction. ʻO ia ʻano kālepa e paʻa i nā laka a pale i ka hana ʻana o ka vacuum. A ʻo ka hopena, pehu nā papaʻaina a hoʻonui i ka nui. A ʻo nā nīnau e hana pū ana me kēia mau papa e hoʻomaka e hana lohi, no ka mea pono ʻoe e kohi i nā mana kahiko āpau o nā lālani mai ka hoʻomanaʻo i ka disk a me hope. No laila, ʻo ka manawa, ka lōʻihi o nā hana lōʻihi loa, nā noi vacuum lōʻihi loa e pono e nānā ʻia. A inā ʻike mākou i kekahi mau kaʻina hana e holo nei no ka manawa lōʻihi loa, ʻoi aku ma mua o 10-20-30 mau minuke no kahi ukana OLTP, a laila pono mākou e hoʻolohe iā lākou a hoʻopau ikaika iā lākou, a i ʻole e hoʻonui i ka noi i hiki ai iā lākou. ʻaʻole i kāhea ʻia a ʻaʻole e kau lōʻihi. No ka hana analytical, 10-20-30 minuke ka mea maʻamau; aia kekahi mau lōʻihi.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky
A laila loaʻa iā mākou ke koho me nā mea kūʻai aku pili. I ka wā i hana ai mākou i kahi dashboard a kau i nā anana loaʻa koʻikoʻi ma luna, hiki iā mākou ke hoʻohui i ka ʻike hou e pili ana i nā mea kūʻai aku i pili ma laila.

He mea nui ka ʻike e pili ana i nā mea kūʻai aku no ka mea, mai kahi hiʻohiʻona PostgreSQL, ʻokoʻa nā mea kūʻai aku. Aia nā mea kūʻai maikaʻi a aia nā mea kūʻai maikaʻi ʻole.

He laʻana maʻalahi. Ma ka mea kūʻai mai maopopo iaʻu ka noi. Ua pili ka palapala noi i ka waihona a hoʻomaka koke i ka hoʻouna ʻana i kāna mau noi ma laila, nā kaʻina hana waihona a hoʻokō iā lākou, a hoʻihoʻi i nā hopena i ka mea kūʻai aku. He mau mea kūʻai maikaʻi a pololei kēia.

Aia kekahi mau kūlana i ka wā i hoʻopili ai ka mea kūʻai aku, paʻa ia i ka pilina, akā ʻaʻohe hana. Aia ma ka noho palaualelo.

Akā aia nā mea kūʻai hewa. No ka laʻana, pili ka mea kūʻai like, wehe i kahi kālepa, hana i kekahi mea i loko o ka waihona a laila hele i loko o ke code, no ka laʻana, e komo i kahi kumu waho a i ʻole e hana i ka ʻikepili i loaʻa ma laila. ʻAʻole naʻe ʻo ia i pani i ke kālepa. A ke kau nei ka hana i loko o ka waihona a paʻa i kahi laka ma ka laina. He kūlana ʻino kēia. A inā hāʻule koke kahi noi ma kahi o loko iho me kahi ʻokoʻa, a laila hiki ke wehe ʻia ke kālepa no ka manawa lōʻihi. A pili pono kēia i ka hana PostgreSQL. E lohi ana ka PostgreSQL. No laila, he mea nui e hahai i kēlā mau mea kūʻai aku i ka manawa kūpono a hoʻopau ikaika i kā lākou hana. A pono ʻoe e hoʻomaikaʻi i kāu noi i ʻole e kū mai kēlā mau kūlana.

Ke kali nei nā mea kūʻai hewa ʻē aʻe i nā mea kūʻai aku. Akā, lilo lākou i meaʻino ma muli o nā kūlana. ʻO kahi laʻana, kahi hana hana ʻole maʻalahi: hiki iā ia ke wehe i kahi kālepa, lawe i nā laka ma kekahi mau laina, a laila ma kahi o ke code e hāʻule ʻole, e waiho ana i kahi kālepa e kau ana. E hele mai ana kekahi mea kūʻai aku a noi i ka ʻikepili like, akā e hālāwai ʻo ia me kahi laka, no ka mea, ua paʻa ke kau ʻana i nā laka ma kekahi mau lālani i koi ʻia. A e kau ka lua o ka hana e kali ana i ka hana mua e hoʻopau a pani paʻa paha e ka luna hoʻomalu. No laila, hiki ke hōʻiliʻili a hoʻopiha i ka palena hoʻopili waihona. A i ka piha ʻana o ka palena, ʻaʻole hiki i ka noi ke hana hou me ka waihona. He kūlana pilikia kēia no ka papahana. No laila, pono e nānā ʻia nā mea kūʻai hewa a pane ʻia i ka manawa kūpono.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

ʻO kekahi laʻana o ka nānā ʻana. A aia kahi dashboard maikaʻi ma aneʻi. Aia ka ʻike e pili ana i nā pilina ma luna. Hoʻohui DB - 8 mau ʻāpana. A ʻo ia wale nō. ʻAʻohe o mākou ʻike e pili ana i nā mea kūʻai aku e hana nei, nā mea kūʻai aku e hana wale ʻole, ʻaʻohe hana. ʻAʻohe ʻike e pili ana i nā kālepa e kali nei a me nā pilina e kali nei, ʻo ia hoʻi kahi kiʻi e hōʻike ana i ka helu o nā pilina a ʻo ia nō. A laila e koho iā ʻoe iho.
Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky
No laila, e hoʻohui i kēia ʻike i ka nānā ʻana, pono ʻoe e komo i ka ʻike ʻōnaehana pg_stat_activity. Inā ʻoe e hoʻolilo i ka manawa nui ma PostgreSQL, a laila he manaʻo maikaʻi loa kēia e lilo i hoaaloha nou, no ka mea, hōʻike ia i ka hana o kēia manawa ma PostgreSQL, ʻo ia hoʻi ka mea e hana nei i loko. No kēlā me kēia kaʻina hana, aia kahi laina kaʻawale e hōʻike ana i ka ʻike e pili ana i kēia kaʻina hana: mai ka mea hoʻokipa i hana ʻia ai ka pilina, ma lalo o ka mea hoʻohana, ma lalo o ka inoa hea, i ka wā i hoʻomaka ai ke kālepa, he aha ke noi e holo nei, he aha ka noi i hoʻokō hope ʻia. A, no laila, hiki iā mākou ke loiloi i ke kūlana o ka mea kūʻai aku me ka hoʻohana ʻana i ke kahua stat. Ma ka ʻōlelo pili, hiki iā mākou ke hui ma kēia kahua a loaʻa kēlā mau stats i kēia manawa i ka waihona a me ka helu o nā pilina i loaʻa kēia ʻikepili i ka waihona. A hiki iā mākou ke hoʻouna i nā helu i loaʻa i kā mākou nānā ʻana a huki i nā kiʻi ma luna o lākou.
He mea nui hoʻi e loiloi i ka lōʻihi o ke kālepa. Ua ʻōlelo mua wau he mea nui e loiloi i ka lōʻihi o nā vacuums, akā loiloi ʻia nā kālepa ma ke ʻano like. Aia nā kahua xact_start a me query_start. ʻO lākou, e ʻōlelo nei, hōʻike i ka manawa hoʻomaka o ke kālepa a me ka manawa hoʻomaka o ka noi. Lawe mākou i ka hana i kēia manawa (), e hōʻike ana i ka timestamp o kēia manawa, a unuhi i ke kālepa a noi i ka timestamp. A loaʻa iā mākou ka lōʻihi o ke kālepa, ka lōʻihi o ka noi.

Inā ʻike mākou i nā kālepa lōʻihi, pono mākou e hoʻopau iā lākou. No ka ukana OLTP, ʻoi aku ka lōʻihi ma mua o 1-2-3 mau minuke. No ka hana OLAP, he mea maʻamau nā hana lōʻihi, akā inā ʻoi aku ka lōʻihi o ʻelua mau hola e hoʻopau ai, a laila he hōʻailona hoʻi kēia he skew ma kahi.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky
Ke hoʻopili nā mea kūʻai aku i ka waihona, hoʻomaka lākou e hana me kā mākou ʻikepili. Loaʻa lākou i nā papa, loaʻa lākou i nā index e kiʻi i ka ʻikepili mai ka papaʻaina. A he mea nui e loiloi i ka pili ʻana o nā mea kūʻai aku me kēia ʻikepili.

Pono kēia i mea e loiloi ai i kā mākou haʻahaʻa hana a hoʻomaopopo pono i nā papa ʻaina ka "wela loa" no mākou. No ka laʻana, pono kēia i nā kūlana kahi a mākou e makemake ai e kau i nā papa "wela" ma kekahi ʻano mālama SSD wikiwiki. No ka laʻana, hiki ke hoʻoneʻe ʻia kekahi mau papa waihona waihona a mākou i hoʻohana ʻole ai no ka manawa lōʻihi i kekahi ʻano waihona "anu", i nā SATA drive a waiho iā lākou e noho ma laila, e loaʻa iā lākou e like me ka mea e pono ai.

He mea pono kēia no ka ʻike ʻana i nā anomalies ma hope o ka hoʻokuʻu ʻana a me ka hoʻolaha ʻana. E ʻōlelo kākou ua hoʻokuʻu ka papahana i kekahi hiʻohiʻona hou. No ka laʻana, ua hoʻohui mākou i nā hana hou no ka hana ʻana me ka waihona. A inā mākou e hoʻolālā i nā kiʻi hoʻohana papaʻaina, hiki iā mākou ke ʻike maʻalahi i kēia mau anomalies ma kēia mau pakuhi. No ka laʻana, hōʻano hou i nā pahū a i ʻole e holoi i nā pahū. E ʻike nui ʻia.

Hiki iā ʻoe ke ʻike i nā anomalies i nā helu "floating". He aha ka manaʻo? Loaʻa iā PostgreSQL kahi mea hoʻonohonoho noiʻi ikaika a maikaʻi loa. A hāʻawi nā mea hoʻomohala i ka manawa nui i kona hoʻomohala ʻana. Pehea kana hana ana? No ka hana ʻana i nā hoʻolālā maikaʻi, hōʻiliʻili ʻo PostgreSQL i nā ʻikepili no ka hāʻawi ʻana i ka ʻikepili ma nā papa i kekahi manawa a me kahi alapine. ʻO kēia nā waiwai maʻamau: ka helu o nā waiwai kūikawā, kaʻike e pili ana iā NULL i ka papaʻaina, ka nui o kaʻike.

Ma muli o kēia mau ʻikepili, kūkulu ka mea hoʻolālā i kekahi mau nīnau, koho i ka mea maikaʻi loa, a hoʻohana i kēia hoʻolālā hulina e hoʻokō i ka nīnau ponoʻī a hoʻihoʻi i ka ʻikepili.

A hiki mai ka "float" o ka helu. Ua loli ka ʻikepili maikaʻi a me ka nui ma ka papaʻaina, akā ʻaʻole i hōʻiliʻili ʻia nā ʻikepili. A ʻaʻole kūpono paha nā hoʻolālā i kūkulu ʻia. A inā huli kā mākou mau hoʻolālā i ka suboptimal e pili ana i ka nānā ʻana i hōʻiliʻili ʻia, e pili ana i nā papa, hiki iā mākou ke ʻike i kēia mau anomalies. No ka laʻana, ma kahi o ka ʻikepili i hoʻololi qualitatively a ma kahi o ka index, kahi sequential pass ma ka papaʻaina hoʻomaka e hoʻohana ʻia, ʻo ia hoʻi. inā pono e hoʻihoʻi i nā lālani he 100 wale nō (he palena o 100), a laila e hana ʻia kahi hulina piha no kēia nīnau. A he hopena maikaʻi ʻole kēia i ka hana.

A hiki iā mākou ke ʻike i kēia ma ka nānā ʻana. A e nānā i kēia nīnau, e holo i wehewehe no ia mea, e hōʻiliʻili i nā helu, e kūkulu i kahi kuhikuhi hou. A ua pane mua i kēia pilikia. ʻO ia ke kumu nui.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

ʻO kekahi laʻana o ka nānā ʻana. Manaʻo wau he nui ka poʻe i ʻike iā ia no ka mea kaulana loa ʻo ia. ʻO wai ka mea hoʻohana i kā lākou papahana IHILA? ʻO wai ka mea hoʻohana i kēia huahana me Prometheus? ʻO ka ʻoiaʻiʻo aia i loko o ka waihona maʻamau o kēia nānā ʻana aia kahi dashboard no ka hana ʻana me PostgreSQL - mea hoʻopuka Prometheus. Akā aia hoʻokahi kikoʻī maikaʻi ʻole.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Nui nā pakuhi. A ua hōʻike ʻia nā bytes ma ke ʻano he hui, ʻo ia hoʻi he 5 kiʻi. ʻO kēia nā ʻikepili Hoʻokomo, Hoʻohou i ka ʻikepili, Holoi i ka ʻikepili, kiʻi i ka ʻikepili a hoʻihoʻi i ka ʻikepili. He bytes ka ana ana. Akā ʻo ka mea ʻo ka helu helu ma PostgreSQL e hoʻihoʻi i ka ʻikepili i ka tuple (laina). A no laila, he ala maikaʻi loa kēia mau kiʻi e hoʻohaʻahaʻa i kāu haʻahaʻa hana i nā manawa he nui, ʻumi mau manawa, no ka mea, ʻaʻole he byte ka tuple, he kaula ka tuple, he nui nā bytes a he ʻano loli mau ka lōʻihi. ʻO ia hoʻi, ʻo ka helu ʻana i ka hana ma nā bytes me ka hoʻohana ʻana i nā tuple he hana kūpono ʻole a paʻakikī paha. No laila, ke hoʻohana ʻoe i kahi dashboard a i ʻole ka nānā ʻana i kūkulu ʻia, he mea nui e hoʻomaopopo i ka hana pololei ʻana a hoʻihoʻi iā ʻoe i ka ʻikepili i loiloi pono ʻia.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Pehea e loaʻa ai nā ʻikepili ma kēia mau papa? No kēia kumu, loaʻa iā PostgreSQL kekahi ʻohana manaʻo. A ʻo ka manaʻo nui pg_stat_user_tables. User_tables - ʻo ia hoʻi nā papa i hana ʻia ma ka inoa o ka mea hoʻohana. Ma ka ʻokoʻa, aia nā manaʻo ʻōnaehana i hoʻohana ʻia e PostgreSQL ponoʻī. A aia kahi papa hōʻuluʻulu Alltables, e komo pū me nā ʻōnaehana a me nā mea hoʻohana. Hiki iā ʻoe ke hoʻomaka mai kekahi o ia mau mea āu e makemake ai.

Me ka hoʻohana ʻana i nā kahua ma luna nei hiki iā ʻoe ke koho i ka helu o nā mea hoʻokomo, nā mea hou a me nā holoi ʻana. ʻO ka laʻana o kahi dashboard aʻu i hoʻohana ai i kēia mau kahua e loiloi i nā ʻano o kahi haʻahaʻa hana. No laila, hiki iā mākou ke kūkulu ma luna o lākou. Akā, he mea pono e hoʻomanaʻo he mau tuple kēia, ʻaʻole bytes, no laila ʻaʻole hiki iā mākou ke hana i nā bytes.

Ma muli o kēia ʻikepili, hiki iā mākou ke kūkulu i nā papa i kapa ʻia ʻo TopN. No ka laʻana, Top-5, Top-10. A hiki iā ʻoe ke hahai i kēlā mau papa wela i hana hou ʻia ma mua o nā mea ʻē aʻe. No ka laʻana, 5 "wela" papa no ka hoʻokomo. A me ka hoʻohana ʻana i kēia mau papa TopN e loiloi mākou i kā mākou haʻahaʻa hana a hiki ke loiloi i ka pahū o ka hana ma hope o nā hoʻokuʻu ʻana, nā mea hou, a me nā kau ʻana.

He mea nui nō hoʻi e loiloi i ka nui o ka papaʻaina, no ka mea, i kekahi manawa e ʻōwili nā mea hoʻomohala i kahi hiʻohiʻona hou, a hoʻomaka kā mākou papa e pehu i ko lākou nui nui, no ka mea ua hoʻoholo lākou e hoʻohui i ka nui o ka ʻikepili, akā ʻaʻole i wānana pehea e hana ai kēia. pili i ka nui o ka waihona. ʻO ia mau hihia hoʻi he mea kāhāhā iā mākou.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

A i kēia manawa he nīnau liʻiliʻi iā ʻoe. He aha ka nīnau inā ʻike ʻoe i ka ukana ma kāu kikowaena waihona? He aha kāu nīnau aʻe?

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Akā ʻo ka ʻoiaʻiʻo ke kū nei ka nīnau penei. He aha nā noi i hana ʻia e ka ukana? ʻO ia hoʻi, ʻaʻole hoihoi ka nānā ʻana i nā kaʻina hana i hana ʻia e ka ukana. Ua maopopo inā loaʻa i ka mea hoʻokipa kahi waihona, a laila e holo ana ka waihona ma laila a maopopo e hoʻopau wale ʻia nā waihona ma laila. Inā wehe mākou i luna, e ʻike mākou i kahi papa inoa o nā kaʻina hana ma PostgreSQL e hana nei i kekahi mea. ʻAʻole maopopo iā Top ka mea a lākou e hana nei.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

No laila, pono ʻoe e ʻimi i kēlā mau nīnau e hoʻokau i ka ukana kiʻekiʻe loa, no ka mea, ʻoi aku ka maikaʻi o ka hoʻopaʻa ʻana i nā nīnau, ma ke ʻano he kānāwai, ma mua o ka hoʻopaʻa ʻana i ka PostgreSQL a i ʻole ka hoʻonohonoho ʻana i ka ʻōnaehana hana, a i ʻole ka hoʻopaʻa ʻana i ka hāmeʻa. Wahi a kaʻu manaʻo, aia kēia ma kahi o 80-85-90%. A ʻoi aku ka wikiwiki o kēia hana. ʻOi aku ka wikiwiki o ka hoʻoponopono ʻana i kahi noi ma mua o ka hoʻoponopono ʻana i ka hoʻonohonoho, hoʻonohonoho i kahi hoʻomaka hou, ʻoiai inā ʻaʻole hiki ke hoʻomaka hou ka waihona, a i ʻole e hoʻohui i nā lako. ʻOi aku ka maʻalahi o ka kākau hou ʻana i ka nīnau ma kahi a i ʻole ka hoʻohui ʻana i kahi kuhikuhi no ka loaʻa ʻana o kahi hopena maikaʻi aʻe mai kēia nīnau.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky
No laila, pono e nānā i nā noi a me ko lākou kūpono. E lawe kākou i kekahi laʻana o ka nānā ʻana. A ma ʻaneʻi hoʻi, me he mea lā ke nānā maikaʻi loa. Aia ka ʻike e pili ana i ka replication, aia ka ʻike e pili ana i ka throughput, blocking, hoʻohana waiwai. Ua maikaʻi nā mea a pau, akā ʻaʻohe ʻike e pili ana i nā noi. ʻAʻole maopopo i nā nīnau e holo nei i loko o kā mākou waihona, pehea ka lōʻihi o ka holo ʻana, pehea ka nui o kēia mau nīnau. Pono mākou e loaʻa kēia ʻike i kā mākou nānā ʻana.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

A no ka loaʻa ʻana o kēia ʻike hiki iā mākou ke hoʻohana i ka module pg_stat_statements. Ma muli o ia mea, hiki iā ʻoe ke kūkulu i nā kiʻi like ʻole. No ka laʻana, hiki iā ʻoe ke loaʻa ka ʻike e pili ana i nā nīnau pinepine, ʻo ia hoʻi, ma kēlā mau nīnau i hoʻokō pinepine ʻia. ʻAe, ma hope o ka hoʻolaha ʻana he mea pono nō hoʻi ke nānā iā ia a hoʻomaopopo inā loaʻa kahi piʻi o nā noi.

Hiki iā ʻoe ke nānā i nā nīnau lōʻihi loa, ʻo ia hoʻi, kēlā mau nīnau e lōʻihi loa ka hoʻopau ʻana. Holo lākou ma ka papa hana, hoʻopau lākou i ka I/O. Hiki iā mākou ke loiloi i kēia me ka hoʻohana ʻana i nā kahua total_time, mean_time, blk_write_time a me blk_read_time.

Hiki iā mākou ke loiloi a nānā i nā noi koʻikoʻi e pili ana i ka hoʻohana waiwai, nā mea heluhelu mai ka diski, hana me ka hoʻomanaʻo, a i ʻole, hana i kekahi ʻano o ka ukana kākau.

Hiki iā mākou ke loiloi i nā noi lokomaikaʻi loa. ʻO kēia nā nīnau e hoʻihoʻi i ka nui o nā lālani. No ka laʻana, he noi paha kēia i poina iā lākou ke kau palena. A hoʻihoʻi wale ia i nā ʻike holoʻokoʻa o ka papaʻaina a i ʻole ka nīnau ma nā papa i nīnau ʻia.

A hiki iā ʻoe ke nānā i nā nīnau e hoʻohana ana i nā faila manawa a i ʻole nā ​​papa ʻaina.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky
A loaʻa iā mākou nā kaʻina hana hope. ʻO nā kaʻina hana hope he mau mākaʻikaʻi a i ʻole i kapa ʻia lākou he checkpoints, ʻo ia ka autovacuum a me ka replication.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

ʻO kekahi laʻana o ka nānā ʻana. Aia kahi ʻaoʻao Maintenance ma ka hema, e hele i laila a manaʻolana e ʻike i kahi mea pono. Akā eia wale ka manawa o ka hana ʻana a me ka hōʻiliʻili ʻikepili, ʻaʻohe mea ʻē aʻe. He ʻike maikaʻi ʻole kēia, no laila pono mākou e loaʻa ka ʻike e pili ana i ka hana ʻana o nā kaʻina hana i kā mākou waihona a inā he pilikia mai kā lākou hana.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Ke nānā mākou i nā wahi hōʻoia, pono mākou e hoʻomanaʻo e hoʻoheheʻe nā wahi nānā i nā ʻaoʻao lepo mai ka wahi hoʻomanaʻo sharded a i ka disk, a laila hana i kahi kikoʻī. A hiki ke hoʻohana ʻia kēia wahi hōʻoia i wahi no ka hoʻihoʻi ʻana inā ua hoʻopau koke ʻia ʻo PostgreSQL i kahi pilikia.

No laila, i mea e holoi ai i nā ʻaoʻao "palapala" a pau i ka disk, pono ʻoe e hana i kahi helu kākau. A, ma keʻano he kūlana, ma nā pūnaewele me ka nui o ka hoʻomanaʻo, he nui kēia. A inā e hana pinepine mākou i nā wahi hōʻoia i kahi manawa pōkole, a laila e hāʻule nui ka hana disk. A e pilikia nā noi o nā mea kūʻai aku i ka nele o nā kumuwaiwai. E hoʻokūkū lākou no nā kumuwaiwai a nele i ka huahana.

No laila, ma o pg_stat_bgwriter me ka hoʻohana ʻana i nā kahua i ʻōlelo ʻia hiki iā mākou ke nānā i ka helu o nā māka e kū mai ana. A inā loaʻa iā mākou nā mākaʻikaʻi he nui i kekahi manawa (ma 10-15-20 mau minuke, i ka hapalua hola), no ka laʻana, 3-4-5, a laila hiki ke lilo i pilikia. A pono ʻoe e nānā i loko o ka waihona, e nānā i ka hoʻonohonoho, he aha ke kumu o ka nui o nā māka. Aia paha kekahi ʻano hoʻopaʻa leo nui e hana nei. Hiki iā mākou ke loiloi i ka haʻahaʻa hana, no ka mea, ua hoʻohui mākou i nā kiʻi paʻa hana. Hiki iā mākou ke hoʻololi i nā ʻāpana kikoʻī a hōʻoia ʻaʻole lākou e pili nui i ka hana nīnau.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Ke hoʻi hou nei au i autovacuum no ka mea he mea ia, e like me kaʻu i ʻōlelo ai, hiki ke hoʻohui maʻalahi i nā disk a me ka hana noiʻi, no laila he mea nui e koho i ka nui o ka autovacuum.

Ua kaupalena ʻia ka helu o nā limahana autovacuum i ka waihona. Ma ka maʻamau, aia ʻekolu o lākou, no laila inā loaʻa iā mākou ʻekolu mau limahana e hana ana i ka waihona, ʻo ia ke ʻano ʻaʻole i hoʻonohonoho ʻia kā mākou autovacuum, pono mākou e hoʻokiʻekiʻe i nā palena, e hoʻoponopono i nā hoʻonohonoho autovacuum a komo i ka hoʻonohonoho.
He mea nui ka loiloi ʻana i ka poʻe hana ʻūhā i loaʻa iā mākou. A i ʻole ua hoʻokuʻu ʻia mai ka mea hoʻohana, hele mai ka DBA a hoʻokuʻu lima ʻia i kekahi ʻano o ka vacuum, a ua hana kēia i kahi ukana. Loaʻa iā mākou kekahi ʻano pilikia. A i ʻole ʻo ia ka helu o nā ʻūhā e wehe i ka pā kūʻai. No kekahi mau mana o PostgreSQL he mea kaumaha loa kēia. A hiki iā lākou ke hoʻohui maʻalahi i ka hana no ka mea heluhelu lākou i ka papaʻaina holoʻokoʻa, e nānā i nā poloka āpau i kēlā pākaukau.

A, ʻoiaʻiʻo, ka lōʻihi o nā vacuums. Inā loaʻa iā mākou nā vacuums lōʻihi e holo ana no ka manawa lōʻihi loa, a laila pono mākou e hoʻolohe hou i ka hoʻonohonoho hoʻonohonoho ʻana a noʻonoʻo hou i kāna mau hoʻonohonoho. No ka mea hiki ke kū mai kahi kūlana i ka wā e hana ai ka ʻōpala ma ka papa no ka manawa lōʻihi (3-4 mau hola), akā i ka wā e hana ana ka ʻōpala, ua hoʻonui hou ʻia ka nui o nā lālani make i ka papaʻaina. A i ka pau ʻana o ka ʻūhā, pono ʻo ia e hoʻomaʻemaʻe hou i kēia pākaukau. A hiki mai mākou i kahi kūlana - kahi ʻūhā pau ʻole. A i kēia hihia, ʻaʻole i hoʻokō ka vacuum i kāna hana, a hoʻomaka mālie nā papa i ka nui, ʻoiai ʻo ka nui o ka ʻikepili pono i loko o ia mea e mau ana. No laila, i ka wā lōʻihi o ka vacuums, ke nānā mau nei mākou i ka hoʻonohonoho ʻana a hoʻāʻo e hoʻomaikaʻi iā ia, akā i ka manawa like i ʻole e pilikia ka hana o nā noi o nā mea kūʻai aku.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

I kēia mau lā, ʻaʻohe mea hoʻokomo PostgreSQL ʻaʻohe hoʻopiʻi kahe. ʻO ka hana hou ʻana ke kaʻina o ka neʻe ʻana i ka ʻikepili mai kahi haku i kahi kope.

Hana ʻia ka hana hou ʻana ma PostgreSQL ma o kahi log transaction. Hoʻopuka ka wizard i kahi moʻolelo kālepa. Hele ka mooolelo kalepa ma luna o ka pili pūnaewele i ka replica, a laila hana hou ia ma ka replica. He maʻalahi.

No laila, hoʻohana ʻia ka ʻike pg_stat_replication e nānā i ka lag replication. Akā ʻaʻole maʻalahi nā mea a pau me ia. Ma ka mana 10, ua hoʻololi ʻia ka ʻike. ʻO ka mea mua, ua kapa hou ʻia kekahi mau kahua. A ua hoʻohui ʻia kekahi mau māla. Ma ka mana 10, ua ʻike ʻia nā kahua e hiki ai iā ʻoe ke koho i ka lag o ka hoʻopili hou ʻana i kekona. He oluolu loa. Ma mua o ka mana 10, hiki ke koho i ka lag replication ma nā bytes. Ke waiho nei kēia koho i ka mana 10, ʻo ia hoʻi, hiki iā ʻoe ke koho i ka mea maʻalahi iā ʻoe - koho i ka lag i nā bytes a i ʻole e koho i ka lag i kekona. Nui nā poʻe e hana ʻelua.

Akā naʻe, i mea e loiloi ai i ka lag replication, pono ʻoe e ʻike i ke kūlana o ka log i ke kālepa. A pololei kēia mau kūlana log transaction i ka ʻike pg_stat_replication. Ma ka ʻōlelo pili, hiki iā mākou ke lawe i ʻelua mau helu i ka log transaction me ka hoʻohana ʻana i ka hana pg_xlog_location_diff (). E helu i ka delta ma waena o lākou a loaʻa ka lag replication ma nā bytes. He mea maʻalahi a maʻalahi.

Ma ka mana 10, ua kapa hou ia keia hana i pg_wal_lsn_diff(). Ma keʻano laulā, i nā hana a pau, nā manaʻo, a me nā pono kahi i puka mai ai ka huaʻōlelo "xlog", ua hoʻololi ʻia me ka waiwai "wal". Pili kēia i nā manaʻo a me nā hana. He mea hou kēia.

Eia kekahi, ma ka mana 10, ua hoʻohui ʻia nā laina e hōʻike pono ana i ka lag. ʻO kēia ke kākau lag, flush lag, replay lag. ʻO ia hoʻi, he mea nui e nānā i kēia mau mea. Inā ʻike mākou he lag replication, a laila pono mākou e noiʻi i ke kumu i puka mai ai, mai hea mai a hoʻoponopono i ka pilikia.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

ʻAneʻane kūpono nā mea a pau me nā metric system. Ke hoʻomaka ka nānā ʻana, hoʻomaka ia me nā metric system. ʻO kēia ka hoʻokuʻu ʻana o nā kaʻina hana, hoʻomanaʻo, swap, pūnaewele a me ka disk. Eia nō naʻe, ʻaʻole i loaʻa nā ʻāpana he nui ma ka paʻamau.

Inā kūpono nā mea a pau me ke kaʻina hana hou, a laila aia nā pilikia me ka hana hou ʻana o ka disk. E like me ke kānāwai, hoʻohui nā mea hoʻomohala nānā i ka ʻike e pili ana i ka throughput. Hiki iā ia ma nā iops a i ʻole bytes. Akā poina lākou e pili ana i ka latency a me ka hoʻohana ʻana i nā polokalamu disk. ʻO kēia nā ʻāpana koʻikoʻi e hiki ai iā mākou ke loiloi i ke ʻano o ka hoʻouka ʻana i kā mākou disks a me ka lohi. Inā loaʻa iā mākou ka latency kiʻekiʻe, a laila aia kekahi mau pilikia me nā disks. Inā loaʻa iā mākou ka hoʻohana kiʻekiʻe, ʻo ia ka mea ʻaʻole i hoʻopili ʻia nā disks. ʻO kēia nā hiʻohiʻona maikaʻi ma mua o ka throughput.

Eia kekahi, hiki ke kiʻi ʻia kēia mau ʻikepili mai ka /proc file system, e like me ka hana ʻana no nā mea hana hou. ʻAʻole maopopo iaʻu ke kumu i hoʻohui ʻole ʻia ai kēia ʻike i ka nānā ʻana. Akā naʻe, he mea nui e loaʻa kēia i kāu nānā.

Hoʻohana like ia i nā pilina pūnaewele. Aia ka ʻike e pili ana i ka hoʻokomo ʻana o ka pūnaewele i loko o nā ʻeke, ma nā bytes, akā naʻe, ʻaʻohe ʻike e pili ana i ka latency a ʻaʻohe ʻike e pili ana i ka hoʻohana ʻana, ʻoiai he ʻike pono kēia.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Loaʻa nā hemahema o kēlā me kēia nānā. A no ke ʻano o ka nānā ʻana āu e lawe ai, ʻaʻole ia e hoʻokō mau i kekahi mau koi. Akā naʻe, ke ulu nei lākou, hoʻohui ʻia nā hiʻohiʻona hou a me nā mea hou, no laila e koho i kahi mea a hoʻopau.

A i mea e hoʻopau ai, pono ʻoe e noʻonoʻo mau i ke ʻano o nā helu i hāʻawi ʻia a pehea ʻoe e hoʻohana ai iā lākou e hoʻoponopono i nā pilikia.

A me kekahi mau mea nui:

  • Pono ʻoe e nānā mau i ka loaʻa ʻana a loaʻa nā dashboards i hiki iā ʻoe ke loiloi wikiwiki i nā mea āpau me ka waihona.
  • Pono ʻoe e noʻonoʻo i nā mea a nā mea kūʻai aku e hana nei me kāu waihona i mea e hoʻopau ai i nā mea kūʻai aku maikaʻi ʻole a pana iā lākou.
  • He mea nui e loiloi i ka hana ʻana o kēia mau mea kūʻai aku me ka ʻikepili. Pono ʻoe e manaʻo e pili ana i kāu haʻahaʻa hana.
  • He mea nui e loiloi i ke ʻano o ka hana ʻana o kēia haʻawina, me ke kōkua o nā nīnau. Hiki iā ʻoe ke loiloi i nā nīnau, hiki iā ʻoe ke hoʻomaikaʻi iā lākou, refactor iā lākou, kūkulu i nā kuhikuhi no lākou. He mea nui loa.
  • Hiki i nā kaʻina hana hope ke hoʻopōʻino i nā noi o nā mea kūʻai aku, no laila he mea nui e nānā ʻaʻole lākou e hoʻohana i nā kumuwaiwai he nui.
  • ʻAe nā metric ʻōnaehana iā ʻoe e hana i nā hoʻolālā no ka hoʻonui ʻana a me ka hoʻonui ʻana i ka hiki o kāu mau kikowaena, no laila he mea nui e nānā a loiloi iā lākou pū kekahi.

Nā kumu o ka nānā ʻana o PostgreSQL. Alexey Lesovsky

Inā makemake ʻoe i kēia kumuhana, hiki iā ʻoe ke hahai i kēia mau loulou.
http://bit.do/stats_collector - he palapala kūhelu kēia mai ka ʻohi helu helu. Aia ka wehewehe ʻana i nā manaʻo helu helu a me ka wehewehe ʻana i nā kahua āpau. Hiki iā ʻoe ke heluhelu, hoʻomaopopo a kālailai iā lākou. A ma muli o ia mau mea, kūkulu i kāu mau pakuhi a hoʻohui iā lākou i kāu nānā.

Nā noi laʻana:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

ʻO kēia kā mākou waihona ʻoihana a me kaʻu ponoʻī. Loaʻa iā lākou nā nīnau laʻana. ʻAʻohe nīnau mai ka koho * mai ka moʻo ma laila. Aia nā nīnau i hoʻomākaukau ʻia me nā hui pū ʻana, me ka hoʻohana ʻana i nā hana hoihoi e hiki ai iā ʻoe ke hoʻohuli i nā helu maka i nā waiwai hiki ke heluhelu ʻia a kūpono hoʻi, ʻo ia hoʻi nā bytes, manawa. Hiki iā ʻoe ke kiʻi iā lākou, e nānā iā lākou, e nānā iā lākou, e hoʻohui iā lākou i kāu nānā ʻana, e kūkulu i kāu nānā ʻana ma luna o lākou.

ʻO kāu mau nīnau

Nīnau: Ua ʻōlelo ʻoe ʻaʻole ʻoe e hoʻolaha i nā hōʻailona, ​​​​akā naʻe au e ʻimi nei - he aha ke ʻano o nā dashboard āu e hoʻohana ai i kāu mau papahana?
Pane: He ʻokoʻa. Ke hele nei mākou i kahi mea kūʻai aku a loaʻa iā ia kāna nānā ponoʻī. A ke aʻo nei mākou i ka mea kūʻai aku i nā mea e pono e hoʻohui ʻia i kā lākou nānā. ʻO ke kūlana maikaʻi loa me Zabbix. No ka mea, ʻaʻohe ona hiki ke kūkulu i nā kiʻi TopN. Hoʻohana mākou iā mākou iho Okmeter, no ka mea, ua kūkākūkā mākou me kēia poʻe i ka nānā ʻana. Ua nānā lākou iā PostgreSQL e pili ana i kā mākou kikoʻī loea. Ke kākau nei au i kaʻu papahana pipiʻi ponoʻī, nāna e hōʻiliʻili i ka ʻikepili ma o Prometheus a hoʻolilo iā ia i loko grafana. ʻO kaʻu hana ʻo ka hana ʻana i kaʻu mea kūʻai aku ma Prometheus a laila hāʻawi i nā mea āpau ma Grafana.

Nīnau: Aia kekahi mau analogues o nā hōʻike AWR a i ʻole ... aggregation? Maopopo anei iā ʻoe kekahi mea e like me kēia?
Pane: ʻAe, ʻike wau i ka AWR, he mea ʻoluʻolu. I kēia manawa aia nā ʻano paikikala like ʻole e hoʻokō e pili ana i kēia ʻano hoʻohālike. I kekahi manawa, ua kākau ʻia kekahi mau papa kuhikuhi i ka PostgreSQL like a i ʻole kahi waiho ʻokoʻa. Hiki iā ʻoe ke google iā lākou ma ka Pūnaewele, aia lākou ma laila. ʻO kekahi o nā mea hoʻomohala o ia mea e noho ana ma ka sql.ru forum ma ka PostgreSQL thread. Hiki iā ʻoe ke hopu iā ia ma laila. ʻAe, aia nā mea like, hiki ke hoʻohana. Plus i loko o kona pgCenter Ke kākau nei au i kahi mea e hiki ai iā ʻoe ke hana like.

PS1 Inā ʻoe e hoʻohana nei i ka postgres_exporter, he aha ka dashboard āu e hoʻohana nei? He nui o lakou. Ua kahiko loa lakou. Hiki paha i ke kaiāulu ke hana i kahi mamana hou?

Ua wehe ʻia ʻo PS2 pganalyze no ka mea he hāʻawi SaaS proprietary e kālele ana i ka nānā ʻana i ka hana a me nā manaʻo hoʻolohe pono.

Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi. Eʻe, e 'oluʻolu.

ʻO wai ka nānā ʻana i ka postgresql mālama ponoʻī (me ka dashboard) āu e manaʻo ai ʻoi aku ka maikaʻi?

  • 30,0%Zabbix + hoʻohui mai Alexey Lesovsky a i ʻole zabbix 4.4 a i ʻole 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%ʻO pganalyze kahi SaaS ponoʻī - ʻaʻole hiki iaʻu ke holoi iā ia1

  • 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

10 mea hoʻohana i koho. Ua hōʻole nā ​​mea hoʻohana 26.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka