PGBench - Chạy bài kiểm tra điểm chuẩn trênPostgreSQL
PGBench
-I
[Tùy chọn
...] [dbname
]
PGBench
[Tùy chọn
...] [dbname
]
PGBenchlà một chương trình đơn giản để chạy kèo bóng đá cúp c2 bài kiểm tra điểm chuẩn trênPostgreSQL. Nó chạy cùng một chuỗi kèo bóng đá cúp c2 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 đá cúp c2 kịch bản dựa trên TPC-B, liên quan đến nămChọn
,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 đá cúp c2 trường hợp khác bằng cách viết kèo bóng đá cúp c2 tệp tập lệnh giao dịch của riêng bạn.
Đầu ra điển hình từPGBenchtrông giống như:
Loại kèo bóng đá cúp c2: <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 đá cúp c2 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 đá cúp c2 đã 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 đá cúp c2 trên mỗi khách hàng);-T
Chế độ, chỉ có số lượng kèo bóng đá cúp c2 thực tế được in.) Dòng tiếp theo báo cáo số lượng kèo bóng đá cúp c2 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 đá cúp c2 mỗi giây.
Kiểm tra giao dịch TPC-B mặc định yêu cầu kèo bóng đá cúp c2 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 đá cúp c2 bảng này. .
pgbench -i [tùy chọn khác
]dbname
WHEREdbname
là tên của cơ sở dữ liệu đã đượ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ữ liệu.)
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 đá cúp c2 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 đá cúp c2 bảng có kèo bóng đá cúp c2 tên này!
Tại mặc địnhYếu tố tỷ lệcủa 1, kèo bóng đá cúp c2 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 đá cúp c2 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 chọn. 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 đá cúp c2 bao gồm-i
, đó là
pgbench [Tùy chọn
]dbname
Trong hầu hết kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2),-T
(giới hạn thời gian) và-f
(Chỉ định tệp tập lệnh 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 đá cúp c2 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 đá cúp c2 đối số khởi tạo dòng lệnh sau:
[-D]dbname
[--dbname =]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 đá cúp c2 được chỉ định, biến môi trườngpgdatabase
được sử dụng. Nếu đó kèo bóng đá cúp c2 đượ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 đá cúp c2 bước khởi tạo bình thường được chọn.init_steps
Chỉ định kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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ữ liệu, 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 đá cúp c2 bảng tiêu chuẩn, thay thế bất kỳ dữ liệu nào đã có.
vớig
(Tạo dữ liệu phía máy khách), dữ liệu được tạo kèo bóng đá cúp c2PGBench
Khách hàng 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ụngFreeze
Tùy chọn với phiên bản 14 trở lên củaPostgreSQLĐể tăng tốc độ tiếp theoNút hút
, ngoại trừ trênpgbench_accounts
Bảng nếu kèo bóng đá cúp c2 phân vùng được bật. Sử dụngg
gây ra việc đăng nhập để in một tin nhắn mỗi 100.000 hàng trong khi tạo dữ liệu cho tất cả kèo bóng đá cúp c2 bảng.
vớig
(Tạo dữ liệu phía máy chủ), chỉ kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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ữ liệu phía máy khách (tương đương vớig
).
V
(chân kèo bóng đá cúp c2) #GọiNút hút
Trên kèo bóng đá cúp c2 bảng tiêu chuẩn.
P
(Tạo khóa chính) #Tạo kèo bóng đá cúp c2 chỉ mục khóa chính trên kèo bóng đá cúp c2 bảng tiêu chuẩn.
f
(Tạo khóa ngoại) #Tạo kèo bóng đá cúp c2 ràng buộc khóa nước ngoài giữa kèo bóng đá cúp c2 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 có chất độn đã cho. Mặc định là 100.
-N
--No-Vacuum
#kèo bóng đá cúp c2 thực hiện kèo bóng đá cúp c2 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 kèo bóng đá cúp c2-I
.)
-Q
---quiet
#Chuyển đổi đăng nhập sang chế độ yên tĩnh, chỉ tạo kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 có hiệu lực nếug
được chỉ định kèo bóng đá cúp c2-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 kèo bóng đá cúp c2pgbench_accounts
Bảng. Mặc định là 1. Khi tỷ lệ là 20.000 hoặc lớn hơn, kèo bóng đá cúp c2 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 đá cúp c2 số nguyên lớn hơn (Bigint
), để đủ lớn để giữ phạm vi nhận dạng tài khoản.
-Eforign-Keys
#Tạo kèo bóng đá cúp c2 ràng buộc khóa nước ngoài giữa kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 chọn này yêu cầu rằng--Đoạn
được đặt thành khác kèo bóng đá cúp c2. Nếu kèo bóng đá cúp c2 xác định, mặc định làphạm vi
.
--đều có phần =num
#Tạo kèo bóng đá cúp c2 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 đá cúp c2 có phân vùng.
--TableSpace =kèo bóng đá cúp c2 gian bảng
#Tạo kèo bóng đá cúp c2 bảng trong không gian bảng được chỉ định, thay vì không gian bảng mặc định.
--Unlogged ables
#Tạo tất cả kèo bóng đá cúp c2 bảng dưới dạng kèo bóng đá cúp c2 bảng chưa được tính, thay vì kèo bóng đá cúp c2 bảng vĩnh viễn.
PGBenchChấp nhận kèo bóng đá cúp c2 đối số điểm chuẩn dòng lệnh 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 đá cúp c2 tập lệnh sẽ được thực thi. kèo bóng đá cúp c2 tập lệnh tích hợp có sẵn là:TPCB giống như
,Đơn giản update
vàChỉ chọn
. Tiền tố rõ ràng của kèo bóng đá cúp c2 tên tích hợp được chấp nhận.Danh sách
, Hiển thị danh sách kèo bóng đá cúp c2 tập lệnh tích hợp và thoát ngay lập tức.
Tùy chọn, 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 đá cúp c2 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ữ liệu đồ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 đá cúp c2, 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
varname
=
giá trị
-DEFINE =
varname
=
giá trị
#Xác định kèo bóng đá cúp c2 biến để sử dụng bởi tập lệnh tùy chỉnh (xem bên dưới). Nhiều-D
Tùy chọn được cho phép.
-f
FileName [@weight]
-file =
FileName [@weight]
#Thêm tập lệnh kèo bóng đá cúp c2 đọc từFileName
đến danh sách kèo bóng đá cúp c2 tập lệnh sẽ được thực thi.
Tùy chọn, 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 đá cúp c2 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 đá cúp c2 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 kèo bóng đá cúp c2PGBench. Sử dụng nhiều hơn một luồng có thể hữu ích trên kèo bóng đá cúp c2 máy đa CPU.
-L
--log
#Viết thông tin về mỗi kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 giao dịch tụt hậu so với lịch trình nhiều hơnGiới hạn
MS, và do đó kèo bóng đá cúp c2 có hy vọng đáp ứng giới hạn độ trễ, hoàn toàn kèo bóng đá cúp c2 đượ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 đá cúp c2 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 đá cúp c2 phải số của họ, hãy sử dụng--Max-Tries = 0
. Theo mặc định, tùy chọn--Max-Tries
được đặt thành 1 và kèo bóng đá cúp c2 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 đá cúp c2 giao dịch đó.
-M
QueryMode
--Protocol =
QueryMode
#kèo bóng đá cúp c2 thức sử dụng để gửi truy vấn đến máy chủ:
đơn giản
: Sử dụng kèo bóng đá cúp c2 thức truy vấn đơn giản.
mở rộng
: Sử dụng kèo bóng đá cúp c2 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 đá cúp c2 câu lệnh đã chuẩn bị.
kèo bóng đá cúp c2Chuẩn bị
MODE,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 đá cúp c2 chế độ khác.
Mặc định là kèo bóng đá cúp c2 thức truy vấn đơn giản. (Nhìn thấyChương 53Để biết thêm thông tin.)
-N
--No-Vacuum
#Thực hiện kèo bóng đá cúp c2 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 đá cúp c2 bảng tiêu chuẩnpgbench_accounts
,pgbench_branches
,pgbench_history
vàpgbench_tellers
.
-N
--skip-some-updates
#Chạy tập lệnh 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 đá cúp c2, độ lệch chuẩn và số lượng kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 sau khi tuần tự hóa/bế tắc
-R
#Báo cáo kèo bóng đá cúp c2 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 lần (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 nối tiếp hoặc sử dụng lỗi 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 đá cúp c2 bằng 1.
-R
Rate
--Rate =
Rate
#Thực hiện kèo bóng đá cúp c2 giao dịch nhắm mục tiêu tỷ lệ được chỉ định thay vì chạy càng nhanh càng tốt (mặc định). Tỷ lệ được đưa ra trong kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 đượ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 đá cúp c2 phải chờ kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 kèo bóng đá cúp c2PGBenchđầu ra. Với kèo bóng đá cúp c2 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 chọn), hệ số tỷ lệ sẽ được báo cáo là 1 trừ khi tùy chọn này được sử dụng.
-S
--Select chỉ
#Chạy tập lệnh chỉ chọn tích hợp. Tốc ký cho-B CHỌN CHỈ
.
-T
kèo bóng đá cúp c2
--TransActions =
kèo bóng đá cúp c2
#Số lượng kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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ữ liệu tóm tắt trên khoảng thời gian, như được mô tả bên dưới.
--Exit-on-Abort
#Thoát ngay khi bất kỳ máy khách nào bị hủy bỏ do một số lỗi. Không có tùy chọn này, ngay cả khi khách hàng bị hủy bỏ, kèo bóng đá cúp c2 máy khách khác có thể tiếp tục chạy theo quy định của-T
hoặc-T
Tùy chọn vàPGBenchSẽ in một kết quả kèo bóng đá cúp c2 đầy đủ trong trường hợp này.
Lưu ý rằng kèo bóng đá cúp c2 thất bại tuần tự hóa hoặc thất bại bế tắc không phá thai của khách hàng, vì vậy chúng không bị ảnh hưởng bởi tùy chọn 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.
--Failures-Detailed
#Báo cáo thất bại trong nhật ký tổng hợp và tổng hợp, cũng như trong kèo bóng đá cúp c2 báo cáo chính và mỗi kịch bản, được nhóm theo kèo bóng đá cúp c2 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/bế tắc 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 đá cúp c2 tệp nhật ký được tạo bởi--log
. Mặc định làpgbench_log
.
--Max-Tries =number_of_tries
#Bật thử lại cho kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 có-Latency-Limit
hoặc-thời gian
. Giá trị mặc định là 1 và kèo bóng đá cúp c2 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/bế tắc lạiĐể biết thêm thông tin về việc thử lại kèo bóng đá cúp c2 giao dịch đó.
-ProTros-Timestamp
#Khi hiển thị tiến trình (tùy chọn-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 kèo bóng đá cúp c2 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 đá cúp c2 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 mẽ, thất bại nếu kèo bóng đá cúp c2 có) hoặc giá trị số nguyên thập phân kèo bóng đá cúp c2 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 chọn--Rate
Sử dụng nó để lên lịch kèo bóng đá cúp c2). 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 đá cúp c2 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 kèo bóng đá cúp c2 cách rõ ràng cho phép tái tạo kèo bóng đá cúp c2PGBench
Chạy chính xác, theo như kèo bóng đá cúp c2 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 mời 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 đá cúp c2 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 đá cúp c2 đượ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 đá cúp c2 giá trị TPS, bạn cần nhân kèo bóng đá cúp c2 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 lệnh 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 đối số dòng lệnh chung sau đây cho kèo bóng đá cúp c2 tham số kết nối và kèo bóng đá cúp c2 cài đặt phổ biến khác:
-Debug
#Đầu ra gỡ lỗi in.
-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ữ liệu
-P
Cổng
--port =
Cổng
#Số cổng của máy chủ cơ sở dữ liệu
-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 lệnh 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 đá cúp c2 vấn đề tĩnh như kèo bóng đá cúp c2 tùy chọn dòng lệnh không hợp lệ hoặc kèo bóng đá cúp c2 lỗi nội bộ được cho là không bao giờ xảy ra. kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 phần nếu--Exit-on-Abort
Tùy chọn kèo bóng đá cúp c2 được chỉ định.
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 đá cúp c2 khácPOSTGRESQLTiện ích, sử dụng kèo bóng đá cúp c2 biến môi trường được hỗ trợ bởilibpq(xemPhần 32.15).
Biến môi trườngpg_color
Chỉ định có nên sử dụng màu trong kèo bóng đá cúp c2 thông báo chẩn đoán hay không. kèo bóng đá cúp c2 giá trị có thể làluôn luôn
,Auto
vàkèo bóng đá cúp c2 bao giờ
.
PGBenchThực thi kèo bóng đá cúp c2 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 đá cúp c2 tập lệnh có thể bao gồm kèo bóng đá cúp c2 tập lệnh tích hợp được chỉ định với-B
và kèo bóng đá cúp c2 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 đá cúp c2 trọng số tương đối được chỉ định sau kèo bóng đá cúp c2@
để thay đổi xác suất lựa chọn của nó. Trọng lượng mặc định là1
. Tập lệnh có trọng lượng0
bị bỏ qua.
Tập lệnh kèo bóng đá cúp c2 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 đá cúp c2 được chọn ngẫu nhiênAID
,TID
,giá thầu
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 đá cúp c2 thực sự là TPC-B, do đó tên.
Bắt đầu;
55676_55752
Chọn Abalance từ PGBench_Accounts WHERE AID =: AID;
Cập nhật pgbench_tellers đặt tbalance = tbalance +: delta kèo bóng đá cúp c2 đó tid =: tid;
Cập nhật pgbench_branches đặt bbalance = bbalance +: delta kèo bóng đá cúp c2 đó giá thầu =: giá thầu;
Chèn vào kèo bóng đá cúp c2 giá trị pgbench_history (tid, giá thầu, viện trợ, delta, mtime)
end;
Nếu bạn chọnĐơ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 đá cúp c2 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 chọnCHỌN CHỈ
tích hợp (cũng-S
), ChỉChọn
được ban hành.
57179_57188có hỗ trợ chạy kèo bóng đá cúp c2 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 chọn). kèo bóng đá cúp c2 trường hợp này Akèo bóng đá cúp c2được tính là kèo bóng đá cúp c2 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 đá cúp c2 đường và đường trống bắt đầu bằng--
bị bỏ qua. Tệp tập lệnh cũng có thể chứaHồilệnh meta, được giải thích bởiPGBenchchính nó, như được mô tả bên dưới.
trướcPostgreSQL9.6, kèo bóng đá cúp c2 lệnh SQL trong kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 dòng kết thúc bằng dấu chấm phẩy.
giả định rằngPGBenchkèo bóng đá cúp c2 tập lệnh không chứa kèo bóng đá cúp c2 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 đá cúp c2 tệp script. Tên biến phải bao gồm kèo bóng đá cúp c2 chữ cái (bao gồm kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 vài biến được đặt trước tự động, được liệt kê trongBảng 298. Một giá trị được chỉ định cho kèo bóng đá cúp c2 biến này bằng cách sử dụng-D
được ưu tiên hơn kèo bóng đá cúp c2 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 đá cúp c2 câu.
Bảng 298. 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 dòng bổ sung bằng cách viết ngược lại. kèo bóng đá cúp c2 đố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 đá cúp c2 lệnh này có thể được sử dụng để kết thúc kèo bóng đá cúp c2 truy vấn SQL, thay thế dấu chấm chấm 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 đá cúp c2 cột được lưu trữ thành kèo bóng đá cúp c2 biến được đặt tên 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 đá cúp c2 truy vấn SQL kết hợp (được phân tách bởi\;
) Có kèo bóng đá cúp c2 cột được lưu trữ thành kèo bóng đá cúp c2 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 đá cúp c2 có hàng, kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 biểu thức có\ set
, với kèo bóng đá cúp c2 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
, tham chiếu đến kèo bóng đá cúp c2 biến:
variablename
,toán tửVới sự ư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.
kèo bóng đá cúp c2 chức năng và hầu hết kèo bóng đá cúp c2 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 đá cúp c2 giá trị số không phải là làTRUE
, Giá trị số kèo bóng đá cúp c2 vànull
làSai
.
kèo bóng đá cúp c2 hằng số nguyên và nhỏ quá lớn hoặc nhỏ, cũng như kèo bóng đá cúp c2 toán tử số nguyên số nguyên (+
,-
,*
và/
) Tăng lỗi trên tràn.
Khi kèo bóng đá cúp c2 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 lệnh ngủ kèo bóng đá cúp c2 thời lượng được chỉ định tính bằng micro giây (US
), miliseconds (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 đá cúp c2 biến có giá trị số nguyên.
Ví dụ:
\ Ngủ 10 ms
\ setshellvarname
lệnh
[Đối số
...]
#Đặt biếnvarname
với kết quả của lệnh shellLệnh
với đã choĐối số
(s). Lệnh phải trả về giá trị số nguyên thông qua đầu ra tiêu chuẩn của nó.
lệnh
và mỗiĐối số
có thể là kèo bóng đá cúp c2 hằng số văn bản hoặc:
variablename
tham chiếu đến kèo bóng đá cúp c2 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 đá cúp c2 dấu hai chấm vào đầuĐối số
.
Ví dụ:
69234_69336
\ shelllệnh
[Đối số
...]
#giống như\ setshell
, nhưng kết quả của lệnh bị loại bỏ.
Ví dụ:
\ shell lệnh literal_argument: biến :: literal_starting_with_colon
\ startPipeline
\ SyncPipeline
\ EndPipeline
#Nhóm lệnh này thực hiện đường ống của kèo bóng đá cúp c2 câu lệnh SQL. Một đường ống phải bắt đầu bằng một\ startPipeline
và kết thúc bằng kèo bóng đá cúp c2\ EndPipeline
. Ở giữa có thể có bất kỳ số nào\ SyncPipeline
kèo bóng đá cúp c2 lệnh, gửi ASync MessageKhông kết thúc đường ống đang diễn ra và xả bộ đệm gửi. Trong chế độ Pipeline, kèo bóng đá cúp c2 câu lệnh được gửi đến máy chủ mà không chờ kết quả của kèo bóng đá cúp c2 câu lệnh trước đó.Phần 32.5Để biết thêm chi tiết. Chế độ đường ống yêu cầu sử dụng kèo bóng đá cúp c2 thức truy vấn mở rộng.
kèo bóng đá cúp c2 toán tử số học, bitwise, so sánh và logic được liệt kê trongBảng 299được tích hợp vàoPGBenchvà có thể được sử dụng trong kèo bóng đá cúp c2 biểu thức xuất hiện trong\ set
. kèo bóng đá cúp c2 nhà khai thác được liệt kê theo thứ tự ưu tiên tăng.
Bảng 299. Toán tử PGBench
Nhà điều hành Mô tả Ví dụ (s) |
---|
logic hoặc
|
logic và
|
logic kèo bóng đá cúp c2
|
Kiểm tra giá trị Boolean
|
thử nghiệm nullness
|
bằng
|
kèo bóng đá cúp c2 bằng
|
kèo bóng đá cúp c2 bằng
|
nhỏ 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 đá cúp c2
|
BitWise Shift trái
|
BitWise Shift Right
|
Bổ sung
|
Phép 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 đá cúp c2 chức năng được liệt kê trongBảng 300được tích hợp vàoPGBenchvà có thể được sử dụng trong kèo bóng đá cúp c2 biểu thức xuất hiện trong\ set
.
Bảng 300. Hàm PGBench
function Mô tả Ví dụ (s) |
---|
Giá trị tuyệt đối
|
In đối số thànhstderrvà trả về đối số.
|
đúc để tăng gấp đôi.
|
Số mũ (
|
Chọn giá trị lớn nhất trong số kèo bóng đá cúp c2 đố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 đá cúp c2 đố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 kèo bóng đá cúp c2
|
Tính toán số nguyên ngẫu nhiên được phân phối theo cấp số nhân kèo bóng đá cúp c2
|
Tính toán số nguyên ngẫu nhiên do Gaussian phân phối kèo bóng đá cúp c2
|
Tính toán số nguyên ngẫu nhiên do Zipfian phân phối kèo bóng đá cúp c2
|
căn bậc hai
|
Thengẫu nhiên
Hàm tạo ra kèo bóng đá cúp c2 giá trị bằng cách sử dụng phân phối đồng đều, đó là tất cả kèo bóng đá cúp c2 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 đá cúp c2 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ố
97878_97970tham số
, và sau đó chiếu lên số nguyên giữa kèo bóng đá cúp c2 giới hạn. Để chính xác, với
f (x) = exp (-parameter*(x-min)/(max-min+1))/(1-exp (-parameter))
sau đó giá trịi
giữamin
vàMax
Bao gồm được rút ra 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 đá cúp c2 giá trị thường xuyên hơn gầnmin
được truy cập và kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 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-min+1))/
(2.0*PHI (tham số)-1)
sau đó giá trịi
giữamin
vàMax
Bao gồm được vẽ 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 người quan hệ0.5 / tham số
xung quanh trung bình và 95% ở giữa2.0 / tham số
, đó là kèo bóng đá cúp c2 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 đá cúp c2 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 "Thế hệ biến đổi ngẫu nhiên kèo bóng đá cúp c2 đồ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 kèo bóng đá cúp c2 phạm vi [1,001, 1000].
Khi thiết kế điểm chuẩn chọn kèo bóng đá cúp c2 hàng không đồng nhất, hãy lưu ý rằng kèo bóng đá cúp c2 hàng được chọn có thể tương quan với kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 hàng đã chọn và xóa kèo bóng đá cúp c2 mối 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 đá cúp c2 đượ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 lệnh-D
Tùy chọn.
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 đá cúp c2 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 đá cúp c2 giá trị được 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 đá cúp c2 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 đá cúp c2 giá trị đầu ra. kèo bóng đá cúp c2 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 đá cúp c2 hàm ngẫu nhiên không đồng nhất nhưRandom_zipfian
hoặcRandom_Exponential
để kèo bóng đá cúp c2 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 đâyPGBench105123_105267
\ Đặ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 đá cúp c2 tương quan với nhau và đây là khi tham số hạt giống tùy chọn có ích:
105600_105707
kèo bóng đá cúp c2 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 ra kèo bóng đá cúp c2 va chạm, một số giá trị sẽ không thể truy cập được và kèo bóng đá cúp c2 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 đá cúp c2 TPC-B-giống tích hợp là:
\ Đặt Viện trợ ngẫu nhiên (1, 100000 *: Tỷ lệ)
Tập lệnh này cho phép mỗi lần lặp lại giao dịch tham chiếu kèo bóng đá cúp c2 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 đá cúp c2 có--Ggregate-Interval
Tùy chọn),PGBenchViết thông tin về mỗi kèo bóng đá cúp c2 vào một tệp nhật ký. Tệp nhật ký sẽ được đặt tên
, kèo bóng đá cúp c2 đó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 chọn. Nếu-J
Tùy chọn từ 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ư kèo bóng đá cúp c2 trường hợp công nhân đơn tiêu chuẩn.
, kèo bóng đá cúp c2 đó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 đá cúp c2 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 đá cúp c2
kèo bóng đá cúp c2 dịch_no
Đếm số lượng kèo bóng đá cúp c2 đã được thực hiện bởi phiên đó
thời gian
Thời gian trôi qua của kèo bóng đá cúp c2, 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 đá cúp c2 (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 đá cúp c2, dưới dạng tem thời gian unix-epoch
time_us
Phần thứ hai của thời gian hoàn thành kèo bóng đá cúp c2, tính bằng micro giây
Lịch trình_lag
Độ trễ bắt đầu kèo bóng đá cúp c2, đó 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 đá cúp c2 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
Đếm thử lại sau khi tuần tự hóa hoặc lỗi bế tắc trong khi kèo bóng đá cúp c2 (chỉ có mặt nếu--Max-Tries
kèo bóng đá cúp c2 bằng một)
Khi cả hai--Rate
và--Latency-Limit
được sử dụng,thời gian
Đối với kèo bóng đá cúp c2 bị bỏ qua sẽ được báo cáo làBỏ qua
. Nếu kèo bóng đá cúp c2 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 đá cúp c2 thành công
. Nếu bạn sử dụng--Failures-Detailed
Tùy chọn, Thethời gian
của kèo bóng đá cúp c2 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/bế tắc lạiĐể biết thêm thông tin).
Đây là kèo bóng đá cúp c2 đoạn của tệp nhật ký được tạo trong kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 82 đã trễ, vì độ trễ của nó (6.173 ms) đã vượt quá giới hạn 5 ms. Hai kèo bóng đá cúp c2 tiếp theo đã bị bỏ qua, vì chúng đã bị trễ trước khi chúng bắt đầu.
Ví dụ sau đây cho thấy một đoạn của tệp nhật ký với kèo bóng đá cúp c2 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 chọn được sử dụng, loại lỗi được báo cáo kèo bóng đá cúp c2Thời gian
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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 trong khoảng thời gian
sum_latency
Tổng độ trễ kèo bóng đá cúp c2
sum_latency_2
tổng bình phương của độ trễ kèo bóng đá cúp c2
min_latency
Độ trễ kèo bóng đá cúp c2 tối thiểu
Max_Latency
Độ trễ kèo bóng đá cúp c2 tối đa
sum_lag
tổng của sự chậm trễ bắt đầu giao dịch (kèo bóng đá cúp c2 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 đá cúp c2 trừ khi--Rate
được chỉ định)
min_lag
Độ trễ bắt đầu kèo bóng đá cúp c2 tối thiểu (0 trừ khi--Rate
được chỉ định)
MAX_LAG
Độ trễ bắt đầu kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 trừ khi--Max-Tries
kèo bóng đá cúp c2 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 đá cúp c2 trừ khi--Max-Tries
kèo bóng đá cúp c2 bằng một)
serialization_failures
Số lượng giao dịch bị lỗi tuần tự hóa và kèo bóng đá cúp c2 được thử lại sau đó (kèo bóng đá cúp c2 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 đá cúp c2 được thử lại sau đó (kèo bóng đá cúp c2 trừ khi--Failures-Detailed
được chỉ định)
Đây là kèo bóng đá cúp c2 số ví dụ đầu ra được tạo với tùy chọn này:
117936_118068
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 đá cúp c2 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 đá cúp c2. 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 chọn,PGBenchThu thập kèo bóng đá cúp c2 số liệu thống kê sau cho mỗi câu lệnh:
độ trễ
- Thời gian kèo bóng đá cúp c2 đã 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 đá cúp c2 lần chạy thành công của câu lệnh.
Số lượng thất bại kèo bóng đá cúp c2 câu lệnh 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.
Số lần thử lại sau khi tuần tự hóa hoặc lỗi bế tắc kèo bóng đá cúp c2 câu lệnh 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ố liệu thống kê thử lại nếu--Max-Tries
Tùy chọn kèo bóng đá cúp c2 bằng 1.
Tất cả kèo bóng đá cúp c2 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 lệnh mặc định, đầu ra sẽ trông tương tự như thế này:
Khởi động chân kèo bóng đá cúp c2 ... 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 đá cúp c2 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 đá cúp c2 ... kết thúc.
Nếu nhiều tệp tập lệnh được chỉ định, tất cả kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 khách hàng của chủ đề này dừng lại trong khi kèo bóng đá cúp c2 chủ đề khác tiếp tục hoạt động.--Exit-on-Abort
được chỉ định, tất cả kèo bóng đá cúp c2 luồng dừng ngay lập tức trong trường hợp này.
Lỗi khách hàng trực tiếp. Họ dẫn đến thoát ngay lập tức khỏiPGBenchVới thông báo lỗi tương ứng kèo bóng đá cúp c2 trường hợp nội bộPGBenchLỗi (được cho là kèo bóng đá cúp c2 bao giờ xảy ra ...) hoặc khi--Exit-on-Abort
được chỉ định. 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 đá cúp c2 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 đá cúp c2 hoàn thành giao dịch cuối cùng."kèo bóng đá cúp c2" thực sự được thực hiện trong PGBench?Để biết thêm thông tin). kèo bóng đá cúp c2 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 chọn) / Thời gian thử lại tối đa (được chỉ định bởi-Latency-Limit
Tùy chọn) / phần cuối của đ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 đá cúp c2 bị hủy bỏ và tiếp tục hoạt động.
mà kèo bóng đá cúp c2 cần chỉ định--Max-Tries
Tùy chọn, một giao dịch sẽ kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 giới hạn.
128404_128575
Hãy cẩn thận khi lặp lại kèo bóng đá cúp c2 giao dịch với kèo bóng đá cúp c2 lệnh shell. Không giống như kết quả của kèo bóng đá cúp c2 lệnh SQL, kết quả của kèo bóng đá cúp c2 lệnh shell không được quay lại, ngoại trừ giá trị biến của\ setshell
lệnh.
Độ 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 đá cúp c2 giao dịch và lệnh thành công nhưng không phải cho kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 trường này từ báo cáo chính.--Max-Tries
Tùy chọn kèo bóng đá cúp c2 bằng 1.
Nếu bạn muốn nhóm thất bại theo kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 lỗi tuần tự hóa/bế tắc, hãy sử dụng--verbose-errors
Tùy chọn.
Bạn có thể chỉ địnhPostgreSQL: Tài liệu: 17: ChươngĐối với kèo bóng đá cúp c2 bảng PGBench. Biến môi trườngpgoptions
Chỉ định kèo bóng đá cúp c2 tùy chọn cấu hình cơ sở dữ liệu được chuyển sang PostgreSQL thông qua dòng lệnh (xemPhần 19.1.4). Ví dụ: phương thức truy cập bảng mặc định giả thuyết cho kèo bóng đá cúp c2 bảng mà PGBench tạo ra được gọi làWuzza
có thể được chỉ định với:
pgoptions = '-c default_table_access_method = wuzza'
Nó rất dễ sử dụngPGBenchĐể tạo ra kèo bóng đá cúp c2 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 đá cúp c2 bao giờTin bất kỳ bài kiểm tra nào chỉ chạy kèo bóng đá cúp c2 vài giây. Sử dụng-T
hoặc-T
Tùy chọn để thực hiện lần chạy kéo dài ít nhất vài phút, để tăng tiếng ồn trung bình. Trong kèo bóng đá cúp c2 số trường hợp, bạn có thể cần hàng giờ để có được số có thể tái tạo.
Đố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 đá cúp c2, bạn sẽ chủ yếu là đo lường sự tranh chấp cập nhật.-S
hàng kèo bóng đá cúp c2pgbench_branches
Bảng và mọi kèo bóng đá cúp c2 đề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 đá cúp c2 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 đá cúp c2 bảng được khởi tạo: tích lũy kèo bóng đá cúp c2 hàng chết và không gian chết trong kèo bóng đá cúp c2 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ủaPGBenchlà chính 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 sốPGBenchkèo bóng đá cúp c2 phiên bản đồng thời, trên một số máy khách, đối với cùng một máy chủ cơ sở dữ liệu.
Nếu người dùng kèo bóng đá cúp c2 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 đá cúp c2 chạyPGBenchkèo bóng đá cúp c2 cơ sở dữ liệu đó.PGBenchSử dụng tên kèo bóng đá cúp c2 đủ tiêu chuẩn và kèo bóng đá cúp c2 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 đá cúp c2 chính xác, kèo bóng đá cúp c2 khớpMẫu nàyĐể báo cáo vấn đề tài liệu.