Jest to polecenie pgreplay, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks, korzystając z jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS
PROGRAM:
IMIĘ
pgreplay - odtwarzacz plików dziennika PostgreSQL do testów wydajności
STRESZCZENIE
pgreplay [analizować Opcje] [odtworzyć Opcje] [-d poziom] [w pliku]
pgreplay -f [analizować Opcje] [-o plik wyjściowy] [-d poziom] [w pliku]
pgreplay -r [odtworzyć Opcje] [-d poziom] [w pliku]
OPIS
pgreplay odczytuje plik dziennika PostgreSQL (nie plik WAL), wyodrębnia instrukcje SQL i
wykonuje je w tej samej kolejności i względnym czasie względem klastra bazy danych PostgreSQL.
Raport końcowy zawiera użyteczną analizę statystyczną obciążenia pracą i jej wykonania.
W pierwszej formie plik dziennika w pliku jest odtwarzany w momencie odczytu.
Z -f opcja, pgreplay nie wykona instrukcji, ale zapisze je do „powtórki”
plik' plik wyjściowy które można odtworzyć w trzeciej formie.
Z -r opcja, pgreplay wykona polecenia w pliku powtórkowym w pliku że
został stworzony przez drugą formę.
Jeżeli wykonanie wyciągów opóźni się, generowane są ostrzeżenia, że:
wskazują, że serwer nie może obsłużyć obciążenia w odpowiednim czasie. Chodzi o to, aby
odtwarzaj rzeczywiste obciążenie bazy danych tak dokładnie, jak to możliwe.
Aby utworzyć plik dziennika, który może być analizowany przez pgreplay, musisz ustawić następujące
parametry w postgresql.conf:
log_min_messages=błąd (albo więcej)
log_min_error_statement=log (albo więcej)
log_connections=wł.
log_disconnections=wł.
log_line_prefix='%m|%u|%d|%c|' (jeśli nie korzystasz z rejestrowania CSV)
log_statement='wszystkie'
lc_wiadomości musi być ustawiony na angielski (kodowanie nie ma znaczenia)
bytea_output=ucieczka (od wersji 9.0, tylko jeśli chcesz powtórzyć logowanie 8.4
albo wcześniej)
Klaster bazy danych, w stosunku do którego odtwarzasz instrukcje SQL, musi być klonem
klaster baz danych, który generował logi od tego czasu natychmiast zanim dzienniki były
wygenerowane.
pgreplay przydaje się do testów wydajnościowych, szczególnie w następujących sytuacjach:
* Chcesz porównać wydajność swojej aplikacji PostgreSQL na różnych
sprzęt lub różne systemy operacyjne.
* Chcesz zaktualizować bazę danych i chcesz się upewnić, że nowa wersja bazy danych
nie cierpi z powodu regresji wydajności, które wpływają na ciebie.
Co więcej, pgreplay może dać ci wyobrażenie o tym, jak twoja aplikacja może skalować według
dzięki czemu możesz spróbować odtworzyć obciążenie z większą szybkością. Ostrzegam jednak, że 500
użytkownicy pracujący z podwójną prędkością to nie to samo, co 1000 użytkowników pracujących normalnie
prędkość.
OPCJE
Parse opcje:
-c Określa, że plik dziennika jest w formacie „csvlog” (wysoce zalecane), a nie w
format „stderr”.
-b znak czasu
Przeanalizowane zostaną tylko wpisy dziennika większe lub równe tej sygnaturze czasowej. Format to
RRRR-MM-DD GG:MM:SS.FFF jak w pliku dziennika. Opcjonalna część strefy czasowej będzie
ignorowane.
-e znak czasu
Przeanalizowane zostaną tylko wpisy dziennika mniejsze lub równe tej sygnaturze czasowej. Format to
RRRR-MM-DD GG:MM:SS.FFF jak w pliku dziennika. Opcjonalna część strefy czasowej będzie
ignorowane.
-q Określa, że ukośnik odwrotny w prostym literale łańcuchowym zostanie zmieniony w następujący sposób
pojedynczy cytat. Zależy to od opcji konfiguracyjnych, takich jak
standardowe_zgodne_stringi i jest to ustawienie domyślne dla serwera w wersji 9.0 i starszych.
Replay opcje:
-h hosta
Nazwa hosta, na którym działa docelowy klaster bazy danych (lub katalog, w którym UNIX
gniazdo można znaleźć). Domyślnie połączenia lokalne.
Działa to tak samo jak -h opcja Psql.
-p Port
Port TCP, na którym można uzyskać dostęp do docelowego klastra bazy danych.
-W password
Domyślnie pgreplay zakłada, że docelowy klaster bazy danych jest skonfigurowany dla
zaufać uwierzytelnianie. Z -W możesz określić hasło, które będzie
używane dla wszystkich użytkowników w klastrze.
-s czynnik
Współczynnik prędkości dla powtórki, domyślnie 1. Może to być dowolna prawidłowa dodatnia liczba zmiennoprzecinkowa
numer punktu. A czynnik mniej niż 1 odtworzy obciążenie w „zwolnionym tempie”, podczas gdy
a czynnik większe niż 1 oznacza „szybkie przewijanie do przodu”.
-E kodowanie
Określa kodowanie pliku dziennika, które będzie używane jako kodowanie klienta
podczas powtórki. Jeśli zostanie pominięty, zostanie użyte domyślne kodowanie klienta.
-j Jeśli wszystkie połączenia są bezczynne, przejdź do następnego żądania zamiast spać.
Przyspieszy to odtwarzanie. Opóźnienia w realizacji będą nadal zgłaszane poprawnie, ale
statystyki powtórek nie będą zawierać czasu bezczynności.
Wydajność opcje:
-o plik wyjściowy
określa plik powtórkowy, w którym zostaną zapisane wyciągi do późniejszego odtworzenia.
Debug opcje:
-d poziom
Określa poziom śledzenia (od 1 do 3). Rosnące poziomy dadzą więcej
szczegółowe informacje o czym pgreplay to robi.
-v Wyświetla wersję programu i kończy działanie.
ŚRODOWISKO
PDUCH Określa domyślną wartość -h opcja.
PGPORT Określa domyślną wartość -p opcja.
PGCLIENTENKODOWANIE
Określa domyślną wartość -E opcja.
OGRANICZENIA
pgreplay może odtwarzać tylko to, co jest zarejestrowane przez PostgreSQL. Prowadzi to do pewnych ograniczeń:
* KOPIA wyciągi nie będą odtwarzane, ponieważ kopie danych nie są rejestrowane.
* Wywołania funkcji Fast-path API nie są rejestrowane i nie będą odtwarzane. Niestety,
obejmuje to interfejs API dużych obiektów.
* Ponieważ plik dziennika jest zawsze w kodowaniu serwera (które można określić za pomocą -E
wyłączać pgreplay), wszystko SET kodowanie_klienta oświadczenia zostaną zignorowane.
* Ponieważ czas przygotowania przygotowanych wyciągów nie jest rejestrowany (chyba że
log_min_wiadomości is debugowanie2 lub więcej), zestawienia te zostaną przygotowane natychmiast
zanim zostaną wykonane po raz pierwszy podczas powtórki.
* Ponieważ plik dziennika zawiera tylko tekst, parametry zapytania i zwracane wartości będą
zawsze być w formie tekstowej i nigdy w formacie binarnym. Jeśli używasz trybu binarnego do, powiedzmy, transferu
duże dane binarne, pgreplay może powodować znacznie większy ruch w sieci niż
oryginalny przebieg.
* Czasami, jeśli połączenie trwa dłużej, identyfikator sesji nieoczekiwanie
zmiany w pliku dziennika PostgreSQL. To powoduje pgreplay traktować sesję jako dwie
różne, co skutkuje dodatkowym połączeniem. Jest to prawdopodobnie błąd w
PostgreSQL.
Korzystaj z pgreplay online za pomocą usług onworks.net