Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
Tài liệu này dành cho phiên bản không được hỗ trợ của kèo bóng đá cúp c2.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

kèo bóng đá cúp c227.4.

kèo bóng đá cúp c2cung cấp các cơ sở

Một số điểm thăm dò hoặc điểm theo dõi đã được đưa vàokèo bóng đá cúp c2; người dùng

Hiện tại,DTRACETiện ích được hỗ trợ, vào thời điểm đóSystemTapDự án cho Linux cung cấp tương đương DTRACE và cũng có thểSRC/bao gồm/Utils/Probes.h.

27.4.1. Biên dịch cho động

Theo mặc định, các đầu dò không khả dụng, vì vậy bạn sẽ cần phảikèo bóng đá cúp c2. Để bao gồm DTRACE--Enable-dtraceđếnPhần 15.4Để biết thêm thông tin.

27.4.2.

Một số đầu dò tiêu chuẩn được cung cấp trong mã nguồn, nhưBảng 27-15;Bảng 27-16Hiển thịkèo bóng đá cúp c2's

Bảng 27-15. Các đầu dò DTRACE tích hợp

tên tham số Mô tả
giao dịch-khởi động (LocalTransactionId) Đầu dò bắn kèo bóng đá cúp c2 bắt đầu một giao dịch mới. arg0 là
giao dịch-commit (LocalTransactionId) Đầu dò bắn kèo bóng đá cúp c2 giao dịch hoàn thành thành công.
Giao dịch-Abort (LocalTransactionId) Đầu dò bắn kèo bóng đá cúp c2 giao dịch hoàn thành không thành công.
Query-Start (const char *) Đầu dò bắn kèo bóng đá cúp c2 xử lý truy vấn được bắt đầu.
Truy vấn-Done (const char *) Đầu dò bắn kèo bóng đá cúp c2 xử lý hoàn tất truy vấn.
Query-Parse-Start (const char *) Đầu dò bắn kèo bóng đá cúp c2 phân tích cú pháp truy vấn được bắt đầu. arg0
Query-parse-Done (const char *) Đầu dò bắn kèo bóng đá cúp c2 phân tích cú pháp truy vấn hoàn tất. arg0
Query-rewrite-start (const char *) Đầu dò bắn kèo bóng đá cúp c2 viết lại truy vấn được bắt đầu. arg0
Query-rewrite-Done (const char *) Đầu dò bắn kèo bóng đá cúp c2 viết lại truy vấn hoàn tất.
Query-Plan-Start () Đầu dò bắn kèo bóng đá cúp c2 lập kế hoạch truy vấn được bắt đầu.
Query-Plan-Done () Đầu dò bắn kèo bóng đá cúp c2 lập kế hoạch truy vấn hoàn tất.
Query-Execute-Start () Đầu dò bắn kèo bóng đá cúp c2 thực hiện truy vấn được bắt đầu.
Query-Execute-Done () Đầu dò bắn kèo bóng đá cúp c2 thực hiện truy vấn là
Statement-Status (const char *) Đầu dò bắn bất cứ lúc nào quá trình máy chủ cập nhậtpg_stat_activity.trạng thái. arg0 là chuỗi trạng thái mới.
điểm kiểm tra-start (int) Đầu dò bắn kèo bóng đá cúp c2 điểm kiểm tra được bắt đầu. Arg0 giữ
Checkpoint-Done (int, int, int, int, int) Đầu dò bắn kèo bóng đá cúp c2 hoàn tất điểm kiểm tra. (Các đầu dò
CLOG-Checkpoint-Start (bool) Đầu dò bắn kèo bóng đá cúp c2 phần tắc của điểm kiểm tra là
CLOG-Checkpoint-Done (bool) Đầu dò bắn kèo bóng đá cúp c2 phần tắc của điểm kiểm tra là
Subtrans-Checkpoint-Start (bool) Đầu dò bắn kèo bóng đá cúp c2 phần phụ của điểm kiểm tra là
Subtrans-Checkpoint-Done (bool) Đầu dò bắn kèo bóng đá cúp c2 phần phụ của điểm kiểm tra là
Multixact-Checkpoint-Start (bool) Đầu dò bắn kèo bóng đá cúp c2 phần multixact của điểm kiểm tra là
Multixact-Checkpoint-Done (bool) Đầu dò bắn kèo bóng đá cúp c2 phần multixact của điểm kiểm tra là
Buffer-Checkpoint-Start (int) Đầu dò bắn kèo bóng đá cúp c2 phần viết bộ đệm của A của A
Buffer-sync-start (int, int) Đầu dò bắn kèo bóng đá cúp c2 chúng ta bắt đầu viết bộ đệm bẩn trong kèo bóng đá cúp c2
Buffer-sync-written (int) Đầu dò bắn sau mỗi bộ đệm được viết trong
Buffer-sync-Done (int, int, int) Đầu dò bắn kèo bóng đá cúp c2 tất cả các bộ đệm bẩn đã được viết. arg0
Buffer-Checkpoint-Sync-Start () Đầu dò bắn sau kèo bóng đá cúp c2 bộ đệm bẩn đã được ghi vào
Buffer-Checkpoint-Done () Đầu dò bắn kèo bóng đá cúp c2 đồng bộ hóa bộ đệm với đĩa là
Twophase-Checkpoint-Start () Đầu dò bắn kèo bóng đá cúp c2 phần hai pha của điểm kiểm tra là
Twophase-Checkpoint-Done () Đầu dò bắn kèo bóng đá cúp c2 phần hai pha của điểm kiểm tra là
Buffer-read-start (forknumber, blocknumber, oid, oid, oid, int, bool) Đầu dò bắn kèo bóng đá cúp c2 bắt đầu đọc bộ đệm. arg0 và arg1
Buffer-Read-Done Đầu dò bắn kèo bóng đá cúp c2 đọc bộ đệm hoàn tất. arg0 và arg1
bộ đệm-flush-start (forknumber, blocknumber, oid, oid, oid) Đầu dò bắn trước kèo bóng đá cúp c2 đưa ra bất kỳ yêu cầu ghi nào cho một chia sẻ
Buffer-Flush-Done (forknumber, blocknumber, oid, oid, oid) Đầu dò bắn kèo bóng đá cúp c2 hoàn thành yêu cầu ghi. (Lưu ý rằng
19233_19259 (forknumber, blocknumber, oid, oid, oid) Đầu dò bắn kèo bóng đá cúp c2 quá trình máy chủ bắt đầu viết một hình bẩnShared_buffersquá nhỏ hoặc tham số điều kèo bóng đá cúp c2ển BGWRITER cần điều chỉnh.)
Buffer-write-di-done (forknumber, blocknumber, oid, oid, oid) Đầu dò bắn kèo bóng đá cúp c2 một bộ đệm bẩn hoàn tất. Các
Wal-Buffer-Write-Dirty-Start () Đầu dò bắn kèo bóng đá cúp c2 quá trình máy chủ bắt đầu viết một hình bẩnWal_bufferscũng vậy
Wal-Buffer-Write-Died-Done () Đầu dò kích hoạt kèo bóng đá cúp c2 viết bộ đệm wal bẩn
XLOG-Insert (Char không dấu, Char không dấu) Đầu dò bắn kèo bóng đá cúp c2 bản ghi WAL được chèn. arg0 là
XLOG-SWITCH () Đầu dò bắn kèo bóng đá cúp c2 yêu cầu chuyển đổi phân đoạn Wal.
smgr-md-read-start Đầu dò bắn kèo bóng đá cúp c2 bắt đầu đọc một khối từ A
smgr-md-read-Done (forknumber, blocknumber, oid, oid, oid, int, int, int) Đầu dò bắn kèo bóng đá cúp c2 hoàn tất việc đọc khối. arg0 và arg1
smgr-md-write-start (forknumber, blocknumber, oid, oid, oid, int) Đầu dò bắn kèo bóng đá cúp c2 bắt đầu viết một khối vào một mối quan hệ.
smgr-md-write-done (forknumber, blocknumber, oid, oid, oid, int, int, int) Đầu dò bắn kèo bóng đá cúp c2 ghi khối hoàn tất. arg0 và arg1
Sort-Start (int, bool, int, int, bool) Đầu dò bắn kèo bóng đá cúp c2 hoạt động sắp xếp được bắt đầu. arg0
Sort-Done (bool, dài) Đầu dò bắn kèo bóng đá cúp c2 sắp xếp hoàn thành. Arg0 đúng với
lwlock-acquire (lwlockid, lwlockmode) Đầu dò bắn kèo bóng đá cúp c2 có được LWLOCK. arg0 là
LWLOCK-RELEASE (lwlockid) Đầu dò bắn kèo bóng đá cúp c2 LWLOCK đã được phát hành (nhưng lưu ý
lwlock-wait-start (lwlockid, lwlockmode) Đầu dò bắn kèo bóng đá cúp c2 không có LWLOCK ngay lập tức
LWLOCK-WAIT-DONE (lwlockid, lwlockmode) Đầu dò bắn kèo bóng đá cúp c2 quy trình máy chủ đã được phát hành từ
lwlock-condacquire (lwlockid, lwlockmode) 24527_24710
lwlock-condacquire-fail (lwlockid, lwlockmode) Đầu dò bắn kèo bóng đá cúp c2 LWLOCK không được mua lại thành công
Khóa-Wait-Start Đầu dò bắn kèo bóng đá cúp c2 yêu cầu khóa nặng (LMGR
Lock-Wait-Done Đầu dò bắn kèo bóng đá cúp c2 yêu cầu khóa nặng (LMGR
Holdlock-Found () Đầu dò bắn kèo bóng đá cúp c2 bế tắc do bế tắc

Bảng 27-16. Các loại được xác định được sử dụng trong tham số đầu dò

loại Định nghĩa
LocalTransactionId unsign int
lwlockid int
lwlockmode int
Lockmode int
BlockNumber unsign int
OID unsign int
Forknumber int
bool Char

27.4.3. Sử dụng đầu dò

Ví dụ dưới đây hiển thị tập lệnh DTRACE để phân tíchPG_STAT_DATABASETrước và sau A

#!/Usr/sbin/dtrace -Qs

kèo bóng đá cúp c2 được thực thi, tập lệnh D cho đầu ra như:

# ./txn_count.d `pGrep -n postgres` hoặc.

Lưu ý:SystemTap sử dụng một ký hiệu khác cho dấu vết

Bạn nên nhớ rằng các tập lệnh dtrace cần phải được cẩn thận

Có thể tìm thấy thêm các tập lệnh trong PGFoundryDtrace.

27.4.4. Xác định đầu dò mới

Các đầu dò mới có thể được xác định trong mã bất cứ nơi nào nhà phát triển

  1. Quyết định tên và dữ liệu thăm dò được cung cấp thông qua

  2. Thêm định nghĩa đầu dò vàoSRC/Backend/Utils/Probes.D

  3. Bao gồmpg_trace.hNếu nó khôngTrace_PostgresqlMacros thăm dò tại

  4. Recompile và xác minh rằng các đầu dò mới có sẵn

Ví dụ:Đây là một ví dụ về cách bạn sẽ thêm một đầu dò

  1. Quyết định rằng đầu dò sẽ được đặt tênGiao dịch-Bắt đầuvà yêu cầu tham số loại

  2. Thêm định nghĩa đầu dò vàoSRC/Backend/Utils/Probes.D:

    Giao dịch thăm dò artart (localTransactionId);

    Lưu ý việc sử dụng gạch chân kép trong tên thăm dò. Trong aGiao dịch-khởi độnglà tên để tài liệu cho

  3. Tại thời điểm biên dịch,Giao dịchISTrace_Postgresql_Transaction_Start(Lưu ýpg_trace.h. Thêm cuộc gọi macro vào

    Trace_Postgresql_Transaction_Start (vxid.localtransactionid);
  4. Sau kèo bóng đá cúp c2 biên dịch lại và chạy nhị phân mới, hãy kiểm tra xem bạn có

    # DTRACE -LN giao dịch bắt đầu

Có một vài điều cần cẩn thận kèo bóng đá cúp c2 thêm dấu vết

  • Bạn nên cẩn thận rằng các loại dữ liệu được chỉ định cho đầu dò

  • Trên hầu hết các nền tảng, nếukèo bóng đá cúp c2được xây dựng với--Enable-dtrace, Các đối số cho một macro theo dõi sẽNgay cả kèo bóng đá cúp c2 không có dấu vết nào. Điều này thường không đáng lo ngại nếu bạn là

    if (trace_postgresql_transaction_start_enables ()))

    Mỗi macro theo dõi có tương ứngĐã bậtMacro.