EnglishFrenchSpanyol

Favicon OnWorks

pgbench - Dalam talian di Awan

Jalankan pgbench dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan pgbench yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


pgbench - jalankan ujian penanda aras pada PostgreSQL

SINOPSIS


pgbench -i [pilihan...] [dbname]

pgbench [pilihan...] [dbname]

DESCRIPTION


pgbench ialah program mudah untuk menjalankan ujian penanda aras pada PostgreSQL. Ia berjalan sama
urutan perintah SQL berulang kali, mungkin dalam beberapa sesi pangkalan data serentak,
dan kemudian mengira kadar urus niaga purata (urus niaga sesaat). Secara lalai,
pgbench menguji senario yang longgar berdasarkan TPC-B, melibatkan lima SELECT, UPDATE,
and INSERT arahan setiap transaksi. Walau bagaimanapun, adalah mudah untuk menguji kes lain dengan menulis
fail skrip transaksi anda sendiri.

Output biasa dari pgbench kelihatan seperti:

jenis transaksi: TPC-B (semacam)
faktor skala: 10
mod pertanyaan: mudah
bilangan pelanggan: 10
bilangan benang: 1
bilangan transaksi bagi setiap pelanggan: 1000
bilangan urus niaga yang sebenarnya diproses: 10000/10000
tps = 85.184871 (termasuk sambungan mewujudkan)
tps = 85.296346 (tidak termasuk sambungan mewujudkan)

Enam baris pertama melaporkan beberapa tetapan parameter yang paling penting. Baris seterusnya
melaporkan bilangan urus niaga yang diselesaikan dan dimaksudkan (yang terakhir hanyalah
produk bilangan pelanggan dan bilangan transaksi bagi setiap pelanggan); ini akan sama
melainkan larian gagal sebelum selesai. (Dalam -T mod, hanya bilangan sebenar
urus niaga dicetak.) Dua baris terakhir melaporkan bilangan urus niaga sesaat,
dikira dengan dan tanpa mengira masa untuk memulakan sesi pangkalan data.

Ujian urus niaga seperti TPC-B lalai memerlukan jadual tertentu untuk disediakan terlebih dahulu.
pgbench harus digunakan dengan -i (memulakan) pilihan untuk mencipta dan mengisi ini
meja. (Apabila anda menguji skrip tersuai, anda tidak memerlukan langkah ini, tetapi sebaliknya
perlu melakukan apa sahaja persediaan yang diperlukan oleh ujian anda.) Permulaan kelihatan seperti:

pgbench -i [ pilihan lain ] dbname

di mana dbname ialah nama pangkalan data yang telah dibuat untuk diuji. (Anda juga mungkin memerlukan
-h, -p, Dan / atau -U pilihan untuk menentukan cara menyambung ke pelayan pangkalan data.)

Awas
pgbench -i mencipta empat jadual pgbench_accounts, pgbench_branches, pgbench_history,
dan pgbench_tellers, memusnahkan mana-mana jadual sedia ada bagi nama-nama ini. Berhati-hati untuk
gunakan pangkalan data lain jika anda mempunyai jadual yang mempunyai nama ini!

Pada "faktor skala" lalai 1, jadual pada mulanya mengandungi banyak baris ini:

jadual # baris
---------------------------------
pgbench_ branches 1
pgbench_tellers 10
pgbench_accounts 100000
pgbench_history 0

Anda boleh (dan, untuk kebanyakan tujuan, mungkin perlu) meningkatkan bilangan baris dengan menggunakan
-s (faktor skala) pilihan. The -F pilihan (fillfactor) mungkin juga digunakan pada ketika ini.

Sebaik sahaja anda telah melakukan persediaan yang diperlukan, anda boleh menjalankan penanda aras anda dengan arahan itu
tidak termasuk -i, itu dia

pgbench [ pilihan ] dbname

Dalam hampir semua kes, anda memerlukan beberapa pilihan untuk membuat ujian yang berguna. Yang paling penting
pilihan adalah -c (bilangan pelanggan), -t (bilangan transaksi), -T (had masa), dan -f
(nyatakan fail skrip tersuai). Lihat di bawah untuk senarai penuh.

PILIHAN


Yang berikut dibahagikan kepada tiga subseksyen: Pilihan yang berbeza digunakan semasa
permulaan pangkalan data dan semasa menjalankan penanda aras, beberapa pilihan berguna dalam kedua-duanya
Kes.

Pengawalan Pilihan
pgbench menerima hujah permulaan baris arahan berikut:

