Cách thu thập trace Firebird để phân tích hiệu suất IBSurgeon
Lưu ý: việc theo dõi (tracing) là an toàn, có thể bắt đầu trên hệ thống production, nó không ảnh hưởng đến hiệu suất nếu sử dụng cấu hình được khuyến nghị dưới đây.
- Em Português - Como coletar Firebird Trace para IBSurgeon Performance Analysis?
- In deutscher Sprache - Wie erfasse ich Firebird-Tracees für die IBSurgeon-Leistungsanalyse?
Hướng dẫn này mô tả cách sử dụng IBSurgeon Performance Analysis (một phần của gói đăng ký cc.ib-aid.com) cho người dùng Firebird vanilla (đối với người dùng HQbird, tính năng này có sẵn trong giao diện trên tab “Performance”).
Theo dõi (Tracing) cho Firebird 5.0, 4.0 và 3.0
Bước 1 - Tệp cấu hình
Sao chép cấu hình sau vào tệp fbtrace30.conf, hoặc tải tệp đã chuẩn bị sẵn từ đây.
database
{
enabled = true
time_threshold = 100
log_connections = true
log_statement_finish = true
log_errors = true
log_initfini = false
print_plan = true
#explain_plan = false
print_perf = true
max_sql_length = 65000
max_arg_length = 240
max_arg_count = 50
}
Lưu tệp vào thư mục không có khoảng trắng, ví dụ: C:\temp\fbtrace30.conf, hoặc /opt/fbtrace30.conf
Bước 2 - Kiểm tra cấu hình
Chạy fbtracemgr để kiểm tra cấu hình hoạt động:
Windows
Mở command prompt (chạy cmd.exe), đi đến thư mục chứa Firebird (có thể là C:\Program Files\Firebird\Firebird_3.0.hoặc C:\HQbird\Firebird30) và chạy (sử dụng mật khẩu SYSDBA thực tế của bạn thay vì masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf
Linux
Mở terminal, sau đó chạy fbtracemgr từ thư mục bin của Firebird (/ opt/firebird/bin hoặc /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf
Kết quả, bạn sẽ thấy đầu ra trong command prompt, tương tự như thế này:
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
C:\HQBIRD\FIREBIRD30.ECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )
Dừng theo dõi bằng Ctrl-C (và sau đó nhấn Enter, nếu cần).
Bước 3 - Thu thập nhật ký
Nếu bạn không thấy lỗi ở bước trước, hãy chạy theo dõi để thu thập đầu ra vào tệp nhật ký, ví dụ c:\temp\log1.log:
Windows
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf > c:\temp\log1.log
Linux
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf > log1.log
Để nó chạy để bắt các truy vấn SQL có vấn đề trong một thời gian (tối thiểu là 3-4 phút, khuyến nghị là 1 giờ), sau đó ngắt fbtracemgr bằng Ctrl-C.
Bước 4. Tải lên nhật ký
Tải tệp nhật ký kết quả lên Trace Visualization trên cc.ib-aid.com
Lưu ý, nếu kích thước tệp nhật ký lớn hơn 20Mb, hãy nén nó (bằng zip Windows tiêu chuẩn hoặc zip Linux hoặc 7zip) và tải lên tệp nhật ký đã nén.
Các bước tiếp theo
Xem ví dụ về phân tích nhật ký tại đây: /articles/example-of-performance-analysis
Theo dõi (Tracing) cho Firebird 2.5
Bước 1 - Tệp cấu hình
Sao chép cấu hình sau vào tệp fbtrace25.conf, hoặc tải tệp đã chuẩn bị sẵn từ đây.
<database>
enabled true
log_connections true
log_statement_finish true
log_errors true
print_plan true
print_perf true
time_threshold 200
max_sql_length 65000
max_blr_length 500
max_dyn_length 500
max_arg_length 80
max_arg_count 50
</database>
Lưu tệp vào thư mục không có khoảng trắng, ví dụ: C:\temp\fbtrace25.conf, hoặc /opt/fbtrace25.conf
Bước 2 - Kiểm tra cấu hình
Chạy fbtracemgr để kiểm tra cấu hình hoạt động:
Windows
Mở command prompt (chạy cmd.exe), đi đến thư mục Bin của Firebird (có thể là C:\Program Files\Firebird\Firebird_2.5.in hoặc C:\HQbird\Firebird25.in) và chạy (sử dụng mật khẩu SYSDBA thực tế của bạn thay vì masterkey)
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf
Kết quả, bạn sẽ thấy đầu ra trong command prompt, tương tự như thế này:
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
C:\HQBIRD\FIREBIRD30.ECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )
Linux
Mở terminal, sau đó chạy fbtracemgr từ thư mục bin của Firebird (/opt/firebird/bin hoặc /usr/local/bin)
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf
Bước 3 - Thu thập nhật ký
Nếu bạn không thấy lỗi trên màn hình, hãy chạy theo dõi để thu thập đầu ra dữ liệu vào tệp, ví dụ c:\temp\log1.log:
Windows
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf > c:\temp\log1.log
Linux
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf > log1.log
Để nó chạy để bắt các truy vấn SQL có vấn đề trong một thời gian (tối thiểu là 3-4 phút, khuyến nghị là 1 giờ), sau đó ngắt fbtracemgr bằng Ctrl-C.
Bước 4. Tải lên kết quả
Tải tệp nhật ký kết quả lên Trace Visualization trên cc.ib-aid.com
Lưu ý, hãy nén tệp nhật ký nếu nó lớn hơn 20Mb (bằng zip Windows tiêu chuẩn hoặc gz Linux hoặc 7zip) và tải lên tệp nhật ký đã nén. Kích thước tệp nhật ký nén được giới hạn ở 1Gb, các tệp nhật ký lớn hơn sẽ bị xóa.
Bạn cần có tài khoản để đăng nhập.
Sau khi đăng nhập, nhấp vào “Upload” ở góc trên bên phải của widget “Traces”:

