PostgreSQL:n suorituskyky ja kyselyjen optimointi · Oppitunti

Lokituksen määritys analyysiä varten

Määrittäkää PostgreSQL:n lokitus keräämään suorituskyvyn analysoinnissa ja vianmäärityksessä tarvittavat tiedot.

Oppitunti 2/411 vaihetta

Lokituksen määritys analyysiä varten on ilmainen PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. PostgreSQL:n suorituskyky ja kyselyjen optimointi-kurssilla on yhteensä 4 oppituntia.

Miksi PostgreSQL-lokit ovat tärkeitä

PostgreSQL-tietokannan toiminnan ymmärtäminen on ratkaisevan tärkeää sen kunnon ja nopeuden ylläpitämiseksi. Lokit ovat tietokannan päiväkirja: ne tallentavat tärkeitä tapahtumia, virheitä ja jopa hitaita kyselyitä.

Kun lokitus määritetään oikein, saatte syvällistä tietoa siitä, mitä konepellin alla tapahtuu, mikä helpottaa huomattavasti vianmääritystä ja suorituskyvyn analysointia.

Mihin lokit menevät: log_destination

PostgreSQL voi lähettää lokitulosteensa eri kohteisiin. Tätä ohjaa postgresql.conf-tiedoston log_destination-parametri.

  • stderr: lokit lähetetään vakiovirheeseen (konsoliin).
  • csvlog: lokit kirjoitetaan CSV-muodossa, mikä sopii hyvin ohjelmalliseen analysointiin.
  • syslog: lokit lähetetään järjestelmän lokipalveluun.

Useimmille käyttäjille stderr (lokinkerääjän kaappaamana) tai csvlog ovat yleisimmät ja hyödyllisimmät vaihtoehdot.

Lokien kerääminen logging_collector-parametrilla

Jos log_destination sisältää arvon stderr, haluatte todennäköisesti PostgreSQL:n keräävän nämä lokitiedostot. Tässä logging_collector auttaa.

Kun logging_collector on on, PostgreSQL käynnistää taustaprosessin, joka kerää stderr-viestit ja ohjaa ne lokitiedostoihin. Voitte määrittää asetukset log_directory ja log_filename.

Näin otatte sen käyttöön:

logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

Kaikkien SQL-lauseiden lokitus

Jos haluatte nähdä jokaisen suoritetun SQL-komennon, voitte asettaa arvoksi log_statement = 'all'. Tämä tuottaa erittäin paljon lokitietoja ja voi kasvattaa lokitiedostot valtaviksi, joten käyttäkää sitä varoen ja yleensä vain lyhytaikaiseen virheenkorjaukseen.

Oletetaan, että suoritatte tämän kyselyn:

SELECT * FROM products WHERE price > 100;

log_statement-tulosteen ymmärtäminen

Kun asetuksena on log_statement = 'all', edellinen kysely näkyisi lokeissa. Muita hyödyllisiä asetuksia ovat:

  • ddl: kirjaa kaikki tietomäärittelykielen komennot (CREATE, ALTER, DROP).
  • mod: kirjaa DDL- ja tietojenkäsittelykielen komennot (INSERT, UPDATE, DELETE).
  • none: lauseita ei kirjata (oletus).

Yleiseen valvontaan ddl tai mod voi olla hyvä kompromissi, sillä ne tallentavat skeeman muutokset ja tietojen muokkaukset.

Hitaiden kyselyiden etsiminen: log_min_duration_statement

Tämä on yksi tehokkaimmista lokitusparametreista suorituskyvyn analysointiin. log_min_duration_statement kirjaa kaikki lauseet, joiden suoritus kestää määritettyä millisekuntimäärää kauemmin.

Arvo 0 kirjaa kaikki lauseet ja niiden suoritusajat. Arvo -1 (oletus) poistaa toiminnon käytöstä.

Esimerkki: jos haluatte kirjata yli 200 ms kestävät kyselyt:

