Dit is het commando pgreplay dat kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
pgreplay - PostgreSQL-logbestand-replayer voor prestatietests
KORTE INHOUD
pgreplay [ontleden opties] [af te spelen opties] [-d niveau] [in bestand]
pgreplay -f [ontleden opties] [-o uitbestand] [-d niveau] [in bestand]
pgreplay -r [af te spelen opties] [-d niveau] [in bestand]
PRODUCTBESCHRIJVING
pgreplay leest een PostgreSQL-logbestand (niet een WAL-bestand), extraheert de SQL-statements en
voert ze in dezelfde volgorde en relatieve tijd uit tegen een PostgreSQL-databasecluster.
Een eindrapport geeft u een nuttige statistische analyse van uw werklast en de uitvoering ervan.
In de eerste vorm het logbestand in bestand wordt afgespeeld op het moment dat het wordt gelezen.
Met de -f keuze, pgreplay voert de statements niet uit, maar schrijft ze naar een 'replay
bestand' uitbestand die kan worden afgespeeld met de derde vorm.
Met de -r keuze, pgreplay zal de instructies in het replay-bestand uitvoeren in bestand uit die
is gemaakt door de tweede vorm.
Als de uitvoering van instructies achterloopt op schema, worden waarschuwingsberichten verzonden
aangeven dat de server de belasting niet tijdig aankan. Het idee is om
speel een real-world databaseworkload zo nauwkeurig mogelijk na.
Om een logbestand te maken dat kan worden geparseerd door pgreplay, moet u het volgende instellen
parameters binnen postgresql.conf:
log_min_messages=fout (of meer)
log_min_error_statement=logboek (of meer)
log_connections=aan
log_disconnections=aan
log_line_prefix='%m|%u|%d|%c|' (als u geen CSV-logboekregistratie gebruikt)
log_statement='allemaal'
lc_berichten moet op Engels zijn ingesteld (codering maakt niet uit)
bytea_output=ontsnappen (vanaf versie 9.0, alleen als u de log opnieuw wilt afspelen op 8.4
of eerder)
Het databasecluster waartegen u de SQL-instructies opnieuw afspeelt, moet een kloon zijn van het
databasecluster dat de logboeken vanaf dat moment heeft gegenereerd per direct vaardigheden de logs waren
gegenereerd.
pgreplay is nuttig voor prestatietests, met name in de volgende situaties:
* U wilt de prestaties van uw PostgreSQL-applicatie op verschillende vergelijken
hardware of verschillende besturingssystemen.
* U wilt uw database upgraden en ervoor zorgen dat de nieuwe databaseversie
heeft geen last van prestatieregressies die u beïnvloeden.
Bovendien, pgreplay kan u enig gevoel geven over hoe uw toepassing macht schaal met
waardoor u kunt proberen de werklast op een hogere snelheid opnieuw af te spelen. Wees echter gewaarschuwd dat 500
gebruikers die op dubbele snelheid werken is niet echt hetzelfde als 1000 gebruikers die op normale snelheid werken
snelheid.
OPTIES
ontleden opties:
-c Geeft aan dat het logbestand de indeling 'csvlog' heeft (sterk aanbevolen) en niet de indeling
'stderr'-indeling.
-b tijdstempel
Alleen logboekvermeldingen groter of gelijk aan dat tijdstempel worden geparseerd. Het formaat is
YYYY-MM-DD UU:MM:SS.FFF zoals in het logbestand. Een optioneel tijdzonegedeelte zal zijn
buiten beschouwing gelaten.
-e tijdstempel
Alleen logboekvermeldingen kleiner of gelijk aan dat tijdstempel worden geparseerd. Het formaat is
YYYY-MM-DD UU:MM:SS.FFF zoals in het logbestand. Een optioneel tijdzonegedeelte zal zijn
buiten beschouwing gelaten.
-q Specificeert dat een backslash in een eenvoudige letterlijke tekenreeks het volgende zal escapen
alleenstaande citaat. Dit hangt af van configuratie-opties zoals
standaard_conforme_strings en is de standaard voor serverversie 9.0 en lager.
Replay opties:
-h hostname
Hostnaam waar het doeldatabasecluster wordt uitgevoerd (of map waar de UNIX
stopcontact kan worden gevonden). Standaard ingesteld op lokale verbindingen.
Dit werkt net als de -h optie van psql.
-p port
TCP-poort waar het doeldatabasecluster kan worden bereikt.
-W wachtwoord
Standaard pgreplay gaat ervan uit dat het doeldatabasecluster is geconfigureerd
vertrouwen authenticatie. Met de -W optie kunt u een wachtwoord opgeven dat zal zijn
gebruikt voor alle gebruikers in het cluster.
-s factor
Snelheidsfactor voor opnieuw afspelen, standaard 1. Dit kan elke geldige positieve float zijn
punt nummer. A factor minder dan 1 speelt de werklast in 'slow motion' af, terwijl
a factor groter dan 1 betekent 'snel vooruitspoelen'.
-E codering
Specificeert de codering van het logbestand, dat zal worden gebruikt als clientcodering
tijdens het opnieuw afspelen. Als het wordt weggelaten, wordt uw standaard clientcodering gebruikt.
-j Als alle verbindingen inactief zijn, spring dan vooruit naar het volgende verzoek in plaats van te slapen.
Dit versnelt het opnieuw afspelen. Uitvoeringsvertragingen worden nog steeds correct gerapporteerd, maar
herhalingsstatistieken bevatten niet de inactieve tijd.
uitgang opties:
-o uitbestand
specificeert het replay-bestand waarin de instructies zullen worden geschreven om later opnieuw te worden afgespeeld.
Debug opties:
-d niveau
Specificeert het traceerniveau (tussen 1 en 3). Toenemende niveaus zullen meer produceren
gedetailleerde informatie over wat pgreplay doet.
-v Drukt de programmaversie af en sluit af.
MILIEU
PGHOST Specificeert de standaardwaarde voor de -h optie.
PGPOORT Specificeert de standaardwaarde voor de -p optie.
PGCLIENTENCODERING
Specificeert de standaardwaarde voor de -E optie.
Beperkingen
pgreplay kan alleen afspelen wat is gelogd door PostgreSQL. Dit leidt tot enkele beperkingen:
* COPY verklaringen worden niet opnieuw afgespeeld, omdat de gekopieerde gegevens niet worden gelogd.
* Fast-path API-functieaanroepen worden niet geregistreerd en worden niet opnieuw afgespeeld. Helaas,
dit omvat de Large Object API.
* Aangezien het logbestand zich altijd in de servercodering bevindt (die u kunt specificeren met de -E
schakelaar uit pgreplay), allemaal SET client_codering verklaringen worden genegeerd.
* Aangezien de voorbereidingstijd van voorbereide overzichten niet wordt gelogd (tenzij
log_min_berichten is debuggen2 of meer), worden deze verklaringen onmiddellijk opgesteld
voordat ze voor het eerst worden uitgevoerd tijdens het opnieuw afspelen.
* Omdat het logbestand alleen tekst bevat, zullen queryparameters en geretourneerde waarden dat wel doen
altijd in tekst en nooit in binair formaat. Als u de binaire modus gebruikt om bijvoorbeeld over te dragen
grote binaire gegevens, pgreplay kan aanzienlijk meer netwerkverkeer veroorzaken dan de
originele loop.
* Soms, als een verbinding langer duurt om te voltooien, wordt de sessie-ID onverwacht weergegeven
wijzigingen in het PostgreSQL-logbestand. Dit veroorzaakt pgreplay om de sessie als twee te behandelen
verschillende, wat resulteert in een extra verbinding. Dit is waarschijnlijk een bug in
PostgreSQL.
Gebruik pgreplay online met behulp van onworks.net-services