O se auala faʻapisinisi e faʻalogoina PostgreSQL: faʻataʻitaʻiga ma faʻamaumauga. Nikolay Samokhvalov

Ou te fautua atu ia e faitau le faʻamatalaga o le lipoti a Nikolai Samokhvalov "Faiga faʻapisinisi i le faʻaogaina o PostgreSQL: faʻataʻitaʻiga i luga o faʻamaumauga"

Shared_buffers = 25% – pe tele pe itiiti? Pe sa'o lava? E fa'afefea ona e iloa pe o lenei - e le o toe aoga - o fautuaga e talafeagai i lau mataupu fa'apitoa?

Ua oʻo i le taimi e faʻalatalata atu ai i le mataupu o le filifilia o tapulaʻa postgresql.conf "pei o se tagata matua." E le o le fesoasoani a tauaso "auto tuners" poʻo fautuaga tuai mai tala ma blogs, ae faʻavae i luga o:

  1. faʻamaonia faʻamaonia faʻataʻitaʻiga i luga o faʻamaumauga, faʻatinoina otometi, i le tele ma i lalo o tulaga e latalata i le "tau" mea,
  2. malamalama loloto i foliga o le DBMS ma le OS.

Fa'aaoga Nancy CLI (https://gitlab.com/postgres.ai/nancy), o le a tatou vaʻavaʻai i se faʻataʻitaʻiga faʻapitoa - le lauiloa shared_buffers - i tulaga eseese, i galuega eseese ma taumafai e fuafua pe faʻapefea ona filifili le tulaga sili ona lelei mo a tatou atinaʻe, faʻamaumauga ma uta.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O le a tatou talanoa e uiga i faʻataʻitaʻiga ma faʻamaumauga. O se tala lea e sili atu i le ono masina.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O sina mea itiiti e uiga ia te au. Aafiaga ma Postgres mo le silia ma le 14 tausaga. O le tele o kamupani upega tafa'ilagi ua faavaeina. Postgres sa ma faʻaaogaina i soo se mea.

Fa'apea fo'i ma le vaega a le RuPostgres ile Meetup, 2nd tulaga i le lalolagi. Ua tatou latalata atu i le 2 tagata. RuPostgres.org.

Ma i PC o konafesi eseese, e aofia ai Highload, o aʻu e nafa ma faʻamaumauga, aemaise Postgres mai le amataga.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma i nai tausaga talu ai, ua ou toe amataina laʻu Postgres consulting practice 11 time zones mai iinei.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma ina ua ou faia lenei mea i ni nai tausaga talu ai, sa ou malolo i le galuega tusi lesona ma Postgres, masalo talu mai le 2010. Na ou ofo i le itiiti o le suiga o galuega masani a le DBA, ma le tele o galuega lima e manaʻomia ona faʻaaoga. Ma sa vave ona ou manatu o loʻo i ai se mea o loʻo i ai iinei, e tatau ona ou faʻaogaina atili mea uma.

Ma talu ai e mamao uma, o le tele o tagata fa'atau sa i ao. Ma o le tele o mea ua uma ona otometi, manino. E sili atu i lenei mea mulimuli ane. O lona uiga, o nei mea uma na mafua ai le manatu e tatau ona i ai se numera o mea faigaluega, o lona uiga, o se ituaiga faʻavae e faʻaogaina toetoe lava o gaioiga uma a le DBA ina ia mafai ai ona pulea se numera tele o faʻamaumauga.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O lenei lipoti o le a le aofia ai:

  • "Pulu siliva" ma faʻamatalaga e pei o - seti 8 GB poʻo 25% shared_buffers ma o le ae manuia. E le tele ni mea e uiga i shared_buffers.
  • Hardcore "innards".

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O le a le mea o le a tupu?

  • O le a i ai mataupu faavae sili ona lelei tatou te faʻaaogaina ma atiina ae. O le ai ai ituaiga uma o manatu e tulaʻi mai i luga o le ala ma meafaigaluega eseese tatou te fatuina mo le tele o vaega i Open Source, o lona uiga tatou te faia le faavae ile Open Source. E le gata i lea, e iai a matou tiketi, o fesoʻotaʻiga uma e toetoe lava Open Source. E mafai ona e vaʻai i le mea o loʻo matou faia nei, o le a le isi faʻasalalauga, ma isi.
  • O le ai ai foi se poto masani i le faʻaaogaina o nei mataupu faavae, o mea faigaluega nei i le tele o kamupani: mai le amataga laiti i kamupani tetele.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

E fa'afefea ona atia'e nei mea uma?

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Muamua, o le galuega autu a le DBA, faʻaopoopo i le faʻamautinoaina o le fausiaina o faʻataʻitaʻiga, faʻapipiʻiina o faʻamaumauga, ma isi, o le sailia lea o fagu ma faʻaleleia le faʻatinoga.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O lea ua fa'atulaga fa'apenei. Matou te vaʻavaʻai i le mataʻituina, matou te vaʻai i se mea, ae matou te misia nisi faʻamatalaga. E amata ona tatou eli atili ma le faaeteete, e masani lava i o tatou lima, ma malamalama i le mea e fai i le tasi itu po o le isi.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma e lua auala. Pg_stat_statements o le fofo fa'aletonu mo le fa'ailoaina o fesili lemu. Ma suʻesuʻega o faʻamaumauga Postgres e faʻaaoga ai pgBadger.

O auala taʻitasi e iai faʻafitauli matuia. I le auala muamua, ua matou lafoaʻi uma faʻamaufaʻailoga. Ma afai tatou te vaʻai i vaega FILIFILI * MAI le laulau lea e tutusa le koluma ma le "?" poʻo le "$" talu mai le Postgres 10. Matou te le iloa pe o se suʻesuʻega faʻailoga poʻo se suʻesuʻega seq. E faalagolago tele i le parakalafa. Afai e te suitulaga i se tau e seasea maua iina, o le a avea ma se index scan. Afai e te suitulaga i se tau e nofo ai le 90% o le laulau iina, o le a iloagofie le suʻesuʻega, aua e iloa e Postgres fuainumera. Ma o se faʻafitauli tele lea o pg_stat_statements, e ui lava o loʻo faʻagasolo nisi galuega.