-i
--memulakan
Diperlukan untuk menggunakan mod permulaan.

-F faktor pengisi
--fillfactor=faktor pengisi
Buat jadual pgbench_accounts, pgbench_tellers dan pgbench_branches dengan
diberi fillfactor. Lalai ialah 100.

-n
--tiada-vakum
Tidak melakukan vakum selepas permulaan.

-q
--senyap
Tukar pengelogan kepada mod senyap, menghasilkan hanya satu mesej kemajuan setiap 5 saat. The
pengelogan lalai mencetak satu mesej setiap 100000 baris, yang selalunya mengeluarkan banyak baris
sesaat (terutama pada perkakasan yang baik).

-s faktor skala
--skala=faktor skala
Darabkan bilangan baris yang dijana oleh faktor skala. Sebagai contoh, -s 100 akan
buat 10,000,000 baris dalam jadual pgbench_accounts. Lalai ialah 1. Apabila skala adalah
20,000 atau lebih besar, lajur yang digunakan untuk menyimpan pengecam akaun (lajur bantuan) akan
beralih kepada menggunakan integer yang lebih besar (bigint), untuk menjadi cukup besar untuk memegang julat
pengecam akaun.

--kunci asing
Buat kekangan kunci asing antara jadual standard.

--index-tablespace=index_tablespace
Cipta indeks dalam ruang jadual yang ditentukan, bukannya ruang jadual lalai.

--ruang meja=ruang meja
Cipta jadual dalam ruang jadual yang ditentukan, bukannya ruang jadual lalai.

--unlog-jadual
Cipta semua jadual sebagai jadual tidak dilog, bukannya jadual kekal.

penandaarasan Pilihan
pgbench menerima hujah penanda aras baris arahan berikut:

-c pelanggan
--pelanggan=pelanggan
Bilangan pelanggan yang disimulasikan, iaitu bilangan sesi pangkalan data serentak. lalai
adalah 1.

-C
--sambung
Wujudkan sambungan baharu untuk setiap transaksi, bukannya melakukannya sekali sahaja setiap
sesi klien. Ini berguna untuk mengukur overhed sambungan.

-d
--nyahpepijat
Cetak output penyahpepijatan.

-D varname=nilai
--define=varname=nilai
Tentukan pembolehubah untuk digunakan oleh skrip tersuai (lihat di bawah). Pelbagai -D pilihan adalah
dibenarkan.

-f nama fail
--fail=nama fail
Baca skrip transaksi daripada nama fail. Lihat di bawah untuk butiran. -N, -S, dan -f adalah
saling eksklusif.

-j benang
--pekerjaan=benang
Bilangan benang pekerja dalam pgbench. Menggunakan lebih daripada satu utas boleh membantu
mesin berbilang CPU. Bilangan pelanggan mestilah gandaan bilangan utas,
kerana setiap utas diberi bilangan sesi pelanggan yang sama untuk diurus. Lalai ialah 1.

-l
--log
Tulis masa yang diambil oleh setiap transaksi ke fail log. Lihat di bawah untuk butiran.

-L menghadkan
--had-pendaman=menghadkan
Transaksi yang berlangsung lebih daripada menghadkan milisaat dikira dan dilaporkan
secara berasingan, lewat.

Apabila pendikit digunakan (--kadar=...), urus niaga yang tertinggal lebih daripada jadual
daripada menghadkan ms, dan dengan itu tidak mempunyai harapan untuk memenuhi had kependaman, tidak dihantar ke
pelayan sama sekali. Mereka dikira dan dilaporkan secara berasingan sebagai dilangkau.

-M mod pertanyaan
--protokol=mod pertanyaan
Protokol untuk digunakan untuk menghantar pertanyaan kepada pelayan:

· mudah: gunakan protokol pertanyaan mudah.

· lanjutan: gunakan protokol pertanyaan lanjutan.

· disediakan: gunakan protokol pertanyaan lanjutan dengan pernyataan yang disediakan.

Lalai ialah protokol pertanyaan mudah. (Lihat Bab 50, Frontend/Backend Protocol, dalam
dokumentasi untuk maklumat lanjut.)

-n
--tiada-vakum
Jangan lakukan vakum sebelum menjalankan ujian. Pilihan ini adalah perlu jika anda adalah
menjalankan senario ujian tersuai yang tidak termasuk jadual standard
pgbench_accounts, pgbench_branches, pgbench_history dan pgbench_tellers.