log_min_duration_statement = 200

Käytännössä: hitaan kyselyn simulointi

Jos log_min_duration_statement-asetuksena on 100 (100 ms), tällainen kysely näkyisi lokeissa, jos sen suoritus kestää yli 100 ms. Näin voitte tunnistaa suorituskyvyn pullonkaulat.

SELECT pg_sleep(0.15);
-- This query intentionally sleeps for 150ms

Yhteyksien muodostamisen ja katkaisemisen lokitus

Asiakkaiden toiminnan seuraaminen voi olla tärkeää tietoturvan ja resurssienhallinnan kannalta. Voitte määrittää PostgreSQL:n kirjaamaan asiakkaiden yhteydenotot ja yhteyksien katkaisut.

  • log_connections = on: kirjaa onnistuneet yhteydenmuodostusyritykset.
  • log_disconnections = on: kirjaa asiakkaiden yhteyksien katkaisut, mukaan lukien istunnon keston.

Näiden asetusten avulla saatte arvokasta tietoa siitä, kuka muodostaa yhteyden, mistä yhteys tulee ja kuinka kauan se kestää.

Lokitulosteen jäsentäminen: log_line_prefix

log_line_prefix-parametrilla voitte lisätä hyödyllisiä tietoja jokaisen lokirivin alkuun. Tämä helpottaa lokien jäsentämistä ja ymmärtämistä huomattavasti.

Yleisiä etuliitteitä ovat aikaleima, käyttäjä, tietokanta, prosessitunnus ja asiakkaan IP-osoite. Esimerkiksi:

log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '

Pikatarkistus: hitaiden kyselyiden lokitus

Mitä määritysparametria käytetään tietyn suoritusajan ylittävien SQL-lauseiden kirjaamiseen, joten se on erittäin hyödyllinen suorituskyvyn pullonkaulojen tunnistamisessa?

Kertaus: lokimääritysten hallinta

Olette oppineet määrittämään PostgreSQL-lokituksen tehokasta analysointia ja vianmääritystä varten.

  • Käsittelimme log_destination-parametrin lokien tulostuskohteen määrittämiseen.
  • Otimme käyttöön logging_collector-asetuksen lokien keräämiseksi tiedostoihin.
  • Käytimme log_statement-asetusta kyselyiden yleiseen lokitukseen.
  • Tunnistimme hitaat kyselyt tehokkaan log_min_duration_statement-parametrin avulla.
  • Tutustuimme asetuksiin log_connections ja log_line_prefix lisätietojen tuottamista varten.

Asianmukainen lokitus on ensimmäinen puolustuslinjanne PostgreSQL-tietokannan toiminnan ymmärtämisessä ja optimoinnissa!

Aloita maksutta

Opi SQL tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
22
Oppitunnit
88

Usein kysytyt kysymykset

Onko oppitunti ”Lokituksen määritys analyysiä varten” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppimispolun 3 oppituntia, myös oppitunnin “Lokituksen määritys analyysiä varten”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. PostgreSQL:n suorituskyky ja kyselyjen optimointi-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Lokituksen määritys analyysiä varten”?

Määrittäkää PostgreSQL:n lokitus keräämään suorituskyvyn analysoinnissa ja vianmäärityksessä tarvittavat tiedot. Harjoittelet PostgreSQL:n suorituskyky ja kyselyjen optimointi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni PostgreSQL:n suorituskyky ja kyselyjen optimointi-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Lokituksen määritys analyysiä varten”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppitunnilla?

Kyllä. Jokainen PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. pg_stat_statementsin ja pg_buffercachen käyttö
  2. Lokituksen määritys analyysiä varten
  3. Integrointi ulkoisiin valvontatyökaluihin
  4. Aktiivisen toiminnan diagnosointi pg_stat_activityllä
← Takaisin: PostgreSQL:n suorituskyky ja kyselyjen optimointi