Ole fa'aletonu tele ole su'esu'ega ogalaau e le mafai ona e gafatia le "log_min_duration_statement = 0" e fai ma tulafono. Ma o le a tatou talanoa foi e uiga i lenei mea. E tusa ai, e te le o vaʻaia le ata atoa. Ma o nisi fesili, e matua televave, e mafai ona faʻaumatia se aofaiga tele o punaoa, ae e te le vaʻaia ona o loʻo i lalo ifo o lou tulaga.

E fa'afefea ona fo'ia e le DBA fa'afitauli latou te maua?

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Mo se faʻataʻitaʻiga, na matou maua se faʻafitauli. O le a le mea e masani ona fai? Afai o oe o se tagata atiaʻe, ona e faia lea o se mea i se tulaga e le tutusa le tele. Afai o oe o se DBA, o lo'o iai lau fa'asologa. Ma e mafai ona tasi. Ma ua ono masina i tua. Ma e te manatu o le ae alu i le gaosiga. Ma e oʻo lava i DBA faʻapitoa ona siaki lea i le gaosiga, i luga o se kopi. Ma e tupu latou te fatuina se faasinoupu le tumau, ia mautinoa e fesoasoani, tuʻu i lalo ma tuʻuina atu i le au atinaʻe ina ia mafai ona latou tuʻuina i faila femalagaiga. O le ituaiga faavalevalea lea ua tupu nei. Ma o se faafitauli lea.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

  • Fa'alogo lelei.
  • Fa'alelei le seti o fa'asinomaga.
  • Suia le fesili SQL lava ia (o le auala sili lea ona faigata).
  • Faaopoopo le gafatia (o le auala sili ona faigofie i le tele o tulaga).

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

E tele mea e tutupu i nei mea. E tele naua au i Postgres. E tele mea e tatau ona iloa. E tele fa'asino igoa i Postgres, fa'afetai fo'i i le fa'atulagaina o lenei konafesi. Ma o nei mea uma e tatau ona iloa, ma o le mea lea e lagona ai e tagata e le o ni DBA e pei o DBA o loʻo faʻataʻitaʻiina togafiti faʻataulāitu. O lona uiga, e tatau ona e suʻesuʻe mo le 10 tausaga e amata ai ona e malamalama i nei mea uma.

Ma o au o se tagata tau faasaga i lenei togafiti faataulaitu. Ou te manaʻo e fai mea uma ina ia i ai tekinolosi, ma e leai se malamalama i nei mea uma.

Faataitaiga moni o le olaga

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Sa ou matauina lenei mea i ni galuega faatino se lua, e aofia ai la'u lava galuega. O le isi blog post e taʻu mai ia i matou o le tau o le 1 mo default_statistict_target e lelei. Lelei, tatou taumafai i le gaosiga.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma o lenei ua tatou i ai, faʻaaogaina a tatou meafaigaluega i le lua tausaga mulimuli ane, faʻatasi ai ma le fesoasoani o suʻega i luga o faʻamaumauga o loʻo tatou talanoa ai i aso nei, e mafai ona tatou faʻatusatusa le mea sa i ai ma le mea ua tupu.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma mo lenei mea e tatau ona tatou faia se faʻataʻitaʻiga. E aofia ai vaega e fa.

  • Muamua o le siosiomaga. Matou te manaʻomia se mea faigaluega. Ma a ou sau i se kamupani ma sainia se konekarate, ou te fai atu ia i latou e aumai ia te au meafaigaluega tutusa e pei o le gaosiga. Mo au Matai ta'itasi, ou te mana'omia a itiiti ifo ma le tasi le meafaigaluega fa'apenei. Pe o se faʻataʻitaʻiga masini masini i Amazon poʻo Google, pe ou te manaʻomia tonu lava le vaega tutusa o meafaigaluega. O lona uiga, ou te manaʻo e toe faʻaleleia le siosiomaga. Ma i le manatu o le siʻosiʻomaga tatou te aofia ai le tele o le Postgres.
  • O le vaega lona lua o le autu lea o la matou suʻesuʻega. Ole fa'amaumauga lea. E mafai ona faia i ni auala se tele. O le a ou faaali atu ia te oe pe faapefea.
  • O le vaega lona tolu o le uta. O le taimi sili lea ona faigata.
  • Ma o le vaega lona fa o mea tatou te siakiina, o lona uiga o le a tatou faʻatusatusa i le a. Sei tatou fai atu e mafai ona tatou suia se tasi pe sili atu parakalafa i le config, pe mafai ona tatou fatuina se faasino igoa, ma isi.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O loʻo matou faʻalauiloaina se faʻataʻitaʻiga. Ole pg_stat_statements. I le agavale o le mea na tupu. I le itu taumatau - o le a le mea na tupu.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

I le agavale default_statistics_target = 100, i le taumatau = 1. Matou te iloa na fesoasoani lenei mea ia i matou. I le aotelega, na sili atu mea uma i le 000%.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ae afai tatou te taʻalo i lalo, o le ai ai vaega o talosaga mai pgBadger poʻo mai pg_stat_statements. E lua filifiliga. O le a matou vaʻaia o nisi talosaga ua paʻu i le 88%. Ma o lea ua sau ai le faiga faainisinia. E mafai ona tatou eli atili i totonu ona tatou te mafaufau pe aisea na magoto ai. E tatau ona e malamalama i le mea na tupu i fuainumera. Aisea e sili atu ai pakete i fuainumera e mafua ai le leaga o taunuuga.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Pe le mafai ona tatou eli, ae fai le “ALTER TABLE ... ALTER COLUMN” ma toe faafoi 100 pakete i tua i fuainumera o lenei koluma. Ona sosoo ai lea ma se isi faʻataʻitaʻiga e mafai ona matou mautinoa na fesoasoani lenei patch. O mea uma. O se faiga fa'ainisinia lea e fesoasoani tatou te va'ai ai i le ata tele ma fai fa'ai'uga e fa'atatau i fa'amaumauga nai lo le fa'alogona.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O nai faʻataʻitaʻiga mai isi vaega. Sa i ai suʻega CI i suʻega mo le tele o tausaga. Ma e leai se poloketi i lona mafaufau sa'o e ola e aunoa ma ni su'ega otometi.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

