PGBench - Chạy thử nghiệm điểm chuẩn trênPostgreSQL
PGBench
-I
[Tùy kèo bóng đá c1
...] [dbname
]
PGBench
[Tùy kèo bóng đá c1
...] [dbname
]
PGBenchlà một chương trình đơn giản để chạy kèo bóng đá c1 bài kiểm tra điểm chuẩn trênPostgreSQL. Nó chạy cùng một chuỗi kèo bóng đá c1 lệnh SQL nhiều lần, có thể trong nhiều phiên cơ sở dữ liệu đồng thời, sau đó tính toán tỷ lệ giao dịch trung bình (giao dịch mỗi giây).PGBenchKiểm tra kèo bóng đá c1 kịch bản dựa trên TPC-B, liên quan đến nămkèo bóng đá c1
,Cập nhật
vàChèn
lệnh cho mỗi giao dịch. Tuy nhiên, thật dễ dàng để kiểm tra kèo bóng đá c1 trường hợp khác bằng cách viết kèo bóng đá c1 tệp tập lệnh giao dịch của riêng bạn.
Đầu ra điển hình từPGBenchCó vẻ như:
Loại kèo bóng đá c1: <Buildin: TPC-B (loại)
Bảy dòng đầu tiên báo cáo một số cài đặt tham số quan trọng nhất. Dòng thứ sáu báo cáo số lần thử tối đa cho kèo bóng đá c1 giao dịch có lỗi tuần tự hóa hoặc bế tắc (xemThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin). Dòng thứ tám báo cáo số lượng kèo bóng đá c1 đã hoàn thành và dự định (sau này chỉ là sản phẩm của số lượng khách hàng và số lượng kèo bóng đá c1 trên mỗi khách hàng);-T
Chế độ, chỉ có số lượng kèo bóng đá c1 thực tế được in.) Dòng tiếp theo báo cáo số lượng kèo bóng đá c1 thất bại do nối tiếp hoặc lỗi bế tắc (xemThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin). Dòng cuối cùng báo cáo số lượng kèo bóng đá c1 mỗi giây.
Kiểm tra giao dịch TPC-B mặc định yêu cầu kèo bóng đá c1 bảng cụ thể được thiết lập trước.PGBenchnên được gọi bằng-I
(Khởi tạo) Tùy chọn để tạo và điền vào kèo bóng đá c1 bảng này. .
pgbench -i [tùy kèo bóng đá c1 khác
]dbname
WHEREdbname
là tên của cơ sở dữ kèo bóng đá c1 đã được tạo để kiểm tra. (Bạn cũng có thể cần-H
,-P
, và/hoặc-U
Tùy chọn để chỉ định cách kết nối với máy chủ cơ sở dữ kèo bóng đá c1.)
pgbench -i
Tạo bốn bảngpgbench_accounts
,pgbench_branches
,pgbench_history
vàpgbench_tellers
, Phá hủy bất kỳ bảng hiện có nào của kèo bóng đá c1 tên này. Hãy cẩn thận khi sử dụng cơ sở dữ liệu khác nếu bạn có kèo bóng đá c1 bảng có kèo bóng đá c1 tên này!
tại mặc địnhYếu tố tỷ lệcủa 1, kèo bóng đá c1 bảng ban đầu chứa nhiều hàng này:
Bảng # hàng
Bạn có thể (và, cho hầu hết kèo bóng đá c1 mục đích, có lẽ nên) tăng số lượng hàng bằng cách sử dụng-S
(Hệ số tỷ lệ) tùy kèo bóng đá c1. The-f
(fillfactor) cũng có thể được sử dụng tại thời điểm này.
Khi bạn đã thực hiện thiết lập cần thiết, bạn có thể chạy điểm chuẩn của mình bằng một lệnh kèo bóng đá c1 bao gồm-I
, đó là
pgbench [Tùy kèo bóng đá c1
]dbname
Trong hầu hết kèo bóng đá c1 trường hợp, bạn sẽ cần một số tùy chọn để thực hiện một bài kiểm tra hữu ích. kèo bóng đá c1 tùy chọn quan trọng nhất là-C
(số lượng khách hàng),-T
(số lượng kèo bóng đá c1),-T
(giới hạn thời gian) và-f
(Chỉ định tệp tập kèo bóng đá c1 tùy chỉnh). Xem bên dưới để biết danh sách đầy đủ.
Sau đây được chia thành ba tiểu mục. kèo bóng đá c1 tùy chọn khác nhau được sử dụng trong quá trình khởi tạo cơ sở dữ liệu và trong khi chạy điểm chuẩn, nhưng một số tùy chọn rất hữu ích trong cả hai trường hợp.
PGBenchChấp nhận kèo bóng đá c1 đối số khởi tạo dòng lệnh sau:
dbname
Chỉ định tên của cơ sở dữ liệu để kiểm tra. Nếu điều này kèo bóng đá c1 được chỉ định, biến môi trườngpgdatabase
được sử dụng. Nếu đó kèo bóng đá c1 được đặt, tên người dùng được chỉ định cho kết nối được sử dụng.
-i
--initialize
Yêu cầu gọi chế độ khởi tạo.
-Iinit_steps
--init-bước =init_steps
Thực hiện chỉ một tập hợp kèo bóng đá c1 bước khởi tạo bình thường được chọn.init_steps
Chỉ định kèo bóng đá c1 bước khởi tạo sẽ được thực hiện, sử dụng một ký tự mỗi bước. Mỗi bước được gọi theo thứ tự được chỉ định.DTGVP
. kèo bóng đá c1 bước có sẵn là:
D
(thả)Thả bất kỳ hiện tạiPGBenchBảng.
T
(Tạo bảng)Tạo kèo bóng đá c1 bảng được sử dụng bởi tiêu chuẩnPGBenchKịch bản, cụ thể làPGBench_Accounts
,pgbench_branches
,pgbench_history
vàpgbench_tellers
.
g
hoặcg
(Tạo dữ kèo bóng đá c1, phía máy khách hoặc phía máy chủ)Tạo dữ liệu và tải nó vào kèo bóng đá c1 bảng tiêu chuẩn, thay thế bất kỳ dữ liệu nào đã có.
vớig
(Tạo dữ kèo bóng đá c1 phía máy khách), dữ kèo bóng đá c1 được tạo trongPGBench
Máy khách và sau đó được gửi đến máy chủ. Điều này sử dụng băng thông máy khách/máy chủ rộng rãi thông qua ACopy
.PGBench
Sử dụng tùy kèo bóng đá c1 đóng băng với phiên bản 14 trở lên củaPostgreSQLĐể tăng tốc độ tiếp theoVACUUM
, trừ khi kèo bóng đá c1 phân vùng được bật. Sử dụngg
gây ra việc đăng nhập để in kèo bóng đá c1 thông báo mỗi 100.000 hàng trong khi tạo dữ liệu chopgbench_accounts
Bảng.
vớig
(Tạo dữ liệu phía máy chủ), chỉ kèo bóng đá c1 truy vấn nhỏ được gửi từPGBench
Khách hàng và sau đó dữ liệu thực sự được tạo trong máy chủ. kèo bóng đá c1 cần băng thông đáng kể cho biến thể này, nhưng máy chủ sẽ làm nhiều việc hơn.g
gây ra việc ghi nhật ký kèo bóng đá c1 in bất kỳ thông báo tiến trình nào trong khi tạo dữ liệu.
Hành vi khởi tạo mặc định sử dụng tạo dữ kèo bóng đá c1 phía máy khách (tương đương vớig
).
V
(chân kèo bóng đá c1)GọiNút hút
Trên kèo bóng đá c1 bảng tiêu chuẩn.
P
(Tạo khóa chính)Tạo kèo bóng đá c1 chỉ mục khóa chính trên kèo bóng đá c1 bảng tiêu chuẩn.
f
(Tạo khóa ngoại)Tạo kèo bóng đá c1 ràng buộc khóa nước ngoài giữa kèo bóng đá c1 bảng tiêu chuẩn. (Lưu ý rằng bước này không được thực hiện theo mặc định.)
-f
fillfactor
-fligfactor =
fillfactor
Tạopgbench_accounts
,pgbench_tellers
vàpgbench_branches
Bảng với fillfactor đã cho. Mặc định là 100.
-N
--No-Vacuum
kèo bóng đá c1 thực hiện kèo bóng đá c1 hút bụi trong quá trình khởi tạo. (Tùy chọn này ngăn chặnV
Bước khởi tạo, ngay cả khi nó được chỉ định trong-i
.)
-Q
--quiet
Chuyển đổi đăng nhập sang chế độ yên tĩnh, chỉ tạo kèo bóng đá c1 thông báo tiến trình mỗi 5 giây. Ghi nhật ký mặc định in kèo bóng đá c1 thông báo mỗi 100.000 hàng, thường xuất ra nhiều dòng mỗi giây (đặc biệt là trên phần cứng tốt).
Cài đặt này kèo bóng đá c1 có hiệu lực nếug
được chỉ định trong-I
.
-S
scale_factor
--scale =
Scale_Factor
Nhân số lượng hàng được tạo bởi hệ số tỷ lệ. Ví dụ,-S 100
sẽ tạo 10.000.000 hàng trongpgbench_accounts
Bảng. Mặc định là 1. Khi tỷ lệ là 20.000 hoặc lớn hơn, kèo bóng đá c1 cột được sử dụng để giữ số nhận dạng tài khoản (AID
cột) sẽ chuyển sang sử dụng kèo bóng đá c1 số nguyên lớn hơn (Bigint
), để đủ lớn để giữ phạm vi nhận dạng tài khoản.
-Eforign-Chốt
Tạo kèo bóng đá c1 ràng buộc khóa nước ngoài giữa kèo bóng đá c1 bảng tiêu chuẩn. (Tùy chọn này thêmf
Bước vào chuỗi bước khởi tạo, nếu nó chưa có mặt.)
--index-tableSpace =index_tablespace
Tạo kèo bóng đá c1 chỉ mục trong không gian bảng được chỉ định, thay vì không gian bảng mặc định.
--Phân cộng-method =tên
Tạo kèo bóng đá c1 phân vùngpgbench_accounts
Bảng vớitên
Phương pháp. Giá trị dự kiến làphạm vi
hoặcHash
. Tùy kèo bóng đá c1 này yêu cầu rằng--Đoạn
được đặt thành khác kèo bóng đá c1. Nếu kèo bóng đá c1 xác định, mặc định làphạm vi
.
--Tiểu phần =num
Tạo kèo bóng đá c1 phân vùngPGBench_Accounts
Bảng vớinum
Phân vùng có kích thước gần như bằng nhau cho số lượng tài khoản được chia tỷ lệ. Mặc định là0
, có nghĩa là kèo bóng đá c1 có phân vùng.
--TableSpace =kèo bóng đá c1 gian bảng
Tạo kèo bóng đá c1 bảng trong không gian bảng được chỉ định, thay vì không gian bảng mặc định.
--Unlogged-fables
Tạo tất cả kèo bóng đá c1 bảng dưới dạng kèo bóng đá c1 bảng chưa được tính, thay vì kèo bóng đá c1 bảng vĩnh viễn.
PGBenchChấp nhận kèo bóng đá c1 đối số điểm chuẩn dòng sau:
-B
scriptName [@weight]
-Builtin
=scriptName [@weight]
Thêm tập lệnh tích hợp được chỉ định vào danh sách kèo bóng đá c1 tập lệnh sẽ được thực thi. kèo bóng đá c1 tập lệnh tích hợp có sẵn là:TPCB giống như
,Đơn giản Update
vàChỉ kèo bóng đá c1
. Tiền tố rõ ràng của kèo bóng đá c1 tên tích hợp được chấp nhận.Danh sách
, Hiển thị danh sách kèo bóng đá c1 tập lệnh tích hợp và thoát ngay lập tức.
Tùy kèo bóng đá c1, viết trọng lượng số nguyên sau@
Để điều chỉnh xác suất chọn tập lệnh này so với kèo bóng đá c1 tập lệnh khác. Trọng lượng mặc định là 1. Xem bên dưới để biết chi tiết.
-C
Khách hàng
--Client =
Khách hàng
Số lượng khách hàng mô phỏng, nghĩa là, số phiên cơ sở dữ kèo bóng đá c1 đồng thời. Mặc định là 1.
-C
--Connect
Thiết lập kết nối mới cho mỗi kèo bóng đá c1, thay vì thực hiện nó chỉ một lần mỗi phiên khách. Điều này rất hữu ích để đo chi phí kết nối.
-D
-Debug
Đầu ra gỡ lỗi in.
-D
varname
=
giá trị
--DEFINE =
varname
=
giá trị
Xác định kèo bóng đá c1 biến được sử dụng bởi tập lệnh tùy chỉnh (xem bên dưới). Nhiều-D
Tùy kèo bóng đá c1 được cho phép.
-f
FileName [@weight]
--file =
FileName [@weight]
Thêm tập lệnh kèo bóng đá c1 đọc từFileName
đến danh sách kèo bóng đá c1 tập lệnh sẽ được thực thi.
Tùy kèo bóng đá c1, viết trọng lượng số nguyên sau@
Để điều chỉnh xác suất chọn tập lệnh này so với kèo bóng đá c1 tập lệnh khác. Trọng lượng mặc định là 1. (Để sử dụng tên tệp tập lệnh bao gồm@
ký tự, nối trọng lượng để kèo bóng đá c1 có sự mơ hồ, ví dụfilen@me@1
.) Xem bên dưới để biết chi tiết.
-J
Chủ đề
--Jobs =
Chủ đề
Số lượng chủ đề công nhân trongPGBench. Sử dụng nhiều hơn một luồng có thể hữu ích trên kèo bóng đá c1 máy đa CPU.
-L
--log
Viết thông tin về mỗi kèo bóng đá c1 vào tệp nhật ký. Xem bên dưới để biết chi tiết.
-L
Giới hạn
-Latency-limit =
Giới hạn
kèo bóng đá c1 tồn tại nhiều hơngiới hạn
mili giây được tính và báo cáo riêng, làmuộn.
Khi sử dụng điều chỉnh (--Rate = ...
), kèo bóng đá c1 giao dịch chậm trễ theo lịch trình nhiều hơngiới hạn
MS, và do đó kèo bóng đá c1 có hy vọng đáp ứng giới hạn độ trễ, hoàn toàn kèo bóng đá c1 được gửi đến máy chủ. Chúng được tính và báo cáo riêng làBỏ qua.
Khi--Max-Tries
Tùy chọn được sử dụng, một giao dịch không thành công do dị thường tuần tự hóa hoặc từ bế tắc sẽ không được thử lại nếu tổng thời gian của tất cả kèo bóng đá c1 lần thử của nó lớn hơnGiới hạn
MS. Để chỉ giới hạn thời gian thử và kèo bóng đá c1 phải số của họ, hãy sử dụng--Max-Tries = 0
. Theo mặc định, tùy kèo bóng đá c1--Max-Tries
được đặt thành 1 và kèo bóng đá c1 giao dịch có lỗi tuần tự hóa/bế tắc không được thử lại. Nhìn thấyThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin về việc thử lại kèo bóng đá c1 giao dịch đó.
-M
QueryMode
--Protocol =
QueryMode
kèo bóng đá c1 thức sử dụng để gửi truy vấn đến máy chủ:
đơn giản
: Sử dụng kèo bóng đá c1 thức truy vấn đơn giản.
mở rộng
: Sử dụng kèo bóng đá c1 thức truy vấn mở rộng.
Chuẩn bị
: Sử dụng giao thức truy vấn mở rộng với kèo bóng đá c1 câu lệnh đã chuẩn bị.
TrongChuẩn bị
chế độ,PGBenchTái sử dụng kết quả phân tích phân tích bắt đầu từ lần lặp truy vấn thứ hai, vì vậyPGBenchChạy nhanh hơn kèo bóng đá c1 chế độ khác.
Mặc định là kèo bóng đá c1 thức truy vấn đơn giản. (Nhìn thấyChương 55Để biết thêm thông tin.)
-N
--No-Vacuum
Thực hiện kèo bóng đá c1 có hút bụi trước khi chạy thử nghiệm. Tùy chọn này làcần thiếtNếu bạn đang chạy một kịch bản kiểm tra tùy chỉnh không bao gồm kèo bóng đá c1 bảng tiêu chuẩnPGBench_Accounts
,pgbench_branches
,pgbench_history
vàPGBench_Tellers
.
-N
--skip-some-updates
Chạy tập kèo bóng đá c1 cập nhật đơn giản tích hợp. Tốc ký cho-B Đơn giản Update
.
-P
Sec
--ProTHER =
Sec
Hiển thị báo cáo tiến độ mỗiSec
giây. Báo cáo bao gồm thời gian kể từ khi bắt đầu lần chạy, TPS kể từ báo cáo cuối cùng và trung bình độ trễ kèo bóng đá c1, độ lệch chuẩn và số lượng kèo bóng đá c1 thất bại kể từ báo cáo cuối cùng.-R
), độ trễ được tính toán liên quan đến thời gian bắt đầu theo lịch trình giao dịch, kèo bóng đá c1 phải là thời gian bắt đầu giao dịch thực tế, do đó nó cũng bao gồm thời gian trễ lịch trình trung bình. Khi--Max-Tries
được sử dụng để cho phép thử lại kèo bóng đá c1 sau khi tuần tự hóa/bế tắc
-R
Báo cáo kèo bóng đá c1 số liệu thống kê sau cho mỗi lệnh sau khi kết thúc điểm chuẩn: độ trễ trung bình trên mỗi statement (thời gian thực hiện từ quan điểm của khách hàng), số lần thất bại và số lần thử lại sau khi tuần tự hóa hoặc tình trạng bế tắc trong lệnh này. Báo cáo chỉ hiển thị số liệu thống kê thử lại nếu--Max-Tries
Tùy chọn kèo bóng đá c1 bằng 1.
-R
Rate
--Rate =
RATE
Thực hiện kèo bóng đá c1 giao dịch nhắm mục tiêu tỷ lệ được chỉ định thay vì chạy nhanh nhất có thể (mặc định). Tỷ lệ được đưa ra trong kèo bóng đá c1 giao dịch mỗi giây.
Tỷ lệ được nhắm mục tiêu bằng cách bắt đầu kèo bóng đá c1 giao dịch dọc theo dòng thời gian lịch trình phân phối Poisson. Lịch thời gian bắt đầu dự kiến di chuyển về phía trước dựa trên khi khách hàng bắt đầu, không phải khi giao dịch trước đó kết thúc.
Khi điều chỉnh hoạt động, độ trễ kèo bóng đá c1 được báo cáo khi kết thúc lần chạy được tính từ thời gian bắt đầu theo lịch trình, do đó, bao gồm thời gian mỗi kèo bóng đá c1 phải chờ kèo bóng đá c1 trước đó kết thúc. Thời gian chờ được gọi là thời gian trễ lịch trình, và trung bình và tối đa của nó cũng được báo cáo riêng.
nếu-Latency-Limit
được sử dụng cùng với--Rate
, một giao dịch có thể tụt lại phía sau đến mức đã vượt quá giới hạn độ trễ khi giao dịch trước đó kết thúc, vì độ trễ được tính từ thời gian bắt đầu theo lịch trình. kèo bóng đá c1 giao dịch như vậy không được gửi đến máy chủ, nhưng được bỏ qua hoàn toàn và được tính riêng.
Thời gian trễ lịch trình cao là một dấu hiệu cho thấy hệ thống không thể xử lý kèo bóng đá c1 giao dịch theo tỷ lệ được chỉ định, với số lượng khách hàng và luồng được chọn. Khi thời gian thực hiện giao dịch trung bình dài hơn khoảng thời gian theo lịch trình giữa mỗi giao dịch, mỗi giao dịch liên tiếp sẽ tụt lại phía sau và thời gian trễ lịch trình sẽ tiếp tục tăng lâu hơn.
-S
scale_factor
--scale =
Scale_Factor
Báo cáo hệ số tỷ lệ được chỉ định trongPGBenchđầu ra. Với kèo bóng đá c1 bài kiểm tra tích hợp, điều này là không cần thiết;pgbench_branches
Bảng. Tuy nhiên, khi chỉ kiểm tra điểm chuẩn tùy chỉnh (-f
Tùy kèo bóng đá c1), hệ số tỷ lệ sẽ được báo cáo là 1 trừ khi tùy kèo bóng đá c1 này được sử dụng.
-S
--select chỉ
Chạy tập kèo bóng đá c1 chỉ chọn tích hợp. Tốc ký cho-B CHỌN CHỈ
.
-T
kèo bóng đá c1
--TransActions =
kèo bóng đá c1
Số lượng kèo bóng đá c1 mỗi khách hàng chạy. Mặc định là 10.
-T
giây
-thời gian =
giây
Chạy thử nghiệm trong nhiều giây này, thay vì số lượng kèo bóng đá c1 cố định cho mỗi máy khách.-T
và-T
là loại trừ lẫn nhau.
-V
--vacuum-all
Chacuum Tất cả bốn bảng tiêu chuẩn trước khi chạy thử nghiệm. kèo bóng đá c1 có-N
Nor-V
,PGBenchSẽ hút bụipgbench_tellers
vàpgbench_branches
Bảng và sẽ cắt ngắnpgbench_history
.
--Ggregate-interval =giây
Độ dài của khoảng thời gian tổng hợp (tính bằng giây). Chỉ có thể được sử dụng với-L
Tùy chọn. Với tùy chọn này, nhật ký chứa dữ kèo bóng đá c1 tóm tắt trên khoảng thời gian, như được mô tả bên dưới.
--Failures-Detailed
Báo cáo thất bại trong Nhật ký giao dịch và tập hợp, cũng như trong kèo bóng đá c1 báo cáo chính và trên mỗi kịch bản, được nhóm theo kèo bóng đá c1 loại sau:
Thất bại tuần tự hóa;
thất bại;
xemThất bại và tuần tự hóa/lần thử lạiĐể biết thêm thông tin.
-log-prefix =tiền tố
Đặt tiền tố tệp cho kèo bóng đá c1 tệp nhật ký được tạo bởi--log
. Mặc định làpgbench_log
.
--Max-Tries =number_of_tries
Kích hoạt thử lại cho kèo bóng đá c1 giao dịch có lỗi tuần tự hóa/bế tắc và đặt số lượng tối đa của kèo bóng đá c1 lần thử này. Tùy chọn này có thể được kết hợp với-Latency-Limit
Tùy chọn giới hạn tổng thời gian của tất cả kèo bóng đá c1 lần thử giao dịch; Hơn nữa, bạn không thể sử dụng một số lần thử không giới hạn (--Max-Tries = 0
) kèo bóng đá c1 có-Latency-Limit
hoặc-thời gian
. Giá trị mặc định là 1 và kèo bóng đá c1 giao dịch có lỗi tuần tự hóa/bế tắc không được thử lại.Thất bại và tuần tự hóa/lần thử lạiĐể biết thêm thông tin về việc thử lại kèo bóng đá c1 giao dịch đó.
-ProTros-Timestamp
Khi hiển thị tiến trình (tùy kèo bóng đá c1-P
), Sử dụng dấu thời gian (Epoch Unix) thay vì số giây kể từ khi bắt đầu chạy. Đơn vị này trong vài giây, với độ chính xác mili giây sau dấu chấm.
-random-seed =
hạt giống
Đặt hạt giống máy phát ngẫu nhiên. Hạt giống Trình tạo số ngẫu nhiên của hệ thống, sau đó tạo ra một chuỗi kèo bóng đá c1 trạng thái máy phát ban đầu, một cho mỗi luồng.hạt giống
có thể là:Thời gian
(Mặc định, hạt giống dựa trên thời gian hiện tại),rand
(Sử dụng nguồn ngẫu nhiên mạnh, kèo bóng đá c1 thành công nếu kèo bóng đá c1 có) hoặc giá trị số nguyên thập phân kèo bóng đá c1 dấu. Trình tạo ngẫu nhiên được gọi rõ ràng từ tập lệnh PGBench (ngẫu nhiên ...
chức năng) hoặc ngầm (ví dụ tùy kèo bóng đá c1--Rate
Sử dụng nó để lên lịch kèo bóng đá c1). Khi được thiết lập rõ ràng, giá trị được sử dụng để gieo hạt được hiển thị trên thiết bị đầu cuối.hạt giống
cũng có thể được cung cấp thông qua biến môi trườngpgbench_random_seed
. Để đảm bảo rằng hạt giống được cung cấp ảnh hưởng đến tất cả kèo bóng đá c1 mục đích sử dụng có thể, hãy đặt tùy chọn này lên hàng đầu hoặc sử dụng biến môi trường.
Đặt hạt giống cho phép tái tạo kèo bóng đá c1PGBench
Chạy chính xác, theo như kèo bóng đá c1 số ngẫu nhiên có liên quan. Vì trạng thái ngẫu nhiên được quản lý cho mỗi luồng, điều này có nghĩa là chính xácPGBench
Chạy cho một lời cầu khẩn giống hệt nhau nếu có một máy khách trên mỗi luồng và kèo bóng đá c1 có phụ thuộc bên ngoài hoặc dữ liệu. Từ một quan điểm thống kê tái tạo chính xác là một ý tưởng xấu bởi vì nó có thể che giấu sự thay đổi hiệu suất hoặc cải thiện hiệu suất quá mức, ví dụ, bằng cách nhấn cùng một trang như lần chạy trước đó.
-Sampling-Rate =RATE
Tốc độ lấy mẫu, được sử dụng khi ghi dữ liệu vào nhật ký, để giảm lượng nhật ký được tạo. Nếu tùy chọn này được đưa ra, chỉ có một phần kèo bóng đá c1 được chỉ định được ghi lại.
Hãy nhớ đưa tỷ lệ lấy mẫu vào tài khoản khi xử lý tệp nhật ký. Ví dụ: khi tính toán kèo bóng đá c1 giá trị TPS, bạn cần nhân kèo bóng đá c1 số tương ứng (ví dụ: với tỷ lệ mẫu 0,01, bạn sẽ chỉ nhận được 1/100 TPS thực tế).
--Show-script =
ScriptName
Hiển thị mã thực tế của tập kèo bóng đá c1 tích hợpscriptName
trên stderr và thoát ngay lập tức.
In tin nhắn về tất cả kèo bóng đá c1 lỗi và lỗi (lỗi mà không thử lại) bao gồm giới hạn để thử lại đã vượt quá và mức độ vượt quá đối với kèo bóng đá c1 lỗi tuần tự hóa/bế tắc. (Lưu ý rằng trong trường hợp này, đầu ra có thể tăng đáng kể.) XemThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin.
PGBenchCũng chấp nhận kèo bóng đá c1 đối số dòng lệnh chung sau đây cho kèo bóng đá c1 tham số kết nối:
-H
tên máy chủ
--host =
tên máy chủ
Tên máy chủ của máy chủ cơ sở dữ kèo bóng đá c1
-P
Cổng
--port =
Cổng
Số cổng của máy chủ cơ sở dữ kèo bóng đá c1
-U
Đăng nhập
--Username =
Đăng nhập
Tên người dùng để kết nối là
-V
--Version
inPGBenchPhiên bản và Thoát.
-?
--Help
Hiển thị trợ giúp vềPGBenchĐối số dòng kèo bóng đá c1 và thoát.
Chạy thành công sẽ thoát với trạng thái 0. Trạng thái thoát 1 cho biết kèo bóng đá c1 vấn đề tĩnh như kèo bóng đá c1 tùy chọn dòng lệnh không hợp lệ hoặc kèo bóng đá c1 lỗi nội bộ được cho là không bao giờ xảy ra. kèo bóng đá c1 lỗi sớm xảy ra khi bắt đầu điểm chuẩn như lỗi kết nối ban đầu cũng thoát theo trạng thái 1. Lỗi trong quá trình chạy như lỗi cơ sở dữ liệu hoặc kèo bóng đá c1 vấn đề trong tập lệnh sẽ dẫn đến trạng thái thoát 2. Trong trường hợp sau,PGBenchSẽ in kết quả kèo bóng đá c1 phần.
pgdatabase
PGHOST
PGPORT
PGUSER
Tham số kết nối mặc định.
Tiện ích này, giống như hầu hết kèo bóng đá c1 khácPOSTGRESQLTiện ích, sử dụng kèo bóng đá c1 biến môi trường được hỗ trợ bởilibpq(xemPhần 34.15).
Biến môi trườngpg_color
Chỉ định có nên sử dụng màu trong kèo bóng đá c1 thông báo chẩn đoán hay không. kèo bóng đá c1 giá trị có thể làLuôn luôn
,Auto
vàkèo bóng đá c1 bao giờ
.
PGBenchThực thi kèo bóng đá c1 tập lệnh kiểm tra được chọn ngẫu nhiên từ một danh sách được chỉ định. kèo bóng đá c1 tập lệnh có thể bao gồm kèo bóng đá c1 tập lệnh tích hợp được chỉ định với-B
và kèo bóng đá c1 tập lệnh do người dùng cung cấp được chỉ định với-f
. Mỗi tập lệnh có thể được cung cấp kèo bóng đá c1 trọng số tương đối được chỉ định sau kèo bóng đá c1@
để thay đổi xác suất lựa kèo bóng đá c1 của nó. Trọng lượng mặc định là1
. Tập kèo bóng đá c1 có trọng lượng0
bị bỏ qua.
Tập lệnh kèo bóng đá c1 tích hợp mặc định (cũng được gọi bằng-B TPCB giống như
) Phát hành bảy lệnh cho mỗi kèo bóng đá c1 được chọn ngẫu nhiênAID
,TID
,BID
vàDelta
. Kịch bản được lấy cảm hứng từ điểm chuẩn TPC-B, nhưng kèo bóng đá c1 thực sự là TPC-B, do đó tên.
bắt đầu;
Cập nhật PGBench_Accounts Đặt Abalance = Abalance +: Delta WHERE AID =: AID;
kèo bóng đá c1 Abalance từ PGBench_Accounts WHERE AID =: AID;
49904_49979
Cập nhật pgbench_branches đặt bbalance = bbalance +: delta trong đó giá thầu =: giá thầu;
50245_50358
kết thúc;
Nếu bạn kèo bóng đá c1Đơn giản update
tích hợp (cũng-N
), Bước 4 và 5 không được bao gồm trong giao dịch. Điều này sẽ tránh được sự tranh chấp cập nhật trên kèo bóng đá c1 bảng này, nhưng nó làm cho trường hợp thử nghiệm thậm chí còn giống như TPC-B.
Nếu bạn kèo bóng đá c1Chỉ kèo bóng đá c1
tích hợp (cũng-S
), Chỉkèo bóng đá c1
được ban hành.
PGBenchcó hỗ trợ để chạy kèo bóng đá c1 kịch bản điểm chuẩn tùy chỉnh bằng cách thay thế tập lệnh giao dịch mặc định (được mô tả ở trên) bằng tập lệnh giao dịch được đọc từ tệp (-f
Tùy kèo bóng đá c1). Trong trường hợp này Akèo bóng đá c1Khănđược tính là kèo bóng đá c1 lần thực hiện tệp tập lệnh.
Tệp tập lệnh chứa một hoặc nhiều lệnh SQL bị chấm dứt bởi dấu chấm phẩy. kèo bóng đá c1 đường và đường trống bắt đầu bằng--
bị bỏ qua. Tệp tập kèo bóng đá c1 cũng có thể chứakèo bóng đá c1 metaKhăn, được giải thích bởiPGBenchchính nó, như được mô tả bên dưới.
trướcPOSTGRESQL9.6, kèo bóng đá c1 lệnh SQL trong kèo bóng đá c1 tệp script đã bị chấm dứt bởi Newlines và do đó chúng không thể được tiếp tục trên kèo bóng đá c1 dòng. Bây giờ là một dấu chấm phẩy làYêu cầuĐể tách kèo bóng đá c1 lệnh SQL liên tiếp (mặc dù lệnh SQL không cần phải có nếu nó được theo sau bởi lệnh meta). Nếu bạn cần tạo một tệp tập lệnh hoạt động với cả phiên bản cũ và mới củaPGBench, Hãy chắc chắn viết mỗi lệnh SQL trên kèo bóng đá c1 dòng kết thúc bằng dấu chấm phẩy.
Giả sử rằng kèo bóng đá c1 tập lệnh PGBench không chứa kèo bóng đá c1 khối giao dịch SQL không đầy đủ. Nếu vào thời gian chạy, máy khách đến cuối tập lệnh mà không hoàn thành khối giao dịch cuối cùng, nó sẽ bị hủy bỏ.
Có một cơ sở thay thế biến đơn giản cho kèo bóng đá c1 tệp script. Tên biến phải bao gồm kèo bóng đá c1 chữ cái (bao gồm kèo bóng đá c1 chữ cái không phải là latin), chữ số và dấu gạch dưới, với ký tự đầu tiên không phải là một chữ số.-D
Tùy chọn, được giải thích ở trên hoặc bởi kèo bóng đá c1 lệnh meta được giải thích dưới đây. Ngoài bất kỳ biến nào được đặt trước bởi-D
Tùy chọn dòng lệnh, có kèo bóng đá c1 vài biến được đặt trước tự động, được liệt kê trongBảng 288. Một giá trị được chỉ định cho kèo bóng đá c1 biến này bằng cách sử dụng-D
được ưu tiên hơn kèo bóng đá c1 cài đặt trước tự động. Sau khi được đặt, giá trị của một biến có thể được chèn vào lệnh SQL bằng cách viết:
variablename
. Khi chạy nhiều phiên khách, mỗi phiên có bộ biến riêng.PGBenchHỗ trợ tối đa 255 Biến sử dụng trong kèo bóng đá c1 câu.
Bảng 288. Biến tự động PGBench
biến | Mô tả |
---|---|
client_id |
Số duy nhất Xác định phiên khách (bắt đầu từ số 0) |
default_seed |
Hạt giống được sử dụng trong kèo bóng đá c1 hàm hoán vị băm và giả và giả theo mặc định |
Random_seed |
Hạt giống máy phát ngẫu nhiên (trừ khi được ghi đè bằng-D ) |
Scale |
Yếu tố tỷ lệ hiện tại |
kèo bóng đá c1 lệnh meta tập tin tập lệnh bắt đầu bằng dấu gạch chéo ngược (\
) và thường mở rộng đến cuối dòng, mặc dù chúng có thể được tiếp tục thêm kèo bóng đá c1 dòng bổ sung bằng cách viết ngược lại. kèo bóng đá c1 đối số cho một lệnh meta được phân tách bằng không gian trắng.
\ GSET [tiền tố
]
\ ASET [tiền tố
]
kèo bóng đá c1 lệnh này có thể được sử dụng để kết thúc kèo bóng đá c1 truy vấn SQL, thay thế dấu chấm phẩy chấm dứt (;
).
Khi\ GSET
Lệnh được sử dụng, truy vấn SQL trước dự kiến sẽ trả về một hàng, kèo bóng đá c1 cột được lưu thành kèo bóng đá c1 biến được đặt theo tên cột và được đặt trước vớitiền tố
Nếu được cung cấp.
Khi\ ASET
Lệnh được sử dụng, tất cả kèo bóng đá c1 truy vấn SQL kết hợp (được phân tách bởi\;
) Có kèo bóng đá c1 cột được lưu trữ thành kèo bóng đá c1 biến được đặt tên theo tên cột và có tiền tố vớitiền tố
Nếu được cung cấp. Nếu một truy vấn trả về kèo bóng đá c1 có hàng, kèo bóng đá c1 có bài tập nào được thực hiện và biến có thể được kiểm tra cho sự tồn tại để phát hiện điều này.
\ GSET
và\ ASET
Không thể được sử dụng trong chế độ đường ống, vì kết quả truy vấn chưa có sẵn vào thời điểm kèo bóng đá c1 lệnh sẽ cần chúng.
Ví dụ sau đây đặt số dư tài khoản cuối cùng từ truy vấn đầu tiên vào biếnAbalance
, và điền kèo bóng đá c1 biếnP_TWO
vàp_three
với số nguyên từ truy vấn thứ ba. Kết quả của truy vấn thứ hai bị loại bỏ.bốn
vànăm
.
Cập nhật pGBench_accounts
\ if
Biểu thức
\ Elif
Biểu thức
\ other
\ endif
Nhóm lệnh này thực hiện kèo bóng đá c1 khối điều kiện có thể làm tổ, tương tự nhưPSQL
's\ if
Biểu thức
. Biểu thức có điều kiện giống hệt với kèo bóng đá c1 biểu thức có\ set
, với kèo bóng đá c1 giá trị khác không được hiểu là đúng.
\ setvarname
Biểu thức
Đặt biếnvarname
với giá trị được tính từBiểu thức
. Biểu thức có thể chứaNULL
Hằng số, hằng số booleanTRUE
vàSai
, hằng số nguyên như5432
, Hằng số kép như3.14159
, Tài liệu tham khảo về kèo bóng đá c1 biến:
variablename
,toán tửVới ưu tiên và kết hợp SQL thông thường của họ,Chức năng gọi, SQLcase
Biểu thức có điều kiện chungvà dấu ngoặc đơn.
Hàm và hầu hết kèo bóng đá c1 toán tử trở lạinull
trênnull
Đầu vào.
Đối với mục đích có điều kiện, kèo bóng đá c1 giá trị số không phải làTRUE
, Giá trị số kèo bóng đá c1 vànull
làSai
.
60156_60248+
,-
,*
và/
) Tăng lỗi trên tràn.
Khi kèo bóng đá c1 có cuối cùngkhác
mệnh đề được cung cấp cho Acase
, giá trị mặc định lànull
.
Ví dụ:
\ SET NTELLERS 10 *: Tỷ lệ
\ ngủSố
[chúng tôi | MS |
khiến việc thực thi tập kèo bóng đá c1 ngủ trong thời lượng được chỉ định tính bằng micro giây (US
), mili giây (MS
) hoặc giây (S
). Nếu đơn vị bị bỏ qua thì giây là mặc định.Số
có thể là hằng số nguyên hoặc:
Variablename
tham chiếu đến kèo bóng đá c1 biến có giá trị số nguyên.
Ví dụ:
\ ngủ 10 ms
\ setshellvarname
kèo bóng đá c1
[Đối số
...]
Đặt biếnvarname
với kết quả của kèo bóng đá c1 shellkèo bóng đá c1
với đã choĐối số
(s). kèo bóng đá c1 phải trả về giá trị số nguyên thông qua đầu ra tiêu chuẩn của nó.
kèo bóng đá c1
và mỗiĐối số
có thể là hằng số văn bản hoặc:
variablename
tham chiếu đến kèo bóng đá c1 biến. Nếu bạn muốn sử dụngĐối số
Bắt đầu bằng dấu hai chấm, viết thêm kèo bóng đá c1 dấu hai chấm vào đầuĐối số
.
Ví dụ:
62711_62813
\ shellkèo bóng đá c1
[Đối số
...]
giống như\ setshell
, nhưng kết quả của kèo bóng đá c1 bị loại bỏ.
Ví dụ:
\ shell kèo bóng đá c1 literal_argument: biến :: literal_starting_with_colon
\ startPipeline
\ EndPipeline
kèo bóng đá c1 lệnh này phân định sự khởi đầu và kết thúc của một đường ống của kèo bóng đá c1 câu lệnh SQL. Trong chế độ Pipeline, kèo bóng đá c1 câu lệnh được gửi đến máy chủ mà không chờ kết quả của kèo bóng đá c1 câu lệnh trước đó.Phần 34.5Để biết thêm chi tiết. Chế độ đường ống yêu cầu sử dụng kèo bóng đá c1 thức truy vấn mở rộng.
kèo bóng đá c1 toán tử số học, bitwise, so sánh và logic được liệt kê trongBảng 289được tích hợp vàoPGBenchvà có thể được sử dụng trong kèo bóng đá c1 biểu thức xuất hiện trong\ set
. kèo bóng đá c1 nhà khai thác được liệt kê theo thứ tự ưu tiên tăng.
Bảng 289. kèo bóng đá c1 toán tử PGBench
Nhà điều hành Mô tả Ví dụ |
---|
logic hoặc
|
logic và
|
logic kèo bóng đá c1
|
Bài kiểm tra giá trị Boolean
|
thử nghiệm nullness
|
bằng
|
kèo bóng đá c1 bằng
|
kèo bóng đá c1 bằng
|
ít hơn
|
nhỏ hơn hoặc bằng
|
lớn hơn
|
lớn hơn hoặc bằng
|
bitwise hoặc
|
BitWise XOR
|
bitwise và
|
bitwise kèo bóng đá c1
|
Bitwise Shift Left
|
BitWise Shift phải
|
Bổ sung
|
trừ
|
Nhân
|
Phân chia (cắt ngắn kết quả về 0 nếu cả hai đầu vào đều là số nguyên)
|
modulo (phần còn lại)
|
phủ định
|
kèo bóng đá c1 chức năng được liệt kê trongBảng 290được tích hợp vàoPGBenchvà có thể được sử dụng trong kèo bóng đá c1 biểu thức xuất hiện trong\ set
.
Bảng 290. Hàm PGBench
chức năng Mô tả Ví dụ (s) |
---|
Giá trị tuyệt đối
|
In đối số thànhstderr, và trả về đối số.
|
đúc để tăng gấp đôi.
|
theo cấp số nhân (
|
Chọn giá trị lớn nhất trong số kèo bóng đá c1 đối số.
|
Đây là bí danh cho
|
Tính toánFNV-1A Hash.
|
Tính toánmurmurhash2 băm.
|
đúc theo số nguyên.
|
Chọn giá trị nhỏ nhất trong số kèo bóng đá c1 đối số.
|
logarit tự nhiên
|
modulo (phần còn lại)
|
Giá trị hoán vị của
|
Giá trị gần đúng củaπ
|
|
Tính toán số nguyên ngẫu nhiên được phân phối đồng đều trong
|
Tính toán số nguyên ngẫu nhiên được phân phối theo cấp số nhân trong
|
Tính toán số nguyên ngẫu nhiên do Gaussian phân phối trong
|
Tính toán số nguyên ngẫu nhiên do Zipfian phân phối trong
|
căn bậc hai
|
Thengẫu nhiên
Hàm tạo ra kèo bóng đá c1 giá trị bằng phân phối đồng đều, đó là tất cả kèo bóng đá c1 giá trị được rút ra trong phạm vi được chỉ định với xác suất bằng nhau. TheRandom_Exponential
,Random_gaussian
vàRandom_zipfian
kèo bóng đá c1 hàm yêu cầu tham số kép bổ sung để xác định hình dạng chính xác của phân phối.
Đối với phân phối theo cấp số nhân,tham số
Kiểm soát phân phối bằng cách cắt ngắn phân phối theo cấp số nhân giảm nhanh tạitham số
, và sau đó chiếu lên số nguyên giữa kèo bóng đá c1 giới hạn. Để chính xác, với
f (x) = exp (-parameter*(x-min)/(max-min+1))/(1-exp (-parameter))
Sau đó, valuei
giữamin
vàMax
Bao gồm được vẽ với xác suất:f (i) - f (i + 1)
.
theo trực giác, càng lớntham số
, kèo bóng đá c1 giá trị thường xuyên hơn gầnmin
được truy cập và kèo bóng đá c1 giá trị ít thường xuyên hơn gầnMax
được truy cập. Gần với 0tham số
IS, Flatter (đồng nhất hơn) Phân phối truy cập. Một xấp xỉ thô của phân phối là kèo bóng đá c1 giá trị 1% thường xuyên nhất trong phạm vi, gần vớiMin
, được vẽtham số
% thời gian. Thetham số
Giá trị phải hoàn toàn dương.
Đối với phân phối Gaussian, khoảng thời gian được ánh xạ vào kèo bóng đá c1 phân phối bình thường tiêu chuẩn (đường cong Gaussian hình chuông cổ điển) bị cắt ngắn tại-Parameter
ở bên trái và+tham số
Ở bên phải. kèo bóng đá c1 giá trị ở giữa khoảng thời gian có nhiều khả năng được rút ra.PHI (x)
là hàm phân phối tích lũy của phân phối bình thường tiêu chuẩn, với giá trị trung bìnhMU
được xác định là(tối đa + min) / 2.0
, với
f (x) = PHI (2.0*tham số*(x-mu)/(tối đa-tối thiểu+1))/
(2.0*PHI (tham số)-1)
Sau đó, Valuei
giữamin
vàMax
Bao gồm được rút ra với xác suất:f (i + 0,5) - f (i - 0,5)
. Theo trực giác, càng lớntham số
, kèo bóng đá c1 giá trị thường xuyên hơn gần giữa khoảng thời gian được rút ra và kèo bóng đá c1 giá trị ít thường xuyên hơn gần vớimin
vàMax
giới hạn. Khoảng 67% giá trị được rút ra từ giữa1.0 / tham số
, đó là kèo bóng đá c1 người quan hệ0.5 / tham số
Xung quanh giá trị trung bình và 95% ở giữa2.0 / tham số
, đó là kèo bóng đá c1 người quan hệ1.0 / tham số
xung quanh trung bình; Ví dụ, nếutham số
là 4.0, 67% giá trị được rút ra từ quý giữa (1.0 / 4.0) của khoảng (nghĩa là, từ3.0 / 8.0
đến5.0 / 8.0
) và 95% từ nửa giữa (2.0 / 4.0
) của khoảng thời gian (tứ phân vị thứ hai và thứ ba). Tối thiểu cho phéptham số
Giá trị là 2.0.
Random_zipfian
Tạo phân phối Zipfian bị ràng buộc.tham số
Xác định cách phân phối sai lệch. Càng lớntham số
, kèo bóng đá c1 giá trị thường xuyên hơn gần với đầu của khoảng thời gian được rút ra. Phân phối là như vậy, giả sử phạm vi bắt đầu từ 1, tỷ lệ xác suất vẽK
so với bản vẽK+1
là((
. Ví dụ,K
+1)/K
) **tham số
Random_zipfian (1, ..., 2.5)
Sản xuất giá trị1
về(2/1) ** 2.5 = 5.66
lần thường xuyên hơn2
, bản thân nó được sản xuất(3/2) ** 2.5 = 2.76
lần thường xuyên hơn3
, v.v.
PGBenchS Triển khai dựa trên "Tạo biến thể ngẫu nhiên kèo bóng đá c1 đồng nhất", Luc Devroye, p. 550-551, Springer 1986. Do những hạn chế của thuật toán đó,tham số
Giá trị bị giới hạn trong phạm vi [1,001, 1000].
Khi thiết kế điểm chuẩn chọn kèo bóng đá c1 hàng không đồng nhất, hãy lưu ý rằng kèo bóng đá c1 hàng được chọn có thể tương quan với kèo bóng đá c1 dữ liệu khác như ID từ trình tự hoặc thứ tự hàng vật lý, có thể làm lệch kèo bóng đá c1 phép đo hiệu suất.
Để tránh điều này, bạn có thể muốn sử dụngPermute
Hàm hoặc một số bước bổ sung khác có hiệu ứng tương tự, để xáo trộn kèo bóng đá c1 hàng đã chọn và xóa kèo bóng đá c1 tương quan đó.
hàm bămHash
,Hash_murmur2
vàHash_fnv1a
Chấp nhận giá trị đầu vào và tham số hạt giống tùy chọn. Trong trường hợp hạt giống kèo bóng đá c1 được cung cấp giá trị của: default_seed
được sử dụng, được khởi tạo ngẫu nhiên trừ khi được đặt bởi dòng kèo bóng đá c1-D
Tùy kèo bóng đá c1.
Permute
Chấp nhận giá trị đầu vào, kích thước và tham số hạt giống tùy chọn. Nó tạo ra một hoán vị giả của kèo bóng đá c1 số nguyên trong phạm vi[0, size)
, và trả về chỉ mục của giá trị đầu vào trong kèo bóng đá c1 giá trị hoán vị. Hoán vị được chọn được tham số hóa bởi hạt giống, mặc định là: default_seed
, nếu không được chỉ định. Không giống như kèo bóng đá c1 hàm băm,Permute
Đảm bảo rằng không có va chạm hoặc lỗ hổng nào trong kèo bóng đá c1 giá trị đầu ra. kèo bóng đá c1 giá trị đầu vào bên ngoài khoảng thời gian được giải thích modulo kích thước.Permute
có thể được sử dụng để phân tán phân phối kèo bóng đá c1 hàm ngẫu nhiên không đồng nhất nhưRandom_zipfian
hoặcngẫu nhiên_exponential
để kèo bóng đá c1 giá trị được rút ra thường xuyên hơn không được tương quan một cách tầm thường. Ví dụ, sau đâyPGBench97962_98106
\ Đặt kích thước 1000000
Trong một số trường hợp, một số phân phối riêng biệt là cần thiết kèo bóng đá c1 tương quan với nhau và đây là khi tham số hạt giống tùy chọn có ích:
98439_98546
kèo bóng đá c1 hành vi tương tự cũng có thể được xấp xỉ vớiHash
:
\ Đặt kích thước 1000000
Tuy nhiên, kể từHash
Tạo va chạm, một số giá trị sẽ kèo bóng đá c1 thể truy cập được và những giá trị khác sẽ thường xuyên hơn dự kiến từ phân phối ban đầu.
Ví dụ, định nghĩa đầy đủ về kèo bóng đá c1 TPC-B-giống tích hợp là:
\ Đặt Aid Random (1, 100000 *: Tỷ lệ)
tập lệnh này cho phép mỗi lần lặp lại của giao dịch tham chiếu kèo bóng đá c1 hàng khác nhau, được chọn ngẫu nhiên. .
với-L
Tùy chọn (nhưng kèo bóng đá c1 có--Ggregate-Interval
tùy kèo bóng đá c1),PGBenchViết thông tin về mỗi kèo bóng đá c1 vào một tệp nhật ký. Tệp nhật ký sẽ được đặt tên
, trong đótiền tố
.nnn
tiền tố
Mặc định làpgbench_log
vànnn
là pid củaPGBenchQuy trình. Tiền tố có thể được thay đổi bằng cách sử dụng-Log-Prefix
Tùy kèo bóng đá c1. Nếu-J
Tùy kèo bóng đá c1 là 2 hoặc cao hơn, để có nhiều luồng công nhân, mỗi luồng sẽ có tệp nhật ký riêng. Công nhân đầu tiên sẽ sử dụng cùng tên cho tệp nhật ký của nó như trong trường hợp công nhân đơn tiêu chuẩn.
, trong đótiền tố
.nnn
.MMM
MMM
là số tuần tự cho mỗi công nhân bắt đầu với 1.
Mỗi dòng trong một tệp nhật ký mô tả một giao dịch. Nó chứa kèo bóng đá c1 trường phân tách không gian sau:
client_id
Xác định phiên khách chạy kèo bóng đá c1
kèo bóng đá c1 dịch_no
Đếm số lượng kèo bóng đá c1 đã được thực hiện bởi phiên đó
thời gian
Thời gian đã qua của kèo bóng đá c1, tính bằng micro giây
script_no
Xác định tệp tập lệnh được sử dụng cho kèo bóng đá c1 (hữu ích khi nhiều tập lệnh được chỉ định với-f
hoặc-B
)
time_epoch
Thời gian hoàn thành của kèo bóng đá c1, dưới dạng dấu thời gian unix-epoch
time_us
Phần thứ hai của thời gian hoàn thành kèo bóng đá c1, tính bằng micro giây
Lịch trình_lag
Độ trễ bắt đầu kèo bóng đá c1, đó là sự khác biệt giữa thời gian bắt đầu theo lịch trình của kèo bóng đá c1 và thời gian nó thực sự bắt đầu, trong micro giây (chỉ có mặt nếu--Rate
được chỉ định)
Retries
Số lần thử lại sau khi tuần tự hóa hoặc lỗi bế tắc trong quá trình kèo bóng đá c1 (chỉ có mặt nếu--Max-Tries
kèo bóng đá c1 bằng một)
Khi cả hai--Rate
và-Latency-Limit
được sử dụng,Thời gian
Đối với một kèo bóng đá c1 bị bỏ qua sẽ được báo cáo làBỏ qua
. Nếu kèo bóng đá c1 kết thúc bằng một lỗi, nóThời gian
sẽ được báo cáo làkèo bóng đá c1 thành công
. Nếu bạn sử dụng--Failures-Detailed
Tùy kèo bóng đá c1, Thethời gian
của kèo bóng đá c1 thất bại sẽ được báo cáo làtuần tự hóa
hoặcbế tắc
Tùy thuộc vào loại thất bại (xemThất bại và tuần tự hóa/lần thử lạiĐể biết thêm thông tin).
Đây là kèo bóng đá c1 đoạn của kèo bóng đá c1 tệp nhật ký được tạo trong kèo bóng đá c1 lần chạy đơn:
0 199 2241 0 1175850568 995598 0 200 2465 0 1175850568 998079 0 201 2513 0 1175850569 608 0 202 2038 0 1175850569 2663
kèo bóng đá c1 ví dụ khác với-RATE = 100
và-Latency-limit = 5
(Lưu ý bổ sungLịch trình_lag
cột):
0 81 4621 0 1412881037 912698 3005
Trong ví dụ này, kèo bóng đá c1 82 đã trễ, vì độ trễ của nó (6.173 ms) đã vượt quá giới hạn 5 ms. Hai kèo bóng đá c1 tiếp theo đã bị bỏ qua, vì chúng đã bị trễ trước khi chúng bắt đầu.
Ví dụ sau đây hiển thị một đoạn của tệp nhật ký với kèo bóng đá c1 lỗi và thử lại, với số lần thử tối đa được đặt thành 10 (lưu ý bổ sungRetries
cột):
3 0 47423 0 1499414498 34501 3
Nếu--Failures-Detailed
Tùy kèo bóng đá c1 được sử dụng, loại lỗi được báo cáo trongTime
như thế này:
3 0 47423 0 1499414498 34501 3
Khi chạy thử nghiệm dài về phần cứng có thể xử lý nhiều giao dịch, kèo bóng đá c1 tệp nhật ký có thể trở nên rất lớn. The-Sampling-Rate
Tùy chọn có thể được sử dụng để chỉ ghi lại một mẫu kèo bóng đá c1 ngẫu nhiên.
với--Ggregate-Interval
Tùy chọn, một định dạng khác được sử dụng cho kèo bóng đá c1 tệp nhật ký. Mỗi dòng nhật ký mô tả một khoảng thời gian tổng hợp.
Interval_Start
Thời gian bắt đầu của khoảng thời gian, dưới dạng tem thời gian unix-epoch
num_transactions
Số lượng kèo bóng đá c1 trong khoảng thời gian
sum_latency
Tổng độ trễ kèo bóng đá c1
sum_latency_2
Tổng bình phương của độ trễ kèo bóng đá c1
min_latency
Độ trễ kèo bóng đá c1 tối thiểu
Max_Latency
Độ trễ kèo bóng đá c1 tối đa
sum_lag
Tổng độ trễ bắt đầu giao dịch (kèo bóng đá c1 trừ khi--Rate
được chỉ định)
sum_lag_2
Tổng số bình phương của sự chậm trễ bắt đầu giao dịch (kèo bóng đá c1 trừ khi--Rate
được chỉ định)
MIN_LAG
Độ trễ bắt đầu kèo bóng đá c1 tối thiểu (0 trừ khi--Rate
được chỉ định)
MAX_LAG
Độ trễ bắt đầu kèo bóng đá c1 tối đa (0 trừ khi--Rate
được chỉ định)
Bỏ qua
Số lượng giao dịch bị bỏ qua vì họ đã bắt đầu quá muộn (kèo bóng đá c1 trừ khi--Rate
và--Latency-Limit
được chỉ định)
đã lại
Số lượng giao dịch được thử lại (kèo bóng đá c1 trừ khi--Max-Tries
kèo bóng đá c1 bằng một)
Retries
Số lần thử lại sau khi tuần tự hóa hoặc lỗi bế tắc (kèo bóng đá c1 trừ khi--Max-Tries
kèo bóng đá c1 bằng một)
serialization_failures
Số lượng giao dịch có lỗi tuần tự hóa và kèo bóng đá c1 được thử lại sau đó (kèo bóng đá c1 trừ khi--Failures-Detailed
được chỉ định)
deadlock_failures
Số lượng giao dịch có lỗi bế tắc và kèo bóng đá c1 được thử lại sau đó (kèo bóng đá c1 trừ khi--Failures-Detailed
được chỉ định)
Đây là một số ví dụ đầu ra được tạo với kèo bóng đá c1 tùy chọn sau:
110777_110909
1650260552 5178 26171317 177284491527 1136 44462 2647617 7321113867 0 9866 64 7564 28340 4148 0
1650260562 4808 25573984 220121792172 1171 62083 3037380 9666800914 0 9998 598 7392 26621 4527 0
Lưu ý rằng trong khi định dạng nhật ký đơn giản (kèo bóng đá c1 phân chia) hiển thị tập lệnh nào được sử dụng cho mỗi giao dịch, định dạng tổng hợp thì kèo bóng đá c1. Do đó, nếu bạn cần dữ liệu trên mỗi kịch bản, bạn cần phải tự mình tổng hợp dữ liệu.
với-R
Tùy kèo bóng đá c1,PGBenchThu thập kèo bóng đá c1 số liệu thống kê sau cho mỗi câu lệnh:
độ trễ
- Thời gian kèo bóng đá c1 đã trôi qua cho mỗi câu lệnh.PGBenchBáo cáo giá trị trung bình của tất cả kèo bóng đá c1 lần chạy thành công của câu lệnh.
Số lượng thất bại trong câu kèo bóng đá c1 này. Nhìn thấyThất bại và tuần tự hóa/lần thử lạiĐể biết thêm thông tin.
Số lần thử lại sau khi tuần tự hóa hoặc lỗi bế tắc trong câu kèo bóng đá c1 này. Nhìn thấyThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin.
Báo cáo chỉ hiển thị số kèo bóng đá c1 thống kê thử lại nếu--Max-Tries
Tùy chọn kèo bóng đá c1 bằng 1.
Tất cả kèo bóng đá c1 giá trị được tính toán cho mỗi câu lệnh được thực hiện bởi mỗi máy khách và được báo cáo sau khi điểm chuẩn kết thúc.
Đối với tập kèo bóng đá c1 mặc định, đầu ra sẽ trông tương tự như thế này:
Khởi động chân kèo bóng đá c1 ... kết thúc.
Một ví dụ khác về đầu ra cho tập lệnh mặc định bằng cách sử dụng cấp độ phân lập kèo bóng đá c1 mặc định có thể nối tiếp (pgoptions = '-c default_transaction_isolation = serializable' pgbench ...
):
Khởi động chân kèo bóng đá c1 ... kết thúc.
Nếu nhiều tệp tập lệnh được chỉ định, tất cả kèo bóng đá c1 số liệu thống kê được báo cáo riêng cho mỗi tệp tập lệnh.
Lưu ý rằng việc thu thập thông tin thời gian bổ sung cần thiết cho tính toán độ trễ trên mỗi statement thêm một số chi phí. Điều này sẽ làm chậm tốc độ thực thi trung bình và giảm kèo bóng đá c1 TPS được tính toán.
Khi thực hiệnPGBench, Có ba loại lỗi chính:
Lỗi của chương trình chính. Họ là người nghiêm túc nhất và luôn dẫn đến kèo bóng đá c1 lối thoát ngay lập tức từPGBenchVới thông báo lỗi tương ứng. Họ bao gồm:
Lỗi ở đầuPGBench(ví dụ: giá trị tùy chọn kèo bóng đá c1 hợp lệ);
Lỗi trong chế độ khởi tạo (ví dụ: truy vấn để tạo bảng cho kèo bóng đá c1 tập lệnh tích hợp không thành công);
Lỗi trước khi bắt đầu kèo bóng đá c1 luồng (ví dụ: không thể kết nối với máy chủ cơ sở dữ liệu, lỗi cú pháp trong lệnh meta, lỗi tạo luồng);
Nội bộPGBenchLỗi (được cho là kèo bóng đá c1 bao giờ xảy ra ...).
Lỗi khi luồng quản lý máy khách của mình (ví dụ: máy khách không thể khởi động kết nối với máy chủ cơ sở dữ liệu / ổ cắm để kết nối máy khách với máy chủ cơ sở dữ liệu đã không hợp lệ). Trong những trường hợp như vậy, tất cả kèo bóng đá c1 máy khách của chủ đề này dừng trong khi kèo bóng đá c1 luồng khác tiếp tục hoạt động.
Lỗi khách hàng trực tiếp. Họ dẫn đến thoát ngay lập tức khỏiPGBenchChỉ với thông báo lỗi tương ứng trong trường hợp nội bộPGBenchLỗi (được cho là không bao giờ xảy ra ...). Mặt khác, trong trường hợp xấu nhất, họ chỉ dẫn đến việc phá thai của khách hàng thất bại trong khi kèo bóng đá c1 khách hàng khác tiếp tục chạy (nhưng một số lỗi của khách hàng được xử lý mà không phá thai của khách hàng và báo cáo riêng, xem bên dưới).PGBenchlỗi.
Chạy của khách hàng bị hủy bỏ trong trường hợp có lỗi nghiêm trọng; Ví dụ: kết nối với máy chủ cơ sở dữ liệu đã bị mất hoặc kết thúc của tập lệnh mà kèo bóng đá c1 hoàn thành giao dịch cuối cùng."kèo bóng đá c1" thực sự được thực hiện trong PGBench?Để biết thêm thông tin). kèo bóng đá c1 giao dịch có lỗi tuần tự hóa hoặc bế tắc được lặp lại sau khi rollback cho đến khi chúng hoàn thành thành công hoặc đạt được số lần thử tối đa (được chỉ định bởi--Max-Tries
Tùy kèo bóng đá c1) / thời gian thử lại tối đa (được chỉ định bởi-Latency-Limit
tùy kèo bóng đá c1) / kết thúc điểm chuẩn (được chỉ định bởi-Thời gian
Tùy chọn). Nếu lần chạy thử cuối cùng thất bại, giao dịch này sẽ được báo cáo là thất bại nhưng khách hàng kèo bóng đá c1 bị hủy bỏ và tiếp tục hoạt động.
mà kèo bóng đá c1 cần chỉ định--Max-Tries
Tùy chọn, một giao dịch sẽ kèo bóng đá c1 bao giờ được thử lại sau khi tuần tự hóa hoặc lỗi bế tắc vì giá trị mặc định của nó là 1. Sử dụng số lần thử kèo bóng đá c1 giới hạn (--Max-Tries = 0
) và-Latency-Limit
Tùy chọn chỉ giới hạn thời gian tối đa của kèo bóng đá c1 lần thử. Bạn cũng có thể sử dụng-Thời gian
Tùy chọn để giới hạn thời lượng điểm chuẩn theo số lần thử kèo bóng đá c1 giới hạn.
Hãy cẩn thận khi lặp lại kèo bóng đá c1 tập lệnh có chứa nhiều giao dịch: tập lệnh luôn được thử lại hoàn toàn, vì vậy kèo bóng đá c1 giao dịch thành công có thể được thực hiện nhiều lần.
Hãy cẩn thận khi lặp lại kèo bóng đá c1 giao dịch với kèo bóng đá c1 lệnh shell. Không giống như kết quả của kèo bóng đá c1 lệnh SQL, kết quả của kèo bóng đá c1 lệnh shell không được quay lại, ngoại trừ giá trị biến của\ setshell
kèo bóng đá c1.
Độ trễ của một giao dịch thành công bao gồm toàn bộ thời gian thực hiện giao dịch với rollbacks và retries. Độ trễ chỉ được đo cho kèo bóng đá c1 giao dịch và lệnh thành công nhưng không phải cho kèo bóng đá c1 giao dịch hoặc lệnh không thành công.
Báo cáo chính chứa số lượng kèo bóng đá c1 thất bại. Nếu--Max-Tries
Tùy chọn không bằng 1, báo cáo chính cũng chứa kèo bóng đá c1 số liệu thống kê liên quan đến thử lại: Tổng số giao dịch được thử lại và tổng số lần thử lại. Báo cáo trên mỗi kịch bản kế thừa tất cả kèo bóng đá c1 trường này từ báo cáo chính.--Max-Tries
Tùy chọn kèo bóng đá c1 bằng 1.
Nếu bạn muốn nhóm kèo bóng đá c1 lỗi theo kèo bóng đá c1 loại cơ bản trong nhật ký tổng hợp và tổng hợp, cũng như trong kèo bóng đá c1 báo cáo chính và trên mỗi kịch bản, sử dụng--Failures-Detailed
Tùy chọn. Nếu bạn cũng muốn phân biệt tất cả kèo bóng đá c1 lỗi và lỗi (lỗi mà không thử lại) theo loại bao gồm cả giới hạn để thử lại đã vượt quá và mức độ vượt quá của nó đối với kèo bóng đá c1 lỗi tuần tự hóa/bế tắc, hãy sử dụngTùy kèo bóng đá c1.
Nó rất dễ sử dụngPGBenchĐể tạo ra kèo bóng đá c1 số hoàn toàn vô nghĩa. Dưới đây là một số hướng dẫn để giúp bạn nhận được kết quả hữu ích.
Ở nơi đầu tiên,kèo bóng đá c1 bao giờTin bất kỳ bài kiểm tra nào chỉ chạy trong vài giây. Sử dụng-T
hoặc-T
123169_123427
Đối với kịch bản thử nghiệm TPC-B mặc định, hệ số tỷ lệ khởi tạo (-S
) ít nhất phải lớn như số lượng khách hàng lớn nhất mà bạn dự định kiểm tra (-C
); Nếu kèo bóng đá c1, bạn sẽ chủ yếu là đo lường sự tranh chấp cập nhật.-S
hàng trongpgbench_branches
Bảng và mọi kèo bóng đá c1 đều muốn cập nhật một trong số đó, vì vậy-C
Giá trị vượt quá-S
chắc chắn sẽ dẫn đến rất nhiều giao dịch bị chặn chờ kèo bóng đá c1 giao dịch khác.
Kịch bản kiểm tra mặc định cũng khá nhạy cảm với thời gian kể từ khi kèo bóng đá c1 bảng được khởi tạo: tích lũy kèo bóng đá c1 hàng chết và không gian chết trong kèo bóng đá c1 bảng thay đổi kết quả. Để hiểu kết quả, bạn phải theo dõi tổng số cập nhật và khi việc hút bụi xảy ra.
Giới hạn củaPGBenchBản thân nó có thể trở thành nút cổ chai khi cố gắng kiểm tra một số lượng lớn kèo bóng đá c1 phiên khách. Điều này có thể được giảm bớt bằng cách chạyPGBenchTrên kèo bóng đá c1 máy khác với máy chủ cơ sở dữ liệu, mặc dù độ trễ mạng thấp sẽ rất cần thiết. Nó thậm chí có thể hữu ích khi chạy kèo bóng đá c1 sốPGBenchtrường hợp đồng thời, trên kèo bóng đá c1 số máy khách, đối với cùng kèo bóng đá c1 máy chủ cơ sở dữ liệu.
Nếu người dùng kèo bóng đá c1 tin cậy có quyền truy cập vào cơ sở dữ liệu chưa áp dụngmẫu sử dụng lược đồ an toàn, kèo bóng đá c1 chạyPGBenchTrong cơ sở dữ kèo bóng đá c1 đó.PGBenchSử dụng tên kèo bóng đá c1 đủ tiêu chuẩn và kèo bóng đá c1 thao tác đường dẫn tìm kiếm.
Nếu bạn thấy bất cứ điều gì trong tài liệu kèo bóng đá c1 chính xác, kèo bóng đá c1 khớpMẫu nàyĐể báo cáo vấn đề tài kèo bóng đá c1.