Ini adalah perintah pgreplay yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
pgreplay - replayer file log PostgreSQL untuk tes kinerja
RINGKASAN
pgreplay [parse Pilihan] [memutar ulang Pilihan] [-d tingkat] [masuk]
pgreplay -f [parse Pilihan] [-o file keluar] [-d tingkat] [masuk]
pgreplay -r [memutar ulang Pilihan] [-d tingkat] [masuk]
DESKRIPSI
pgreplay membaca file log PostgreSQL (tidak file WAL), mengekstrak pernyataan SQL dan
mengeksekusi mereka dalam urutan yang sama dan waktu relatif terhadap cluster database PostgreSQL.
Laporan akhir memberi Anda analisis statistik yang berguna tentang beban kerja Anda dan pelaksanaannya.
Dalam bentuk pertama, file log masuk diputar ulang pada saat dibaca.
Dengan -f pilihan, pgreplay tidak akan mengeksekusi pernyataan, tetapi menulisnya ke 'replay'
mengajukan' file keluar yang dapat diputar ulang dengan bentuk ketiga.
Dengan -r pilihan, pgreplay akan mengeksekusi pernyataan dalam file replay masuk bahwa
diciptakan oleh bentuk kedua.
Jika eksekusi pernyataan terlambat dari jadwal, pesan peringatan dikeluarkan bahwa
menunjukkan bahwa server tidak dapat menangani beban secara tepat waktu. Idenya adalah untuk
memutar ulang beban kerja database dunia nyata setepat mungkin.
Untuk membuat file log yang dapat diuraikan oleh pgreplay, Anda perlu mengatur yang berikut:
parameter dalam postgresql.conf:
log_min_messages=kesalahan (atau lebih)
log_min_error_statement=catatan (atau lebih)
log_koneksi=on
log_disconnections=aktif
log_line_prefix='%m|%u|%d|%c|' (jika Anda tidak menggunakan pencatatan CSV)
log_statement='semua'
lc_messages harus diatur ke bahasa Inggris (pengkodean tidak masalah)
bytea_output=melarikan diri (dari versi 9.0, hanya jika Anda ingin memutar ulang log di 8.4
atau sebelumnya)
Cluster database yang Anda gunakan untuk memutar ulang pernyataan SQL harus merupakan tiruan dari
cluster database yang menghasilkan log dari waktu segera sebelum lognya adalah
dihasilkan.
pgreplay berguna untuk tes kinerja, terutama dalam situasi berikut:
* Anda ingin membandingkan kinerja aplikasi PostgreSQL Anda di berbagai
perangkat keras atau sistem operasi yang berbeda.
* Anda ingin memutakhirkan basis data Anda dan ingin memastikan bahwa versi basis data baru
tidak mengalami kemunduran kinerja yang memengaruhi Anda.
Bahkan, pgreplay dapat memberi Anda perasaan tentang bagaimana aplikasi Anda mungkin skala menurut
memungkinkan Anda mencoba memutar ulang beban kerja dengan kecepatan lebih tinggi. Namun, berhati-hatilah, bahwa 500
pengguna yang bekerja dengan kecepatan ganda tidak benar-benar sama dengan 1000 pengguna yang bekerja dengan kecepatan normal
kecepatan.
PILIHAN
dompet pilihan:
-c Menentukan bahwa file log dalam format 'csvlog' (sangat disarankan) dan tidak dalam
format 'stderr'.
-b timestamp
Hanya entri log yang lebih besar atau sama dengan stempel waktu tersebut yang akan diuraikan. Formatnya adalah
YYYY-MM-DD HH:MM:SS.FFF seperti di file log. Bagian zona waktu opsional adalah
diabaikan.
-e timestamp
Hanya entri log yang kurang atau sama dengan stempel waktu tersebut yang akan diuraikan. Formatnya adalah
YYYY-MM-DD HH:MM:SS.FFF seperti di file log. Bagian zona waktu opsional adalah
diabaikan.
-q Menentukan bahwa garis miring terbalik dalam literal string sederhana akan lolos dari yang berikut:
kutipan tunggal. Ini tergantung pada opsi konfigurasi seperti
string_sesuai_standar dan merupakan default untuk server versi 9.0 dan yang lebih rendah.
Replay pilihan:
-h hostname
Nama host tempat cluster database target berjalan (atau direktori tempat UNIX
soket dapat ditemukan). Default untuk koneksi lokal.
Ini bekerja seperti -h pilihan dari psql.
-p pelabuhan
Port TCP di mana cluster database target dapat dicapai.
-W kata sandi
Secara default, pgreplay mengasumsikan bahwa cluster database target dikonfigurasi untuk
percaya autentikasi. Dengan -W opsi Anda dapat menentukan kata sandi yang akan
digunakan untuk semua pengguna dalam cluster.
-s faktor
Faktor kecepatan untuk replay, secara default 1. Ini bisa berupa floating positif yang valid
nomor poin. A faktor kurang dari 1 akan memutar ulang beban kerja dalam 'gerakan lambat', sementara
a faktor lebih besar dari 1 berarti 'maju cepat'.
-E encoding
Menentukan pengkodean file log, yang akan digunakan sebagai pengkodean klien
selama pemutaran ulang. Jika dihilangkan, pengkodean klien default Anda akan digunakan.
-j Jika semua koneksi tidak aktif, lanjutkan ke permintaan berikutnya alih-alih tidur.
Ini akan mempercepat pemutaran ulang. Penundaan eksekusi masih akan dilaporkan dengan benar, tapi
statistik replay tidak akan berisi waktu idle.
Keluaran pilihan:
-o file keluar
menentukan file replay di mana pernyataan akan ditulis untuk replay nanti.
Debug pilihan:
-d tingkat
Menentukan tingkat jejak (antara 1 dan 3). Meningkatkan level akan menghasilkan lebih banyak
informasi rinci tentang apa pgreplay sedang melakukan.
-v Mencetak versi program dan keluar.
LINGKUNGAN
PGHOST Menentukan nilai default untuk -h .
PGPORT Menentukan nilai default untuk -p .
PENGKODEAN PGCLIENT
Menentukan nilai default untuk -E .
PEMBATASAN
pgreplay hanya dapat memutar ulang apa yang dicatat oleh PostgreSQL. Ini mengarah pada beberapa batasan:
* COPY pernyataan tidak akan diputar ulang, karena data salinan tidak dicatat.
* Panggilan fungsi API jalur cepat tidak dicatat dan tidak akan diputar ulang. Sayangnya,
ini termasuk API Objek Besar.
* Karena file log selalu dalam penyandian server (yang dapat Anda tentukan dengan -E
beralih dari pgreplay), semua SET pengkodean_klien pernyataan akan diabaikan.
* Karena waktu persiapan pernyataan yang disiapkan tidak dicatat (kecuali
log_min_pesan is debug2 atau lebih), pernyataan ini akan segera disiapkan
sebelum mereka pertama kali dieksekusi selama replay.
* Karena file log hanya berisi teks, parameter kueri dan nilai yang dikembalikan akan
selalu dalam teks dan tidak pernah dalam format biner. Jika Anda menggunakan mode biner untuk, katakanlah, transfer
data biner besar, pgreplay dapat menyebabkan lalu lintas jaringan yang jauh lebih banyak daripada
lari asli.
* Terkadang, jika koneksi membutuhkan waktu lebih lama untuk diselesaikan, ID sesi tiba-tiba
perubahan dalam file log PostgreSQL. Ini menyebabkan pgreplay untuk memperlakukan sesi sebagai dua
yang berbeda, menghasilkan koneksi tambahan. Ini bisa dibilang bug di
PostgreSQL.
Gunakan pgreplay online menggunakan layanan onworks.net