I isi pisinisi: i vaalele, i totonu o fale taʻavale, pe a matou suʻeina le aerodynamics, matou te maua foi le avanoa e fai ai suʻega. Matou te le faʻalauiloaina se mea mai se ata tusi saʻo i le vanimonimo, pe matou te le vave aveina se taavale i luga o le auala. Mo se faʻataʻitaʻiga, o loʻo i ai se ala matagi.

E mafai ona tatou maua ni fa'ai'uga mai fa'amatalaga a isi pisinisi.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Muamua, o loʻo i ai so tatou siosiomaga faʻapitoa. E latalata i le gaosiga, ae le latalata. O lona uiga autu e tatau ona taugofie, toe faʻaaogaina ma otometi pe a mafai. Ma e tatau foi ona i ai ni meafaigaluega faʻapitoa mo le faʻatinoina o auiliiliga auiliili.

E foliga mai, pe a tatou faʻalauiloa se vaalele ma lele, e itiiti lo tatou avanoa e suʻesuʻe ai millimita taʻitasi o le apaau o loʻo i ai i totonu o le matagi. E tele a matou mea faigaluega fa'apitoa. E mafai ona tatou gafatia le tauaveina o mea mamafa e le mafai ona tatou gafatia e tuu i luga o se vaalele i le ea. E tutusa ma Postgres. E mafai, i nisi tulaga, matou te fa'atagaina le fa'amauina atoa o fesili i taimi o su'ega. Ma matou te le manaʻo e faia lenei mea i le gaosiga. E mafai foʻi ona matou fuafua e faʻaogaina lenei mea e faʻaaoga ai le auto_explain.

Ma e pei ona ou fai atu, o le maualuga o le masini o lona uiga tatou te oomi le ki ma toe fai. O le mea lea e tatau ona i ai, ina ia tele le faʻataʻitaʻiga, ina ia i luga o le vaitafe.

Nancy CLI - o le faʻavae o le "suʻesuʻe faʻamaumauga"

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma o lea na matou faia ai lenei mea. O lona uiga, sa ou talanoa e uiga i nei manatu ia Iuni, toeitiiti atoa le tausaga talu ai. Ma ua uma ona tatou maua le Nancy CLI i Open Source. O le fa'avae lea mo le fausiaina o se fale su'esu'e fa'amaumauga.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Nancy - O loʻo i le Open Source, ile Gitlab. E mafai ona e fai atu, e mafai ona e taumafai. Sa ou tuuina atu se sootaga i ata faasee. E mafai ona e kiliki i luga ma o le ai ai iina fesoasoani i itu uma.

Ioe, o lo'o i ai le tele o mea o lo'o i lalo o le atina'e. E tele manatu iina. Ae o se mea lea matou te faʻaaogaina toetoe o aso uma. A i ai foi so tatou manatu - aisea ua tatou tapeina ai le 40 laina, e oo uma lava i le IO, ona mafai lea ona tatou faia se suʻesuʻega ma vaʻavaʻai atili e malamalama i le mea o loʻo tupu ona taumafai lea e faʻaleleia i luga o le alu. O lona uiga, o loʻo matou faia se faʻataʻitaʻiga. Mo se faʻataʻitaʻiga, matou te tweak se mea ma vaʻai i le mea e tupu i le iuga. Ma matou te le faia lenei mea i le gaosiga. O le ute lea o le manatu.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O fea e mafai ona galue ai lenei mea? E mafai ona galue i le lotoifale, o lona uiga e mafai ona e faia i soo se mea, e mafai foʻi ona e taʻavale i luga o se MacBook. Tatou te mana'omia se uafu, ta o. Pau lava lena. E mafai ona e faʻatautaia i se faʻataʻitaʻiga i luga o se vaega o meafaigaluega, poʻo totonu o se masini masini, i soo se mea.

Ma o loʻo iai foʻi le avanoa e tamoe mamao ai i Amazon ile EC2 Instance, i nofoaga. Ma o se avanoa manaia tele lenei. Mo se faʻataʻitaʻiga, ananafi na matou faia ai le sili atu ma le 500 faʻataʻitaʻiga i luga o le i3 faʻataʻitaʻiga, amata i le laʻititi ma faʻaiʻu i le i3-16-xlarge. Ma e 500 fa'ata'ita'iga e tau ai le $64. E 15 minute le umi. O lona uiga, ona o le mea moni o loʻo faʻaogaina iina, e matua taugofie - o le 70% faʻaitiitiga, Amazon's per-second billing. E tele mea e mafai ona e faia. E mafai ona e faia suʻesuʻega moni.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma tolu lomiga tetele o Postgres e lagolagoina. E le faigata tele ona faʻauma nisi o mea tuai ma le fou 12th version foi.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