Sau đó, chọn tệp nhật ký trace (tối đa 120Mb) trên đĩa và nhấp Upload:

Quá trình tải lên có thể mất 1-2 phút, tùy thuộc vào tốc độ tải lên của kết nối Internet và kết nối chung của bạn. Các tệp nén được tải lên nhanh hơn do kích thước giảm!
Sau đó, bạn sẽ thấy tệp đã tải lên đang ở trạng thái “Processing”:

Quá trình xử lý thường mất 1-2 phút. Bạn cần sử dụng nút “Refresh” để xem trạng thái xử lý.
Sau khi xử lý hoàn tất, bạn sẽ thấy các liên kết đến báo cáo tóm tắt hiệu suất (cột “Trace summary report”, liên kết “Html”) và biểu đồ trực quan của trace (cột và liên kết “Graphs”):

Nếu bạn nhấp vào “Html”, trang mới với báo cáo tóm tắt trace sẽ xuất hiện.
Báo cáo chứa danh sách các truy vấn hàng đầu, được sắp xếp theo thời lượng (tức là các truy vấn dài nhất), tần suất (các truy vấn thường xuyên nhất), tổng thời gian (các truy vấn SQL chiếm phần lớn thời gian), số lần tìm nạp (các truy vấn tiêu tốn CPU nhiều nhất), số lần đọc (đọc đĩa) và số lần ghi (ghi đĩa).
Ngoài ra, có một bản tóm tắt quy trình, nơi bạn có thể xem các ứng dụng tiêu thụ phần lớn tài nguyên.

Nếu bạn nhấp vào “Graphs”, bạn sẽ thấy biểu đồ trực quan của nhật ký trace, với các truy vấn hàng đầu, được nhóm theo từng phút (theo thời điểm kết thúc thực thi truy vấn).
Nếu bạn nhấp vào một thời điểm cụ thể, bạn sẽ thấy các truy vấn hàng đầu từ nhật ký trace, kế hoạch, tham số, số liệu thống kê của chúng:

Các bước tiếp theo
Xem ví dụ về phân tích nhật ký tại đây: /articles/example-of-performance-analysis