-N
--langkau-beberapa-kemas kini
Jangan kemas kini pgbench_tellers dan pgbench_branches. Ini akan mengelakkan perbalahan kemas kini
pada jadual ini, tetapi ia menjadikan kes ujian lebih kurang seperti TPC-B.

-P sec
--kemajuan=sec
Tunjukkan laporan kemajuan setiap saat. Laporan itu termasuk masa sejak
permulaan larian, tps sejak laporan terakhir, dan kependaman transaksi
purata dan sisihan piawai sejak laporan terakhir. Di bawah pendikit (-R),
kependaman dikira berkenaan dengan masa mula berjadual transaksi, bukan
masa permulaan transaksi sebenar, oleh itu ia juga termasuk lag jadual purata
pada bila-bila masa.

-r
--laporan-latensi
Laporkan purata kependaman setiap penyata (masa pelaksanaan daripada perspektif
klien) bagi setiap arahan selepas penanda aras selesai. Lihat di bawah untuk butiran.

-R kadar
--kadar=kadar
Laksanakan urus niaga yang menyasarkan kadar yang ditentukan dan bukannya berjalan sepantas
mungkin (lalai). Kadar diberikan dalam urus niaga sesaat. Jika yang disasarkan
kadar melebihi kadar maksimum yang mungkin, had kadar tidak akan memberi kesan kepada keputusan.

Kadar disasarkan dengan memulakan transaksi mengikut jadual yang diedarkan Poisson
garis masa. Jadual masa mula yang dijangka bergerak ke hadapan berdasarkan masa pelanggan
mula-mula dimulakan, bukan apabila transaksi sebelumnya berakhir. Pendekatan itu bermakna apabila
urus niaga melepasi masa tamat asal yang dijadualkan, adalah mungkin untuk yang kemudian
untuk mengejar semula.

Apabila pendikitan aktif, kependaman transaksi yang dilaporkan pada penghujung larian ialah
dikira daripada masa mula yang dijadualkan, jadi ia termasuk masa setiap transaksi
terpaksa menunggu transaksi sebelum ini selesai. Masa menunggu dipanggil
masa jeda jadual, dan purata dan maksimumnya juga dilaporkan secara berasingan. The
kependaman transaksi berkenaan dengan masa mula transaksi sebenar, iaitu masa
dibelanjakan untuk melaksanakan transaksi dalam pangkalan data, boleh dikira dengan menolak
menjadualkan masa ketinggalan daripada kependaman yang dilaporkan.

If --had kependaman digunakan bersama dengan --kadar, urus niaga boleh ketinggalan begitu banyak
bahawa ia sudah melebihi had kependaman apabila transaksi sebelumnya tamat, kerana
kependaman dikira dari masa mula yang dijadualkan. Urus niaga sedemikian tidak
dihantar ke pelayan, tetapi dilangkau sama sekali dan dikira secara berasingan.

Masa jeda jadual yang tinggi adalah petunjuk bahawa sistem tidak dapat memproses transaksi
pada kadar yang ditentukan, dengan bilangan pelanggan dan rangkaian yang dipilih. Apabila purata
masa pelaksanaan transaksi adalah lebih lama daripada selang yang dijadualkan antara setiap satu
transaksi, setiap transaksi berturut-turut akan ketinggalan lebih jauh, dan jadual
masa ketinggalan akan terus meningkat semakin lama ujian dijalankan. Apabila itu berlaku, anda akan melakukannya
perlu mengurangkan kadar transaksi yang ditetapkan.

-s faktor skala
--skala=faktor skala
Laporkan faktor skala yang ditentukan dalam output pgbench. Dengan ujian terbina dalam, ini
tidak perlu; faktor skala yang betul akan dikesan dengan mengira bilangan
baris dalam jadual pgbench_branches. Walau bagaimanapun, apabila menguji penanda aras tersuai (-f
pilihan), faktor skala akan dilaporkan sebagai 1 melainkan pilihan ini digunakan.

-S
--pilih-sahaja
Lakukan urus niaga terpilih sahaja dan bukannya ujian seperti TPC-B.

-t urus niaga
--transaksi=urus niaga
Bilangan transaksi yang dijalankan oleh setiap pelanggan. Lalai ialah 10.

-T saat
--masa=saat
Jalankan ujian selama beberapa saat ini, bukannya bilangan urus niaga tetap setiap
pelanggan. -t and -T saling eksklusif.

-v
--vakum-semua
Vakum keempat-empat jadual standard sebelum menjalankan ujian. Dengan tiada -n tidak -v,
pgbench akan mengosongkan jadual pgbench_tellers dan pgbench_branches, dan akan memotong
pgbench_history.