E mafai ona tatou faauigaina se mea i ni auala se tolu. Lenei:

  • Tu'u/sql faila.
  • O le auala autu o le faʻapipiʻiina o le PGDATA directory. I le avea ai o se tulafono, e ave mai le server backup. Afai e iai sau fa'amaumauga fa'alua masani, e mafai ona e faia fa'ato'aga mai iina. Afai ei ai au ao, ona faia lea e se ofisa ao e pei o Amazon ma Google mo oe. O le auala pito sili lea ona taua e faʻapipiʻi ai le gaosiga moni. O le auala lenei tatou te tatalaina ai.
  • Ma o le auala mulimuli e talafeagai mo suʻesuʻega pe a e manaʻo e malamalama pe faʻapefea ona galue se mea i Postgres. Ole pgbench lea. E mafai ona e fatuina e faʻaaoga ai le pgbench. E na'o le tasi le filifiliga "db-pgbench". E te ta'u atu ia te ia le fua. Ma o mea uma o le a gaosia i le ao, e pei ona taʻua.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma uta:

  • E mafai ona matou faʻatinoina le uta i le tasi SQL filo. O le auala sili ona lauiloa.
  • Ma e mafai ona tatou faataitai i le avega. Ma e mafai ona tatou faataitai muamua i mea uma i le auala lenei. E tatau ona tatou aoina uma ogalaau. Ma e tiga. O le a ou faaali atu ia te oe le mafuaaga. Ma faʻaaoga le pgreplay matou te taʻalo, lea e fausia i totonu o Nancy.
  • Po o se isi filifiliga. O le mea e taʻua o uta vaʻa, lea matou te faia ma se aofaʻi o taumafaiga. Iloiloina o matou avega o loʻo i ai nei i luga o le faiga o le taua, matou te toso ese vaega pito i luga o talosaga. Ma faʻaaoga le pgbench e mafai ona tatou faʻataʻitaʻiina lenei uta i totonu o le fale suʻesuʻe.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

  • Pe tatau ona tatou faia se ituaiga o SQL, o lona uiga tatou te siakiina se ituaiga o femalagaiga, faia se faasino igoa iina, faʻatino ANALAZE iina. Ma tatou vaʻavaʻai i le mea na tupu aʻo leʻi oʻo i le vacuum ma ina ua uma le vacuum. I se tulaga lautele, soʻo se SQL.
  • Pe tatou te suia se tasi pe sili atu parakalafa i le config. E mafai ona matou taʻu mai e siaki, mo se faʻataʻitaʻiga, 100 tau i Amazon mo la matou terabyte database. Ma i ni nai itula o le ae maua ai le taunuuga. I le avea ai o se tulafono, e tele itula e te alu e faʻapipiʻi ai se faʻamaumauga terabyte. Ae o loʻo i ai se patch i le atinaʻe, o loʻo i ai se faʻasologa e mafai, o lona uiga e mafai ona e faʻaaogaina le pgdata tutusa i luga o le server tutusa ma siaki. O le a toe amataina le Postgres ma o le a toe setiina le cache. Ma e mafai ona e aveina le uta.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

  • E o'o mai se fa'atonuga ma le tele o faila eseese, e amata mai i pg snapshotsstat***. Ma o le mea e sili ona manaia o loʻo i ai pg_stat_statements, pg_stat_kcacke. O fa'aopoopoga nei e lua e fa'avasega talosaga. Ma o le pg_stat_bgwriter o loʻo i ai e le gata o fuainumera pgwriter, ae faʻapea foʻi i luga o siaki ma pe faʻafefea ona faʻaogaina e le pito i tua ia paʻu palapala. Ma e manaia uma le vaai. Mo se faʻataʻitaʻiga, pe a matou seti shared_buffers, e manaia tele le vaʻai pe faʻafefea ona sui tagata uma.
  • O lo'o o'o mai fo'i fa'amaumauga a le Postgres. E lua ogalaau – o se ogalaau sauniuni ma se ogalaau toe faafoi uta.
  • Ole mea fou fou ole FlameGraphs.
  • E le gata i lea, afai na e faʻaogaina le pgreplay poʻo le pgbench filifiliga mo le taʻalo o le uta, ona faʻaalia lea o latou gaioiga. Ma o le a e vaʻai i le latency ma le TPS. O le a mafai ona malamalama pe na faapefea ona latou vaai i ai.
  • Fa'amatalaga faiga.
  • Su'ega PPU ma le IO. E sili atu lenei mo le EC2 faʻataʻitaʻiga i Amazon, pe a e manaʻo e faʻalauiloa 100 faʻataʻitaʻiga tutusa i totonu o se filo ma faʻatautaia 100 taʻavale eseese iina, ona e maua ai lea o 10 suʻega. Ma e tatau ona e faʻamautinoa e te le maua se faʻataʻitaʻiga sese ua uma ona faʻasauāina e se tasi. O isi o lo'o fa'agaoioia i lenei vaega o meafaigaluega ma e itiiti au punaoa o totoe. E sili atu le lafoa'i o ia i'uga. Ma faatasi ai ma le fesoasoani a le sysbench mai Alexey Kopytov, matou te faia ni nai siaki pupuu o le a oʻo mai ma e mafai ona faʻatusatusa i isi, o lona uiga o le ae malamalama pe faʻafefea ona amio le PPU ma pe faʻafefea ona amio le IO.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O a faʻafitauli faʻapitoa e faʻavae i luga o faʻataʻitaʻiga a kamupani eseese?

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Faapea tatou te mananao e toe fai le uta moni e faaaoga ai ogalaau. Ose manatu lelei pe a tusia ile Open Source pgreplay. Tatou te faaaogaina. Ae ina ia lelei le galue, e tatau ona e faʻatagaina le faʻaogaina atoa o fesili faʻatasi ma tapulaʻa ma taimi.

E iai ni fa'alavelave i le umi ma le fa'ailoga taimi. O le a matou sasaa uma le umukuka. O le fesili autu pe e te gafatia pe leai?

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

https://gist.github.com/NikolayS/08d9b7b4845371d03e195a8d8df43408

O le fa'afitauli atonu e le maua. Muamua lava, e tatau ona e malamalama po o le a le vaitafe o le a tusia i le ogalaau. Afai e iai sau pg_stat_statements, e mafai ona e faʻaogaina lenei fesili (o le a maua le soʻotaga i faʻataʻitaʻiga) e malamalama ai pe fia le aofaʻi o le a tusia i le sekone.

Matou te tilotilo i le umi o le talosaga. Matou te le amanaiaina le mea moni e leai ni faʻailoga, ae matou te iloa le umi o le talosaga ma matou iloa le tele o taimi i le sekone na faʻataunuʻuina. Ole auala lea e mafai ai ona tatou fa'atatau pe fia le tele o paita ile sekone. Atonu tatou te faia se mea sese faalua, ae o le a mautinoa lava tatou malamalama i le faasologa i lenei auala.

E mafai ona tatou vaʻaia e 802 taimi i le sekone o loʻo faʻatinoina lenei talosaga. Ma ua matou vaʻai o bytes_per sec - 300 kB / s o le a tusia faʻaopoopo pe toesea. Ma, i le avea ai o se tulafono, e mafai ona tatou gafatia sea tafe.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ae! O le mea moni o loʻo i ai faiga faʻapipiʻi eseese. Ma o le faaletonu o tagata e masani lava o le "syslog".

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma afai e iai sau syslog, atonu e iai sau ata fa'apenei. Matou te ave le pgbench, faʻatagaina le faʻailogaina o fesili ma vaʻai pe o le a le mea e tupu.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

