Hi
ʻO Vanya koʻu inoa a he mea hoʻomohala Java wau. ʻO ia kaʻu hana nui me PostgreSQL - hoʻonohonoho i ka waihona, hoʻonui i ka hoʻolālā, hana, a pāʻani i kahi DBA liʻiliʻi i nā hopena pule.
I kēia mau lā ua hoʻomaʻemaʻe au i kekahi mau waihona i kā mākou microservices a kākau i kahi waihona java
Akahana
ʻO ka mana nui o PostgreSQL aʻu e hana nei me 10. ʻO nā nīnau SQL a pau aʻu e hoʻohana ai ua hoʻāʻo ʻia ma ka mana 11. ʻO ka mana haʻahaʻa i kākoʻo ʻia ʻo 9.6.
prehistory
Ua hoʻomaka ʻo ia a pau ma kahi o hoʻokahi makahiki i hala aku nei me kahi kūlana ʻano ʻē iaʻu: ʻo ka hoʻokumu ʻana i ka hoʻokūkū o kahi index ma waho o ka uliuli i pau me kahi hewa. ʻO ka papa kuhikuhi ponoʻī, e like me ka mea maʻamau, ua noho i loko o ka waihona ma kahi kūlana kūpono ʻole. Ua hōʻike ʻia ka hemahema o ka loiloi log
Pilikia hoʻokahi - hoʻonohonoho paʻamau
Malia paha ua luhi nā mea a pau i ka ʻōlelo hoʻohālikelike e pili ana iā Postgres, hiki ke holo ma luna o kahi mea hana kope, akā ... ʻo ka hoʻonohonoho paʻamau e hoʻāla maoli i nā nīnau he nui. Ma ka liʻiliʻi, pono e hoʻolohe mālama_hana_mem, temp_file_limit, ʻōlelo_manawa и lock_timeout.
I ko mākou hihia mālama_hana_mem ʻo ia ka 64 MB paʻamau, a temp_file_limit kahi mea ma kahi o 2 GB - ʻaʻole lawa mākou i ka hoʻomanaʻo e hana i kahi kuhikuhi ma kahi papa nui.
No laila, ma pg-index-health Ua hōʻiliʻili au i kahi moʻo
Pilikia ʻelua - nā kuhikuhi kikoʻī
Noho kā mākou waihona ma nā SSD drive, a hoʻohana mākou HA-hoʻonohonoho me nā kikowaena data he nui, haku host a n-ka helu o nā kope. He kumu waiwai nui ka wahi disk no mākou; ʻaʻole i emi iki ka mea nui ma mua o ka hana a me ka hoʻohana CPU. No laila, ma kekahi ʻaoʻao, pono mākou i nā kuhikuhi no ka heluhelu wikiwiki ʻana, a ma ka ʻaoʻao ʻē aʻe, ʻaʻole mākou makemake e ʻike i nā indexes pono ʻole i ka waihona, no ka mea, ʻai lākou i kahi ākea a lohi i ka hoʻonui ʻana i ka ʻikepili.
A i kēia manawa, ua hoʻihoʻi i nā mea a pau
Pilikia ʻekolu - ke kuhi ʻana i nā helu
Hoʻokumu ka hapa nui o nā mea hoʻomohala hou i nā kuhikuhi ma kahi kolamu hoʻokahi. Me ka mālie, i ka ʻike pono ʻana i kēia ʻoihana, hoʻomaka ka poʻe e hoʻomaikaʻi i kā lākou mau nīnau a hoʻohui i nā ʻōlelo kuhikuhi paʻakikī i loaʻa nā kolamu. ʻO kēia ke ʻano o ka ʻike ʻana o nā kuhikuhi ma nā kolamu A, A + B, ʻA + B + C a laila. Hiki ke kiola ʻia nā mea mua ʻelua o kēia mau kuhikuhi, no ka mea, he prefix lākou o ke kolu. Mālama kēia i ka nui o ka disk a aia nā diagnostics no kēia
ʻEhā pilikia - nā kī haole me ka ʻole o nā kuhikuhi
Hāʻawi ʻo Postgres iā ʻoe e hana i nā koina kī haole me ka ʻole o ka wehewehe ʻana i kahi papa kuhikuhi. I nā kūlana he nui ʻaʻole kēia he pilikia, a ʻaʻole paha e hōʻike iā ia iho ... No ka manawa ...
Ua like ia me mākou: ʻo ia wale nō i kekahi manawa i kahi hana, e holo ana e like me ka papa kuhikuhi a me ka hoʻomaʻemaʻe ʻana i ka waihona o nā kauoha hoʻāʻo, hoʻomaka e "hoʻohui" iā mākou e ka haku haku. Ua pau ka CPU a me IO, ua lohi nā noi a ua pau ka manawa, ʻelima haneli ka lawelawe. Hoʻopili wikiwiki
delete from <table> where id in (…)
I kēia hihia, ʻoiaʻiʻo, aia kahi kuhikuhi ma ka id ma ka papa kuhikuhi, a he kakaikahi loa nā moʻolelo i holoi ʻia e like me ke kūlana. Me he mea lā e hana pono nā mea a pau, akā, auwe, ʻaʻole.
Ua hele mai ka mea kupanaha e hoʻopakele wehewehe wehewehe a ʻōlelo ʻo ia ma waho aʻe o ka holoi ʻana i nā moʻolelo ma ka papa kuhikuhi, aia pū kekahi hōʻike ʻoiaʻiʻo e pili ana, a ma kekahi o nā papa pili e hāʻule kēia nānā. kaʻina hana ma muli o ka nele o kahi papa kuhikuhi kūpono. No laila ua hānau ʻia nā diagnostics
Pilikia ʻelima - ka waiwai null i nā kuhikuhi
Ma ka maʻamau, ua hoʻokomo ʻo Postgres i nā waiwai null i nā btree indexes, akā ʻaʻole pono lākou ma laila. No laila, ke hoʻoikaika nei au e hoʻolei i kēia mau nulls (diagnostics where <A> is not null
. Ma kēia ala ua hiki iaʻu ke hoʻemi i ka nui o kekahi o kā mākou mau kuhikuhi mai ka 1877 MB a i ka 16 KB. A ma kekahi o nā lawelawe, ua emi ka nui o ka waihona ma ka 16% (e 4.3 GB i nā helu piha) ma muli o ka haʻalele ʻana o nā waiwai null mai nā kuhikuhi. ʻO ka mālama nui ʻana i ka hakahaka disk me nā hoʻololi maʻalahi loa. 🙂
Ka pilikia ʻeono - nele i nā kī mua
Ma muli o ke ʻano o ka mīkini
I kekahi lā, ua lawe a hōʻano hou ka neʻe ʻana i nā moʻolelo āpau ma kahi papaʻaina nui a hoʻohana ikaika ʻia. Loaʻa iā mākou +100 GB i ka nui o ka papaʻaina mai ka uliuli. He mea hilahila, akā, ʻaʻole i pau kā mākou mau pōʻino i laila. Ma hope o ka pau ʻana o ka autovacuum ma kēia pākaukau he 15 mau hola ma hope mai, ua maopopo ʻaʻole e hoʻi ka wahi kino. ʻAʻole hiki iā mākou ke hoʻōki i ka lawelawe a hana i ka VACUUM FULL, no laila ua hoʻoholo mākou e hoʻohana
Ma ka waihona waihona 0.1.5 Ua hoʻohui ʻia ka hiki ke hōʻiliʻili i ka ʻikepili mai ka bloat o nā papa a me nā kuhikuhi a pane aku iā ia i ka manawa kūpono.
Nā pilikia ʻehiku a me ʻewalu - lawa ʻole nā kuhikuhi a me nā kuhikuhi i hoʻohana ʻole ʻia
ʻO kēia mau diagnostics ʻelua:
E like me kaʻu i kākau mua ai, hoʻohana mākou i kahi hoʻonohonoho me nā replicas, a ʻokoʻa ke ʻano o ka heluhelu heluhelu ʻana ma nā pūʻali like ʻole. ʻO ka hopena, ʻike ʻia ke kūlana ʻaʻole i hoʻohana ʻia kekahi mau papa a me nā kuhikuhi ma kekahi mau pūʻali, a no ka nānā ʻana pono ʻoe e hōʻiliʻili i nā helu mai nā pūʻali āpau i ka hui.
Ua ʻae kēia ala iā mākou e mālama i nā ʻumi o nā gigabytes ma o ka wehe ʻana i nā kuhikuhi i hoʻohana ʻole ʻia, a me ka hoʻohui ʻana i nā index i nalowale i nā papa i hoʻohana ʻole ʻia.
He hopena
ʻOiaʻiʻo, no nā diagnostics āpau hiki iā ʻoe ke hoʻonohonoho
Hiki ke hana ʻia kekahi mau diagnostics i nā hoʻāʻo hana ma hope koke o ka ʻōwili ʻana i ka neʻe ʻana o ka waihona. A ʻo kēia paha kekahi o nā hiʻohiʻona ikaika loa o kaʻu waihona. Hiki ke loaʻa kahi laʻana o ka hoʻohana ma
Maikaʻi ka hana ʻana i nā loiloi no nā mea i hoʻohana ʻole ʻia a nalo paha, a me ka bloat, aia wale nō ma kahi ʻikepili maoli. Hiki ke hoʻopaʻa ʻia nā waiwai i hōʻiliʻili ʻia ma
Manaʻolana loa wau pg-index-health e pono a i makemakeia. Hiki iā ʻoe ke kōkua i ka hoʻomohala ʻana o ka waihona ma ka hōʻike ʻana i nā pilikia āu e ʻike ai a me ka hōʻike ʻana i nā diagnostics hou.
Source: www.habr.com