--agregat-selang=saat
Panjang selang pengagregatan (dalam saat). Boleh digunakan hanya bersama -l - dengan
pilihan ini, log mengandungi ringkasan setiap selang (bilangan transaksi, min/maks
kependaman dan dua medan tambahan yang berguna untuk anggaran varians).

Pilihan ini tidak disokong pada Windows pada masa ini.

--kadar-persampelan=kadar
Kadar pensampelan, digunakan semasa menulis data ke dalam log, untuk mengurangkan jumlah log
dihasilkan. Jika pilihan ini diberikan, hanya pecahan urus niaga yang ditentukan sahaja
dilog. 1.0 bermakna semua transaksi akan dilog, 0.05 bermakna hanya 5% daripada
urus niaga akan direkodkan.

Ingat untuk mengambil kira kadar pensampelan semasa memproses fail log. Untuk
contoh, apabila mengira nilai tps, anda perlu mendarabkan nombor dengan sewajarnya (cth
dengan 0.01 kadar sampel, anda hanya akan mendapat 1/100 daripada tps sebenar).

Common Pilihan
pgbench menerima hujah biasa baris arahan berikut:

-h nama hos
--tuan rumah=nama hos
Nama hos pelayan pangkalan data

-p pelabuhan
--port=pelabuhan
Nombor port pelayan pangkalan data

-U log masuk
--nama pengguna=log masuk
Nama pengguna untuk disambungkan sebagai

-V
--versi
Cetak versi pgbench dan keluar.

-?
- membantu
Tunjukkan bantuan tentang hujah baris arahan pgbench dan keluar.

NOTA


Servis is yang "Transaksi" Sebenarnya Dilakukan in pgbench?
Skrip transaksi lalai mengeluarkan tujuh arahan setiap transaksi:

1. BERMULA;

2. KEMASKINI pgbench_accounts SET abalance = abalance + :delta WHERE bantuan = :aid;

3. PILIH baki DARI pgbench_accounts WHERE aid = :aid;

4. KEMASKINI pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;

5. KEMASKINI pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;

6. INSERT IN TO pgbench_history (tid, bid, aid, delta, mtime) NILAI (:tid, :bid, :aid,
:delta, CURRENT_TIMESTAMP);

7. TAMAT;

Jika anda tentukan -N, langkah 4 dan 5 tidak termasuk dalam urus niaga. Jika anda nyatakan -S,
sahaja SELECT dikeluarkan.

Adat skrip
pgbench mempunyai sokongan untuk menjalankan senario penanda aras tersuai dengan menggantikan lalai
skrip transaksi (diterangkan di atas) dengan skrip transaksi dibaca daripada fail (-f
pilihan). Dalam kes ini, "urus niaga" dikira sebagai satu pelaksanaan fail skrip. Awak boleh
malah menentukan berbilang skrip (multiple -f pilihan), dalam hal ini satu rawak daripada
skrip dipilih setiap kali sesi pelanggan memulakan transaksi baharu.

Format fail skrip ialah satu arahan SQL setiap baris; arahan SQL berbilang talian tidak
disokong. Baris dan baris kosong yang bermula dengan -- diabaikan. Barisan fail skrip juga boleh
menjadi "perintah meta", yang ditafsirkan oleh pgbench itu sendiri, seperti yang diterangkan di bawah.

Terdapat kemudahan penggantian pembolehubah yang mudah untuk fail skrip. Pembolehubah boleh ditetapkan oleh
baris arahan -D pilihan, dijelaskan di atas, atau oleh arahan meta yang dijelaskan di bawah. Dalam
tambahan kepada sebarang pembolehubah yang dipratetap oleh -D pilihan baris arahan, terdapat beberapa pembolehubah
yang dipratetap secara automatik, disenaraikan dalam Jadual 221, "Pembolehubah automatik". Suatu nilai
ditentukan untuk pembolehubah ini menggunakan -D diutamakan daripada pratetap automatik. sekali
set, nilai pembolehubah boleh dimasukkan ke dalam arahan SQL dengan menulis:nama ubah. Apabila
menjalankan lebih daripada satu sesi klien, setiap sesi mempunyai set pembolehubahnya sendiri.

Jadual 221. automatik pembolehubah
-
PembolehubahPenerangan Produk
├──────────┼─────────────────┼──────────────────—․
│skala │ faktor skala semasa │
├──────────┼─────────────────┼──────────────────—․
│client_id │ nombor unik yang mengenal pasti │
│ │ sesi klien (bermula dari │
│ │ sifar) │
└──────────┴───────────────────‘───‘