A aunoa ma le taina - o le koluma lea i le agavale. Na matou maua le 161 TPS. Faatasi ai ma le syslog - o loʻo i le Ubuntu 000 i luga ole Amazon, matou te maua 16.04 TPS. Ma afai tatou te suia i isi auala e lua e teu ai, ona sili atu lea o le tulaga. O lona uiga, na matou manatu e pa'u, ae le o le tulaga tutusa.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma i luga ole CentOS 7, lea e auai ai foi le tusitala, liliu ogalaau i se faatulagaga binary mo suʻesuʻega faigofie, ma isi, ona avea ai lea o se miti leaga iina, matou te paʻu 44 taimi i le TPS.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma o le mea lea e nonofo ai tagata. Ma e masani lava i kamupani, aemaise lava tetele, e matua faigata lava ona sui. Afai e mafai ona e alu ese mai le syslog, faʻamolemole alu ese mai ai.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

  • Iloilo IOPS ma tusi le tafe.
  • Siaki lau faiga fa'amau.
  • Afai o le uta fuafuaina e matua tele, mafaufau e fai sampling.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

E iai a matou pg_stat_statements. E pei ona ou fai atu, e tatau ona i ai iina. Ma e mafai ona matou ave ma faʻamatalaina vaega taʻitasi o talosaga i se auala faʻapitoa i se faila. Ona mafai lea ona tatou faʻaogaina se mea sili ona faigofie ile pgbench - o le mafai lea ona faʻapipiʻi ni faila e faʻaaoga ai le "-f" filifiliga.

E malamalama tele i le "-f". Ma e mafai ona e iloa i le fesoasoani a "@" i le faaiuga o le a le faʻasoa e tatau ona i ai i faila taʻitasi. O lona uiga, e mafai ona tatou fai atu e faia lenei mea i le 10% o mataupu, ma o lenei i le 20%. Ma o lenei mea o le a tatou latalata atili ai i mea tatou te vaʻaia i le gaosiga.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O le a faapefea ona tatou malamalama i mea ua tatou maua i le gaosiga? O le a le faasoa ma e faapefea? O le mea lea e fai si ese. E tasi le matou oloa postgres-checkup. Fa'apea fo'i se fa'avae i Open Source. Ma o lea o lo'o matou fa'atupuina lelei.

Na fanau mai o ia mo ni mafuaaga eseese. Mo mafuaaga e le lava le mataituina. O lona uiga, e te sau, vaavaai i le faavae, vaai i faafitauli o loo i ai. Ma, e fai ma tulafono, e te faia se health_check. Afai o oe o se DBA poto masani, ona e faia lea o le health_check. Na matou vaʻavaʻai i le faʻaogaina o faʻamatalaga, ma isi. Afai o loʻo ia te oe OKmeter, ona lelei lea. Ole mataʻituina lelei lea mo Postgres. OKmeter.io - faʻamolemole faʻapipiʻi, o loʻo faia lelei mea uma iina. Ua totogi.

Afai e leai sau mea, e masani lava e le tele ni au mea. I le mataʻituina, e masani lava ona iai le PPU, IO, ona faʻatasi ai lea ma faʻaagaga, ma na o le pau lava lena. Ma matou te manaʻomia nisi mea. E tatau ona tatou vaʻavaʻai pe faʻafefea ona galue le autovacuum, pe faʻafefea ona galue le siaki, i io tatou manaʻomia e vavae ese le siaki mai le bgwriter ma mai tua, ma isi.

O le faʻafitauli o le taimi e te fesoasoani ai i se kamupani tele, e le mafai ona latou faʻatinoina se mea vave. E le mafai ona vave fa'atau le OKmeter. Masalo o le a latou faatauina i totonu o le ono masina. E le mafai ona latou avatu vave nisi o afifi.

Ma na matou o mai ma le manatu matou te manaʻomia se meafaigaluega faʻapitoa e le manaʻomia se mea e faʻapipiʻi, o lona uiga e te le tau faʻapipiʻi se mea i luga o le gaosiga. Fa'apipi'i i luga o lau komepiuta feavea'i, po'o luga o se 'au'aunaga mata'ituina mai le mea e te fa'atautaia ai. Ma o le a faʻavasegaina le tele o mea: o le faiga faʻaogaina, faila faila, ma Postgres lava ia, faia ni fesili mama e mafai ona faʻatautaia saʻo i le gaosiga ma e leai se mea e toilalo.

Na matou taʻua Postgres-checkup. I tulaga fa'afoma'i, ole siaki masani lea ole soifua maloloina. Afai e faʻatatau i taʻavale, e pei o le tausiga. E te faia le tausiga o lau taʻavale i le ono masina poʻo le tausaga, faʻalagolago i le ituaiga. E te faia le tausiga o lou nofoaga? O lona uiga, e te faia su'esu'ega loloto e le aunoa? E tatau ona fai. Afai e te faia faʻamaumauga, ona fai lea o se siaki, e le itiiti ifo le taua.

Ma e iai a matou meafaigaluega faapena. Na amata ona alia'e mai pe a ma le tolu masina talu ai. E laʻitiiti lava o ia, ae e tele naua.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Aoina mai vaega sili ona "a'afia" o fesili - lipoti K003 i Postgres-checkup

Ma o loʻo i ai se vaega o lipoti K. Tolu lipoti i le taimi nei. Ma o loʻo i ai se lipoti faapena K003. O lo'o iai le pito i luga mai pg_stat_statements, fa'avasega i le taimi_taimi.

A matou fa'avasega vaega talosaga i le total_time, i le pito i luga matou te va'ai ai i le vaega e sili ona utaina a matou polokalama, o lona uiga e fa'aaoga atili punaoa. Aisea ua ou faaigoa ai vaega o fesili? Aua na matou lafoa'i i fafo mea fa'amau. E le o toe talosaga nei, ae o vaega o talosaga, o lona uiga o loʻo faʻamatalaina.

