Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / 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 soi kèo bóng đá truoctran.
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ế.

27.4. soi kèo bóng đá truoctran

soi kèo bóng đá truoctrancung cấp

Một số điểm thăm dò hoặc điểm theo dõi đã được đưa vàosoi kèo bóng đá truoctran; các

Hiện tại, chỉDTRACETiện ích được hỗ trợ, có sẵn trênSystemTapDự án cho Linux cũng cung cấp một DTRACE tương đương. Hỗ trợ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ảisoi kèo bóng đá truoctran. ĐẾN--Enable-dtraceĐể cấu hình. Nhìn thấyPhần 15,5Để biết thêm

27.4.2. Đầu dò tích hợp

Một số đầu dò tiêu chuẩn được cung cấp trong mã nguồn,Bảng 27-3.soi kèo bóng đá truoctran

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

tên tham số Mô tả
giao dịch-khởi động (LocalTransactionId) Đầu soi kèo bóng đá truoctran bắt đầu một giao dịch mới.
giao dịch-commit (LocalTransactionId) Đầu soi kèo bóng đá truoctran giao dịch hoàn thành
Giao dịch-Abort (LocalTransactionId) Đầu soi kèo bóng đá truoctran giao dịch hoàn thành
Query-Start (const char *) Đầu soi kèo bóng đá truoctran xử lý truy vấn là
Truy vấn-Done (const char *) Đầu soi kèo bóng đá truoctran xử lý truy vấn là
Query-Parse-Start (const char *) Đầu soi kèo bóng đá truoctran phân tích cú pháp truy vấn là
Query-parse-Done (const char *) Đầu soi kèo bóng đá truoctran phân tích cú pháp truy vấn là
Query-rewrite-start (const char *) Đầu soi kèo bóng đá truoctran viết lại truy vấn là
Query-rewrite-Done (const char *) Đầu soi kèo bóng đá truoctran viết lại truy vấn là
Query-Plan-Start () Đầu soi kèo bóng đá truoctran lập kế hoạch truy vấn là
Query-Plan-Done () Đầu soi kèo bóng đá truoctran lập kế hoạch truy vấn là
Query-Execute-Start () Đầu soi kèo bóng đá truoctran thực hiện truy vấn là
Query-Execute-Done () Đầu soi kèo bóng đá truoctran thực hiện truy vấn là
Statement-Status (const char *) Đầu dò bắn bất cứ khi nào quá trình máy chủ cập nhậtpg_stat_activity.current_querytrạng thái. arg0 là
điểm kiểm tra-start (int) Đầu soi kèo bóng đá truoctran điểm kiểm tra được bắt đầu. arg0
Checkpoint-Done (int, int, int, int, int) Đầu soi kèo bóng đá truoctran hoàn thành điểm kiểm tra.
CLOG-Checkpoint-Start (bool) Đầu soi kèo bóng đá truoctran phần tắc của a
CLOG-Checkpoint-Done (bool) Đầu soi kèo bóng đá truoctran phần tắc của A của A
Subtrans-Checkpoint-Start (bool) Đầu soi kèo bóng đá truoctran phần con của A
Subtrans-Checkpoint-Done (bool) Đầu soi kèo bóng đá truoctran phần phụ của A của A
Multixact-Checkpoint-Start (bool) Đầu soi kèo bóng đá truoctran phần đa biến của A của A
Multixact-Checkpoint-Done (bool) Đầu soi kèo bóng đá truoctran phần đa biến của A của A
Buffer-Checkpoint-Start (int) Đầu soi kèo bóng đá truoctran phần viết bộ đệm của
Buffer-sync-start (int, int) thăm soi kèo bóng đá truoctran chúng ta bắt đầu viết bẩn
bộ đệm-sync-written (int) Đầu dò bắn sau mỗi bộ đệm được viết
Buffer-sync-Done (int, int, int) thăm soi kèo bóng đá truoctran tất cả các bộ đệm bẩn đã
Buffer-Checkpoint-sync-start () Đầu dò bắn sau khi bộ đệm bẩn đã
Buffer-Checkpoint-Done () Đầu soi kèo bóng đá truoctran đồng bộ hóa bộ đệm với đĩa là
Twophase-Checkpoint-Start () Đầu soi kèo bóng đá truoctran phần hai pha của a
Twophase-Checkpoint-Done () Đầu soi kèo bóng đá truoctran phần hai pha của a
Buffer-read-start (forknumber, blocknumber, oid, oid, oid, bool, Đầu soi kèo bóng đá truoctran bắt đầu đọc bộ đệm.
Buffer-Read-Done (forknumber, blocknumber, oid, oid, oid, bool, Đầu soi kèo bóng đá truoctran bộ đệm đọc hoàn tất.
bộ đệm-flush-start (forknumber, blocknumber, oid, oid, oid) Đầu dò bắn trước khi đưa ra bất kỳ yêu cầu ghi nào
Buffer-Flush-Done (forknumber, blocknumber, oid, oid, oid) Đầu soi kèo bóng đá truoctran yêu cầu ghi hoàn tất.
22735_22761 (forknumber, blocknumber, oid, oid, oid) Đầu soi kèo bóng đá truoctran quá trình máy chủ bắt đầuShared_buffersquá nhỏ hoặc các tham số điều khiển bgwriter cần
Buffer-write-didt-done (forknumber, blocknumber, oid, oid, oid) Đầu soi kèo bóng đá truoctran viết Buffer bẩn
Wal-Buffer-Write-Didy-Start () Đầu soi kèo bóng đá truoctran khi quá trình máy chủ bắt đầuWal_buffersquá nhỏ.)
Wal-Buffer-Write-Dast-Done () Đầu soi kèo bóng đá truoctran viết bộ đệm wal bẩn
XLOG-Insert (Char không dấu, Char không dấu) Đầu soi kèo bóng đá truoctran bản ghi WAL được chèn.
XLOG-SWITCH () Đầu soi kèo bóng đá truoctran chuyển đổi phân đoạn Wal
smgr-md-read-start (forknumber, blocknumber, oid, oid, oid) Đầu soi kèo bóng đá truoctran bắt đầu đọc một khối
smgr-md-read-done (forknumber, blocknumber, oid, oid, oid, int, Đầu soi kèo bóng đá truoctran hoàn tất việc đọc khối.
smgr-md-write-start (forknumber, blocknumber, oid, oid, oid) Đầu soi kèo bóng đá truoctran bắt đầu viết một khối thành
smgr-md-write-done (forknumber, blocknumber, oid, oid, oid, int, Đầu soi kèo bóng đá truoctran ghi khối hoàn tất.
Sort-Start (int, bool, int, int, bool) Đầu soi kèo bóng đá truoctran hoạt động sắp xếp được bắt đầu.
Sort-Done (bool, dài) Đầu soi kèo bóng đá truoctran sắp xếp hoàn thành. arg0 là
lwlock-acquire (lwlockid, lwlockmode) Đầu soi kèo bóng đá truoctran có được LWLOCK.
LWLOCK-RELEASE (lwlockid) Đầu soi kèo bóng đá truoctran LWLOCK đã được phát hành
lwlock-wait-start (lwlockid, lwlockmode) Đầu soi kèo bóng đá truoctran LWLOCK không ngay lập tức
LWLOCK-WAIT-DONE (lwlockid, lwlockmode) Đầu soi kèo bóng đá truoctran quá trình máy chủ
lwlock-condacquire (lwlockid, lwlockmode) Đầu soi kèo bóng đá truoctran LWLOCK thành công
lwlock-condacquire-fail (lwlockid, lwlockmode) Đầu soi kèo bóng đá truoctran không khóa
Khóa-Wait-Start (unsign int, unsign int, unsign int, unsign Đầu soi kèo bóng đá truoctran yêu cầu đối với một hạng nặng
Lock-Wait-Done (unsign int, unsign int, unsign int, unsign Đầu soi kèo bóng đá truoctran yêu cầu đối với một hạng nặng
Holdlock-Found () Đầu soi kèo bóng đá truoctran bế tắc bởi

Bảng 27-4. Các loại được xác định được sử dụng trong đầ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 khi kiểm tra hiệu suất:

#!/Usr/sbin/dtrace -Qs

Khi được thực thi, tập lệnh D

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

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

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

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

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

  3. Bao gồmpg_trace.hNếu cóTrace_PostgresqlMacros thăm dò tại

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

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

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

  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 đầu dòGiao dịch-khởi độnglà tên của

  3. Tại thời điểm biên dịch,Giao dịchđược chuyển đổi thành macroTrace_Postgresql_Transaction_Start(Thông báopg_trace.h. Thêm

    36965_37029
  4. Sau khi biên dịch lại và chạy nhị phân mới, hãy kiểm tra

    # DTRACE -LN Giao dịch -Bắt đầu

Có một vài điều cần cẩn thận khi thêm dấu vết

  • Bạn nên chăm sóc các loại dữ liệu được chỉ định cho a

  • Trên hầu hết các nền tảng, nếusoi kèo bóng đá truoctranđược xây dựng với--Enable-dtrace, Các đối số cho một dấu vếtNgay cả khi không. Điều này thường không có giá trị

    if (trace_postgresql_transaction_start_enables ()))

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