Arahan meta fail skrip bermula dengan garis miring ke belakang (\). Argumen kepada arahan meta ialah
dipisahkan oleh ruang putih. Perintah meta ini disokong:

\set varname ungkapan
Menetapkan pembolehubah varname kepada nilai integer yang dikira daripada ungkapan. Ekspresi
mungkin mengandungi pemalar integer seperti 5432, rujukan kepada pembolehubah :nama ubah, dan
ungkapan yang terdiri daripada operator unari (-) atau binari (+, -, *, /, %) dengan biasa mereka
pergaulan, dan kurungan.

Contoh:

\set ntellers 10 * :skala
\set bantuan (1021 * :bantuan) % (100000 * :skala) + 1

\setrandom varname minit maks [ pakaian seragam | { gaussian | eksponen } parameter ]
Menetapkan pembolehubah varname kepada nilai integer rawak antara had minit and maks
inklusif. Setiap had boleh sama ada pemalar integer atau :nama ubah rujukan
kepada pembolehubah yang mempunyai nilai integer.

Secara lalai, atau apabila seragam ditentukan, semua nilai dalam julat dilukis dengan sama
kebarangkalian. Menentukan pilihan gaussian atau eksponen mengubah suai tingkah laku ini; setiap satu
memerlukan parameter mandatori yang menentukan bentuk taburan yang tepat.

Untuk taburan Gaussian, selang itu dipetakan pada normal piawai
taburan (lengkung Gaussian berbentuk loceng klasik) dipotong pada -parameter pada
kiri dan +parameter di sebelah kanan. Nilai di tengah selang lebih berkemungkinan
untuk dilukis. Tepatnya, jika PHI(x) ialah fungsi pengagihan kumulatif bagi
taburan normal piawai, dengan min mu ditakrifkan sebagai (maks + min) / 2.0, dengan

f(x) = PHI(2.0 * parameter * (x - mu) / (maks - min + 1)) /
(2.0 * PHI(parameter) - 1.0)

kemudian nilai i antara minit and maks inklusif dilukis dengan kebarangkalian: f(i + 0.5) - f(i
- 0.5). Secara intuitif, lebih besar parameter, semakin kerap nilai yang hampir dengan
tengah selang dilukis, dan nilai yang kurang kerap hampir dengan minit and
maks sempadan. Kira-kira 67% daripada nilai diambil dari 1.0 tengah / parameter, iaitu a
relatif 0.5 / parameter sekitar min, dan 95% di tengah 2.0 / parameter, itu
ialah relatif 1.0 / parameter sekitar min; sebagai contoh, jika parameter ialah 4.0, 67%
nilai diambil dari suku pertengahan (1.0 / 4.0) selang (iaitu dari 3.0
/ 8.0 hingga 5.0 / 8.0) dan 95% daripada separuh pertengahan (2.0 / 4.0) selang (kedua)
dan kuartil ketiga). Minimum parameter ialah 2.0 untuk prestasi Box-Muller
mengubah.

Untuk taburan eksponen, parameter mengawal pengedaran dengan memotong a
taburan eksponen menurun dengan cepat di parameter, dan kemudian unjurkan ke
integer antara sempadan. Untuk menjadi tepat, dengan

f(x) = exp(-parameter * (x - min) / (maks - min + 1)) / (1.0 - exp(-parameter))

Kemudian nilai i antara minit and maks inklusif dilukis dengan kebarangkalian: f(x) - f(x + 1).
Secara intuitif, lebih besar parameter, semakin kerap nilai yang hampir dengan minit adalah
diakses, dan nilai yang kurang kerap dekat dengan maks diakses. Semakin hampir kepada 0
parameter, pengagihan akses yang lebih rata (lebih seragam). Pengiraan kasar
daripada taburan ialah nilai 1% yang paling kerap dalam julat, hampir dengan minit,
dilukis parameter% masa. parameter nilai mestilah positif.

Contoh:

\setrandom aid 1 :naccounts gaussian 5.0

\tidur nombor [ kami | ms | s ]
Menyebabkan pelaksanaan skrip tidur untuk tempoh yang ditentukan dalam mikrosaat (kami),
milisaat (ms) atau saat (s). Jika unit ditinggalkan maka saat adalah lalai.
nombor boleh sama ada pemalar integer atau:nama ubah rujukan kepada pembolehubah
mempunyai nilai integer.

Contoh:

\tidur 10 ms