Ma afai tatou te faʻamalieina mai luga i lalo, o le a tatou faʻamalamalamaina a tatou punaoa ma faʻatuai le taimi e manaʻomia ai le faʻaleleia. O se auala lelei tele lea e teu ai tupe.

Masalo e le o se auala lelei tele lea e tausia ai tagata faʻaoga, aua atonu tatou te le vaʻaia se mea e seasea, ae sili ona ita tele na faʻatali ai se tagata 15 sekone. I le aotelega, e seasea ona tatou le vaʻaia i latou, ae o loʻo tatou feagai ma punaoa.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

O le a le mea na tupu i lenei laulau? Sa matou pueina ni ata se lua. Postgres_checkup o le a tuʻuina atu ia te oe se delta mo metric taitasi: taimi atoa, telefoni, laina, shared_blks_read, ma isi. O le mea lena, o le delta ua uma ona fuafuaina. O le fa'afitauli tele i pg_stat_statements e le manatua le taimi na toe setiina ai. Afai e manatua e pg_stat_database, ona le manatua lea e pg_stat_statements. E te vaʻai e iai se numera o le 1, ae matou te le iloa poʻo fea na matou faitau ai.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma o iinei tatou te iloa, iinei e lua a tatou ata. Matou te iloa o le delta i lenei tulaga e 56 sekone. O se va puupuu tele. Fa'avasega ile taimi_taimi. Ona mafai ai lea ona tatou faʻavasegaina, o lona uiga tatou te vaevae uma metric i le umi. Afai tatou te vaevae metric taitasi i le umi, o le a maua le numera o telefoni ile sekone.

Le isi, atoa_taimi i le sekone o la'u metric e sili ona ou fiafia iai. E fuaina i sekone, i le sekone, o lona uiga e fia sekone na alu ai le tatou faiga e faʻatino ai lenei vaega o talosaga ile sekone. Afai e te vaʻai i le sili atu ma le sekone i le sekone iina, o lona uiga e tatau ona e tuʻuina atu le sili atu ma le tasi le autu. O se metric lelei tele lea. E mafai ona e malamalama o lenei uo, mo se faʻataʻitaʻiga, e manaʻomia ia le itiiti ifo ma le tolu cores.

O le matou poto lea, ou te lei vaai lava i se mea faapena i soo se mea. Faamolemole ia matau - o se mea faigofie tele - sekone i le sekone. O nisi taimi, pe a 100% lau PPU, ona afa itula i le sekone, o lona uiga, na e faʻaaluina le afa itula e fai na o nei talosaga.

Ona sosoo ai lea ma le vaaia o laina i le sekone. Matou te iloa le tele o laina i le sekone na toe foʻi mai ai.

Ona i ai foi lea o se mea manaia. E fia shared_buffers matou te faitau i le sekone mai le shared_buffers lava ia. Ua uma ona i ai iina, ma matou ave laina mai le faʻaogaina o le faʻaogaina o le masini poʻo le disk. O le filifiliga muamua e vave, ma o le lona lua atonu e vave pe leai foi, e fuafua i le tulaga.

Ma o le auala lona lua o le eseesega o le vaevaeina o le numera o talosaga i lenei vaega. I le koluma lona lua e tasi lava lau fesili e vaevaeina ile fesili. Ona manaia lea - e fia millisecond na i ai i lenei talosaga. Matou te iloa le uiga masani o lenei fesili. 101 miliseconds sa mana'omia mo talosaga ta'itasi. O le fua masani lea e tatau ona tatou malamalama i ai.

E fia laina na toe fa'afo'i mai fesili ta'itasi ile averesi? Ua tatou vaaia 8 lenei vaega ua toe foi mai. I le averesi, o le a le tele na ave mai le cache ma faitau. Matou te vaʻai o mea uma o loʻo teuina lelei. Tu'u malosi mo le vaega muamua.

Ma o le vaega lona fa i laina taitasi o le a le pasene o le aofaʻi. E i ai a matou telefoni. Seʻi tatou fai atu 1. Ma e mafai ona tatou malamalama i le sao o lenei vaega. Matou te vaʻai i le tulaga lea o le vaega muamua e itiiti ifo i le 000%. O lona uiga, e matua tuai lava tatou te le o vaaia i le ata atoa. Ma o le vaega lona lua e 000% i luga o telefoni. O lona uiga, 0,01% o telefoni uma o le vaega lona lua.

Aofa'i_taimi e manaia foi. Na matou fa'aaluina le 14% o le taimi atoa o le matou galuega i le vaega muamua o talosaga. Ma mo le lona lua - 11%, ma isi.

O le a ou le alu i auiliiliga, ae o loʻo i ai faʻamatalaga iina. Matou te faʻaalia se mea sese i le pito i luga, aua pe a matou faʻatusatusa, e mafai ona faʻafefea ata, o lona uiga, o nisi talosaga e mafai ona paʻu ma e le toe mafai ona i ai i le lona lua, ae o nisi o mea fou e ono aliali mai. Ma o iina tatou te fuafua ai le mea sese. Afai e te vaʻai i le 0, o lona uiga e lelei. E leai ni mea sese. Afai e o'o i le 20% le fa'aletonu, e le afaina.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ona tatou toe foi lea i le tatou autu. Matou te manaʻomia le faʻatulagaina o galuega. Matou te ave mai luga i lalo ma alu seia oʻo i le 80% poʻo le 90%. E masani lava e 10-20 vaega lea. Ma matou faia faila mo pgbench. Matou te faʻaogaina faʻafuaseʻi iina. O nisi taimi, o le mea e leaga ai, e le aoga. Ma i Postgres 12 o le a tele avanoa e faʻaoga ai lenei auala.

Ona tatou maua ai lea o le 80-90% i le taimi atoa i lenei auala. O le a le isi mea e tatau ona ou tuʻuina pe a uma le "@"? Matou te tilotilo i telefoni, vaʻavaʻai i le tele o tului o loʻo i ai ma malamalama o loʻo matou aitalafu le tele o tului iinei. Mai nei pasene e mafai ona tatou malamalama i le auala e faapaleni ai faila taitasi. A maeʻa lena matou faʻaaoga le pgbench ma alu i le galuega.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

E iai fo'i le matou K001 ma le K002.

O le K001 o se manoa tele e tasi ma ni manoa laiti e fa. O se uiga lea o la tatou avega atoa. Va'ai le koluma lona lua ma le la'asaga lona lua. Matou te vaʻaia e tusa ma le tasi ma le afa sekone i le sekone, o lona uiga afai e lua 'au, o le a lelei. E tusa ma le 75% le gafatia. Ma o le a galue e pei o lenei. Afai e 10 a tatou cores, e masani lava ona tatou toʻa. O le auala lea e mafai ai ona tatou iloiloina punaoa.

K002 o le mea lea ou te taʻua o vasega fesili, o lona uiga FILIFILI, INSERT, UPDATE, DELETE. Ma eseese FILIFILI MO FA'AITAU, aua o se loka.

Ma o iinei e mafai ona tatou faʻamaonia o le SELECT o le au faitau masani - 82% o telefoni uma, ae i le taimi lava e tasi - 74% i le taimi atoa. O lona uiga, e taʻua i latou e tele, ae faʻaitiitia punaoa.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma tatou toe foi atu i le fesili: "E mafai faapefea ona tatou filifilia le sa'o shared_buffers?" Ou te matauina o le tele o faʻailoga e faʻavae i luga o le manatu - seʻi o tatou vaʻai pe o le a le gaosiga o le a, o lona uiga o le a le gaosiga o le a. E masani ona fua ile TPS poʻo le QPS.

Ma matou te taumafai e faʻamalo le tele o fefaʻatauaiga i le sekone e mafai ai mai le taʻavale e faʻaaoga ai faʻasologa faʻalogo. Ole 311 tonu lea ile sekone mo le filifiliga.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ae leai se tasi e tietie i le galuega ma toe foi i le fale i le saoasaoa atoa. E valea lenei mea. E tutusa ma fa'amaumauga. Matou te le tau aveina le taavale i le saoasaoa atoa, ma e leai se tasi e alu. E leai se tasi e nofo i le gaosiga, lea e iai le 100% CPU. E ui lava, masalo o loʻo ola se tasi, ae e le lelei.

O le manatu e masani ona matou tietie i le 20 pasene o le gafatia, sili atu nai lo le 50%. Ma matou te taumafai e faʻamalieina taimi tali mo matou tagata faʻaoga i luga o mea uma. O lona uiga, e tatau ona tatou liliu a tatou ki ina ia i ai se laʻititi laʻititi i le 20% saoasaoa, faʻapitoa. O se manatu lea matou te taumafai foi e faʻaoga i a matou suʻega.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Ma mulimuli ane, fautuaga:

  • Ia mautinoa e fai le Database Lab.
  • Afai e mafai, fai i luga o le manaʻoga ina ia faʻaalia mo sina taimi - taʻalo ma lafo ese. Afai e iai au ao, o le mea lea e leai se tala, o lona uiga ia tele le tu.
  • Ia fia iloa. Ma afai ei ai se mea e sese, ona siaki lea i faʻataʻitaʻiga pe faʻafefea ona amio. E mafai ona fa'aoga Nancy e toleni ai oe lava e siaki pe fa'apefea ona galue le fa'avae.
  • Ma fa'amoemoe mo le taimi aupito maualalo e tali atu ai.
  • Ma aua le fefe i punaoa Postgres. A e galue ma punaoa, e tatau ona e iloa le Igilisi. E tele faʻamatalaga iina, o loʻo faʻamatalaina mea uma iina.
  • Ma siaki le soifua maloloina o le database i taimi uma, ia le itiiti ifo ma le tasi i le tolu masina, lima, poʻo le Postgres-checkup.

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

Au fesili

Faafetai tele lava! O se mea manaia tele.

Lua vaega.

Ioe, lua vaega. Na'o lo'u le'i malamalama lelei. A ma galulue ma Nancy, e mafai ona ma fa'avasega na'o le tasi le parakalafa po'o se vaega atoa?

E iai la matou fa'asologa o le delta config. E mafai ona e liliu iina i le tele e te manaʻo ai i le taimi e tasi. Ae e tatau ona e malamalama afai e te suia le tele o mea, e mafai ona e faia ni faaiuga sese.

Ioe. Aisea na ou fesili ai? Aua e faigata ona fa'atino fa'ata'ita'iga pe a na'o le tasi le parakalafa. E te fa'amauina, va'ai pe fa'afefea. Na ou tulia o ia i fafo. Ona e amata lea i le isi.

E mafai ona e faʻamalosi i le taimi e tasi, ae faʻalagolago i le tulaga, ioe. Ae sili atu le suʻeina o se manatu se tasi. Sa i ai so matou manatu ananafi. Sa matou maua se tulaga vavalalata. E lua configs. Ma sa le mafai ona matou malamalama pe aisea na i ai se eseesega tele. Ma na tulaʻi mai le manatu e tatau ona e faʻaaogaina le dichotomy ina ia mafai ai ona e malamalama i taimi uma ma maua ai le eseesega. E mafai ona e faia vave le afa o faʻamaufaʻailoga tutusa, sosoo ai ma le kuata, ma isi mea uma e fetuutuunai.

Ma e toe tasi le fesili. O le poloketi e talavou ma atina'e. Ua uma ona saunia le pepa, pe iai se faʻamatalaga auiliili?

Na ou faia faapitoa se sootaga iina i le faʻamatalaga o tapulaʻa. O lo'o iai iina. Ae o le tele o mea e le o iai i le taimi nei. O lo'o ou su'eina tagata e tutusa o latou mafaufau. Ma ou te mauaina pe a ou faia. E manaia tele lenei mea. O loʻo galue se tasi ma aʻu, o se tasi na fesoasoani ma faia se mea iina. Ma afai e te fiafia i lenei autu, tuʻu faʻamatalaga i mea o loʻo misi.

O le taimi lava e fausia ai le falesuesue, masalo o le ai ai ni manatu faaalia. Sei o tatou vaai. Fa'afetai!