\setshell varname arahan [ hujah ... ]
Menetapkan pembolehubah varname kepada hasil arahan shell arahan. Perintah mesti
mengembalikan nilai integer melalui keluaran piawainya.

hujah boleh sama ada pemalar teks atau:nama ubah merujuk kepada pembolehubah daripada
sebarang jenis. Kalau nak guna hujah bermula dengan titik bertindih, anda perlu menambah satu
kolon tambahan pada permulaan hujah.

Contoh:

\setshell variable_to_be_assigned command literal_argument :variable ::literal_starting_with_colon

\cangkang arahan [ hujah ... ]
Sama seperti \setshell, tetapi hasilnya diabaikan.

Contoh:

\arahan shell literal_argument :variable ::literal_starting_with_colon

Sebagai contoh, definisi penuh transaksi seperti TPC-B terbina dalam ialah:

\set nbranches :skala
\set ntellers 10 * :skala
\set naccounts 100000 * :skala
\setrandom bantuan 1 :naccounts
\setrandom bida 1 :nbranches
\setrandom tid 1 :tellers
\setrandom delta -5000 5000
BERMULA;
KEMASKINI pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
PILIH baki DARI pgbench_accounts WHERE aid = :aid;
KEMASKINI pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
KEMASKINI pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
INSERT IN TO pgbench_history (tid, bid, aid, delta, mtime) NILAI (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
END;

Skrip ini membenarkan setiap lelaran transaksi merujuk kepada yang berbeza,
baris yang dipilih secara rawak. (Contoh ini juga menunjukkan mengapa ia penting untuk setiap sesi pelanggan
mempunyai pembolehubah sendiri - jika tidak, ia tidak akan menyentuh secara bebas yang berbeza
baris.)

Per-Transaksi Pembalakan
Dengan -l pilihan tetapi tanpa --agregat-selang, pgbench menulis masa yang diambil oleh
setiap transaksi ke fail log. Fail log akan dinamakan pgbench_log.nnn, Di mana nnn is
PID proses pgbench. Sekiranya -j pilihan ialah 2 atau lebih tinggi, mewujudkan berbilang pekerja
benang, setiap satu akan mempunyai fail log sendiri. Pekerja pertama akan menggunakan nama yang sama untuknya
fail log seperti dalam kes pekerja tunggal standard. Fail log tambahan untuk yang lain
pekerja akan dinamakan pgbench_log.nnn.mmm, Di mana mmm ialah nombor turutan bagi setiap satu
pekerja bermula dengan 1.

Format log ialah:

pelanggan_id transaksi_no masa fail_no zaman_masa masa_kita [jadual_lag]

di mana masa ialah jumlah masa transaksi berlalu dalam mikrosaat, fail_no mengenal pasti yang mana
fail skrip telah digunakan (berguna apabila berbilang skrip ditentukan dengan -f), Dan
zaman_masa/masa_kita ialah cap masa format zaman Unix dan offset dalam mikrosaat
(sesuai untuk mencipta cap masa ISO 8601 dengan saat pecahan) menunjukkan bila
transaksi selesai. Padang jadual_lag adalah perbezaan antara urus niaga
masa mula yang dijadualkan, dan masa ia sebenarnya bermula, dalam mikrosaat. Ia hanya
hadir apabila --kadar pilihan digunakan. Medan terakhir melangkau_transaksi melaporkan
bilangan urus niaga dilangkau kerana terlalu jauh dari jadual. Ia hanya
hadir apabila kedua-dua pilihan --kadar and --had kependaman digunakan.

Berikut ialah coretan fail log yang dijana:

0 199 2241 0 1175850568 995598
0 200 2465 0 1175850568 998079
0 201 2513 0 1175850569 608
0 202 2038 0 1175850569 2663

Contoh lain dengan --rate=100 dan --latency-limit=5 (perhatikan tambahan jadual_lag
ruangan):

0 81 4621 0 1412881037 912698 3005
0 82 6173 0 1412881037 914578 4304
0 83 dilangkau 0 1412881037 914578 5217
0 83 dilangkau 0 1412881037 914578 5099
0 83 4722 0 1412881037 916203 3108
0 84 4142 0 1412881037 918023 2333
0 85 2465 0 1412881037 919759 740

Dalam contoh ini, transaksi 82 ​​lewat, kerana kependaman (6.173 ms) melebihi 5
had ms. Dua transaksi seterusnya telah dilangkau, kerana mereka sudah lewat sebelum ini
mereka pun dimulakan.

Apabila menjalankan ujian panjang pada perkakasan yang boleh mengendalikan banyak transaksi, fail log
boleh menjadi sangat besar. The --kadar persampelan pilihan boleh digunakan untuk log hanya sampel rawak
daripada urus niaga.

Agregat Pembalakan
Dengan --agregat-selang pilihan, log menggunakan format yang sedikit berbeza:

selang_mula bilangan_urus niaga jumlah_pendaman latensi_2_jumlah min_latency max_latency [lag_sum lag_2_sum min_lag max_lag [melangkau_transaksi]]

di mana selang_mula ialah permulaan selang (cap masa format zaman Unix),
bilangan_urus niaga ialah bilangan urus niaga dalam selang waktu, jumlah_pendaman ialah
jumlah latensi (supaya anda boleh mengira purata latensi dengan mudah). Dua medan berikut ialah
berguna untuk anggaran varians - jumlah_pendaman ialah jumlah latensi dan latensi_2_jumlah ialah
jumlah kuasa kependaman kedua. Dua medan terakhir ialah min_latency - kependaman minimum
dalam selang waktu, dan max_latency - kependaman maksimum dalam selang waktu. Satu transaksi
dikira ke dalam selang apabila ia dilakukan. Padang akhirnya, lag_sum,
lag_2_sum, min_lag, dan max_lag, hanya hadir jika --kadar pilihan digunakan. Yang sangat
yang terakhir, melangkau_transaksi, hanya ada jika pilihan --had kependaman hadir,
juga. Mereka dikira dari masa setiap transaksi terpaksa menunggu yang sebelumnya
untuk menyelesaikan, iaitu perbezaan antara masa mula dijadualkan setiap transaksi dan
masa ia sebenarnya bermula.

Berikut adalah contoh output:

1345828501 5601 1542744 483552416 61 2573
1345828503 7884 1979812 565806736 60 1479
1345828505 7208 1979422 567277552 59 1391
1345828507 7685 1980268 569784714 60 1398
1345828509 7073 1979779 573489941 236 1411

Perhatikan bahawa sementara fail log biasa (tidak terkumpul) mengandungi indeks skrip tersuai
fail, log agregat tidak. Oleh itu jika anda memerlukan setiap data skrip, anda perlu
agregat data anda sendiri.

Per-Penyata Latitud
Dengan -r pilihan, pgbench mengumpul masa transaksi berlalu bagi setiap penyata
dilaksanakan oleh setiap pelanggan. Ia kemudian melaporkan purata nilai tersebut, dirujuk sebagai
kependaman untuk setiap pernyataan, selepas penanda aras selesai.

Untuk skrip lalai, output akan kelihatan seperti ini:

bermula vakum...akhir.
jenis transaksi: TPC-B (semacam)
faktor skala: 1
mod pertanyaan: mudah
bilangan pelanggan: 10
bilangan benang: 1
bilangan transaksi bagi setiap pelanggan: 1000
bilangan urus niaga yang sebenarnya diproses: 10000/10000
tps = 618.764555 (termasuk sambungan mewujudkan)
tps = 622.977698 (tidak termasuk sambungan mewujudkan)
kependaman pernyataan dalam milisaat:
0.004386 \tetapkan n cawangan 1 * :skala
0.001343 \set pembicara 10 * :skala
0.001212 \set naccounts 100000 * :skala
0.001310 \bantuan setrandom 1 :naccounts
0.001073 \setrandom bid 1 :nbranches
0.001005 \setrandom tid 1 :tellers
0.001078 \setrandom delta -5000 5000
0.326152 BERMULA;
0.603376 KEMASKINI pgbench_accounts SET imbangan = abalance + :delta WHERE bantuan = :aid;
0.454643 PILIH baki DARI pgbench_accounts WHERE aid = :aid;
5.528491 KEMASKINI pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
7.335435 KEMASKINI pgbench_branches SET bbaki = bbaki + :delta WHERE bid = :bid;
0.371851 INSERT IN TO pgbench_history (tid, bid, aid, delta, mtime) NILAI (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
1.212976 TAMAT;

Jika berbilang fail skrip ditentukan, puratanya dilaporkan secara berasingan untuk setiap satu
fail skrip.

Ambil perhatian bahawa mengumpul maklumat masa tambahan yang diperlukan untuk kependaman setiap penyata
pengiraan menambah beberapa overhed. Ini akan memperlahankan kelajuan pelaksanaan purata dan menurunkan
TPS yang dikira. Jumlah kelembapan berbeza dengan ketara bergantung pada platform dan
perkakasan. Membandingkan purata nilai TPS dengan dan tanpa pelaporan kependaman didayakan ialah a
cara yang baik untuk mengukur jika overhed pemasaan adalah penting.

Baik Amalan
Sangat mudah untuk menggunakan pgbench untuk menghasilkan nombor yang tidak bermakna sama sekali. Berikut adalah beberapa
garis panduan untuk membantu anda mendapatkan hasil yang berguna.

Di tempat pertama, pernah percaya mana-mana ujian yang berjalan selama beberapa saat sahaja. Menggunakan -t or
-T pilihan untuk membuat larian berlangsung sekurang-kurangnya beberapa minit, untuk mengurangkan bunyi bising secara purata. Di sesetengah
kes anda mungkin memerlukan berjam-jam untuk mendapatkan nombor yang boleh diterbitkan semula. Ia adalah idea yang baik untuk mencuba
ujian dijalankan beberapa kali, untuk mengetahui sama ada nombor anda boleh dibuat semula atau tidak.

Untuk senario ujian lalai seperti TPC-B, faktor skala permulaan (-s) semestinya
sekurang-kurangnya sama besar dengan bilangan terbesar pelanggan yang anda ingin uji (-c); lain anda akan
kebanyakannya mengukur perbalahan kemas kini. Ada sahaja -s baris dalam pgbench_branches
jadual, dan setiap transaksi mahu mengemas kini salah satu daripadanya, jadi -c nilai yang melebihi -s
sudah pasti akan mengakibatkan banyak transaksi disekat menunggu transaksi lain.

Senario ujian lalai juga agak sensitif terhadap tempoh masa sejak jadual
telah dimulakan: pengumpulan baris mati dan ruang mati dalam jadual mengubah
keputusan. Untuk memahami keputusan anda mesti menjejaki jumlah kemas kini dan
apabila vakum berlaku. Jika autovakum didayakan, ia boleh mengakibatkan perubahan yang tidak dapat diramalkan
prestasi yang diukur.

Batasan pgbench ialah ia sendiri boleh menjadi hambatan apabila cuba menguji a
bilangan sesi pelanggan yang besar. Ini boleh dikurangkan dengan menjalankan pgbench pada yang berbeza
mesin daripada pelayan pangkalan data, walaupun kependaman rangkaian rendah akan menjadi penting. Ia mungkin
malah berguna untuk menjalankan beberapa contoh pgbench secara serentak, pada beberapa mesin pelanggan,
terhadap pelayan pangkalan data yang sama.

Gunakan pgbench dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

  • 1
    Phaser
    Phaser
    Phaser ialah permainan terbuka yang pantas, percuma dan menyeronokkan
    sumber rangka kerja permainan HTML5 yang menawarkan
    Penyampaian WebGL dan Kanvas merentas
    pelayar web desktop dan mudah alih. Permainan
    boleh bersama...
    Muat turun Phaser
  • 2
    Enjin VASSAL
    Enjin VASSAL
    VASSAL ialah enjin permainan untuk mencipta
    versi elektronik papan tradisional
    dan permainan kad. Ia memberikan sokongan untuk
    rendering dan interaksi sekeping permainan,
    dan ...
    Muat turun Enjin VASSAL
  • 3
    OpenPDF - Fork iText
    OpenPDF - Fork iText
    OpenPDF ialah perpustakaan Java untuk mencipta
    dan mengedit fail PDF dengan LGPL dan
    Lesen sumber terbuka MPL. OpenPDF ialah
    LGPL/MPL pengganti sumber terbuka iText,
    yang ...
    Muat turun OpenPDF - Fork of iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Sistem untuk Automatik
    Analisis Geosainifik - ialah Geografi
    Perisian Sistem Maklumat (GIS) dengan
    keupayaan yang besar untuk geodata
    pemprosesan dan ana...
    Muat turun SAGA GIS
  • 5
    Kotak alat untuk Java/JTOpen
    Kotak alat untuk Java/JTOpen
    Kotak Alat IBM untuk Java / JTOpen ialah a
    perpustakaan kelas Java yang menyokong
    klien/pelayan dan pengaturcaraan internet
    model kepada sistem yang menjalankan OS/400,
    i5/OS, o...
    Muat turun Toolbox untuk Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (atau D3 untuk Dokumen Dipacu Data)
    ialah perpustakaan JavaScript yang membolehkan anda
    untuk menghasilkan data yang dinamik dan interaktif
    visualisasi dalam pelayar web. Dengan D3
    awak ...
    Muat turun D3.js
  • Lebih »

Arahan Linux

Ad