Talofa! Faafetai mo le lipoti! Na ou vaʻaia o loʻo i ai le lagolago a Amazon. E i ai ni fuafuaga e lagolago ai le GSP?

Lelei fesili. Na amata ona matou faia. Ma matou fa'amalo mo le taimi nei ona matou te fia fa'asaoina tupe. O lona uiga, o loʻo i ai le lagolago e faʻaaoga ai le taʻavale ile localhost. E mafai ona e faia se faʻataʻitaʻiga oe lava ma galue i le lotoifale. I le ala, o le mea lena tatou te faia. Ou te faia lenei mea i Getlab, iina i le GSP. Ae matou te le o vaʻaia le uiga o le faia o na o faʻasalalauga faʻapea, aua Google e leai ni nofoaga taugofie. E iai ??? tulaga, ae e i ai tapulaa. Muamua, latou te maua na o le 70% faʻaitiitiga ma e le mafai ona e taʻalo i le tau iina. I luga ole laiga, matou te faʻatuputeleina le tau ile 5-10% e faʻaitiitia ai le avanoa o le a kiki oe. O lona uiga, e te fa'asaoina fa'ailoga, ae e mafai ona aveese mai ia te oe i so'o se taimi. Afai e te tau maualuga teisi atu nai lo isi, o le a fasiotia oe mulimuli ane. Google e matua 'ese'ese fa'amatalaga. Ma o loʻo i ai se isi tapulaʻa leaga tele - latou te ola mo le 24 itula. Ma o nisi taimi matou te mananaʻo e fai se faʻataʻitaʻiga mo le 5 aso. Ae e mafai ona e faia lenei mea i ni mea; o nisi taimi e umi masina.

Talofa! Faafetai mo le lipoti! Na e ta'ua le siaki. E fa'afefea ona e fa'atatau stat_statements mea sese?

Lelei tele fesili. E mafai ona ou faʻaalia ma taʻu atu ia te oe i se auiliiliga sili. I se faapuupuuga, matou te vaʻavaʻai pe faʻafefea ona faʻafefea le seti o vaega o talosaga: e toʻafia ua paʻuʻu ma pe fia ni mea fou ua aliali mai. Ona tatou vaʻavaʻai lea i fua faʻatatau e lua: total_time ma telefoni, o lea e lua mea sese. Ma tatou tilotilo i le sao o vaega opeopea. E lua vaega laiti: i latou na o ese ma i latou na taunuu. Sei o tatou vaai po o le a lo latou sao i le ata atoa.

E te le fefe o le a liliu iina faalua pe faatolu i le taimi i le va o ata?

O lona uiga, na latou toe lesitala pe a?

Mo se fa'ata'ita'iga, o lenei talosaga ua uma ona mua'i fa'atasi, ona sau ai lea ma toe fa'afoliga, ona toe sau ai lea ma toe fo'i. Ma na e fuafuaina se mea iinei, ma o fea oi ai uma?

Le fesili lelei, e tatau ona tatou tilotilo.

Sa ou faia foi se mea faapena. Sa sili atu ona faigofie, ioe, sa ou faia na o au. Ae sa tatau ona ou toe setiina, toe setiina stat_statements ma iloa i le taimi o le ata e itiiti ifo nai lo se vaega, lea e leʻi oʻo i le taualuga o le tele o stat_statements e mafai ona faʻaputuina iina. Ma o loʻu malamalama, e foliga mai, e leai se mea na suia.

Ioe Ioe.

Ae ou te le malamalama pe faapefea ona fai ma le faatuatuaina.

Ae paga lea, ou te le manatua lelei pe matou te faʻaogaina le faʻamatalaga fesili iina poʻo le queryid ma pg_stat_statements ma taulaʻi i ai. Afai tatou te taulai atu i le queryid, o lona uiga i le teori o loʻo tatou faʻatusatusaina mea faʻatusatusa.

Leai, e mafai ona faamalosia o ia i fafo i le va o ata ma toe sau.

Faatasi ai ma le id tutusa?

Ioe.

O le a tatou suʻesuʻeina lenei mea. Lelei fesili. E tatau ona tatou suesue i ai. Ae mo le taimi nei, o mea tatou te vaʻaia o loʻo tusia 0...

O le mea moni, o se mea e seasea tupu, ae na ou teʻi ina ua ou iloa e mafai e stat_statemetns ona sui iina.

E mafai ona tele mea ile Pg_stat_statements. Na matou mauaina le mea moni afai e iai sau track_utility = on, ona siaki ai lea o au seti.

Ioe o le mea moni.

Ma afai e iai sau java hibernate, lea e faʻafuaseʻi, ona amata loa lea ona i ai iina le laulau hash. Ma o le taimi lava e te tapeina ai se talosaga e sili ona utaina, e te faʻamutaina i vaega 50-100. Ma o mea uma e sili atu pe itiiti ifo le mautu iina. O se tasi o auala e tetee atu ai o le faateleina lea o pg_stat_statements.max.

Ioe, ae e tatau ona e iloa le tele. Ma i se isi itu e tatau ona tatou vaavaai atu ia te ia. O le mea lena ou te faia. O lona uiga, e iai la'u pg_stat_statements.max. Ma ou te vaʻai i le taimi o le ata e leʻi oʻo i le 70%. Lelei, o lea e leai se mea na leiloa. Tatou toe setiina. Ma tatou toe faasaoina. Afai o le isi ata e itiiti ifo i le 70, e foliga mai e te leʻi toe leiloa se mea.

Ioe. O le faaletonu ua 5. Ma ua lava lea mo le toatele o tagata.

E masani lava ioe.

Vitio:

PS I luga o aʻu lava sui, o le a ou faʻaopopo pe afai o Postgres o loʻo i ai faʻamatalaga faʻalilolilo ma e le mafai ona aofia i totonu o le siosiomaga suʻega, ona mafai lea ona e faʻaogaina PostgreSQL Anonymizer. Ole polokalame e fa'atatau ile fa'apea:

Alamanuia auala i PostgreSQL tuning: faʻataʻitaʻiga i luga o faʻamaumauga." Nikolay Samokhvalov

puna: www.habr.com

Faaopoopo i ai se faamatalaga