Lập hồ sơ cơ sở dữ liệu của bạn

Đo lường hiệu suất của Firebase Realtime Database bằng công cụ lập hồ sơ cơ sở dữ liệu, được tích hợp vào Firebase CLI. Công cụ trình phân tích tài nguyên sẽ ghi lại mọi hoạt động trong cơ sở dữ liệu của bạn trong một khoảng thời gian nhất định, sau đó tạo một báo cáo chi tiết. Sử dụng báo cáo chi tiết để khắc phục các vấn đề về hiệu suất cơ sở dữ liệu, xác định các vấn đề và giảm số lượng truy vấn chưa được lập chỉ mục.

Tạo hồ sơ

  1. Trước khi bắt đầu lập hồ sơ Firebase Realtime Database, hãy đảm bảo rằng bạn đang sử dụng phiên bản mới nhất của CLI Firebase và bạn đã khởi động phiên bản này cho cơ sở dữ liệu và dự án mà bạn muốn lập hồ sơ. Xin lưu ý rằng bạn phải là người chỉnh sửa hoặc chủ sở hữu của dự án đó thì mới có thể lập hồ sơ.

  2. Bắt đầu phân tích cơ sở dữ liệu bằng lệnh sau:

    firebase database:profile
    Trình phân tích tài nguyên sẽ hiển thị một thông báo trạng thái khi ghi lại các thao tác từ cơ sở dữ liệu của bạn và tạo hồ sơ.

  3. Nhấn Enter để hoàn tất hồ sơ và hiển thị kết quả.

Diễn giải kết quả

Công cụ lập hồ sơ sẽ tổng hợp dữ liệu mà công cụ này thu thập được về các thao tác của cơ sở dữ liệu và hiển thị kết quả trong 3 danh mục chính: tốc độ, băng thôngtruy vấn chưa được lập chỉ mục.

Tốc độ

Báo cáo tốc độ đo thời gian phản hồi của máy chủ (tính bằng mili giây) cho từng loại thao tác. Tuy nhiên, tốc độ được đo trong Báo cáo tốc độ có thể không thực sự phản ánh tốc độ mà người dùng cuối trải nghiệm. Các yếu tố khác nhau, bao gồm cả điều kiện mạng, có thể làm tăng độ trễ ở phía máy khách.

Báo cáo tốc độ bao gồm các thuộc tính sau:

  • Đường dẫn: Đường dẫn trong cơ sở dữ liệu của bạn nơi các thao tác diễn ra. Nếu có hơn 25 nút con, công cụ lập hồ sơ sẽ thu gọn các nút này thành một đường dẫn gốc và thêm một điểm đánh dấu $wildcard. Bạn có thể thấy thư mục gốc của cơ sở dữ liệu trong báo cáo, được biểu thị bằng dấu gạch chéo xuôi /.
  • Số lượng: Số lượng thao tác đã xảy ra tại đường dẫn nhất định.
  • Tốc độ thực thi trung bình: Thời gian trung bình mà máy chủ cần để thực thi logic nghiệp vụ cần thiết nhằm xử lý loại thao tác cụ thể tại đường dẫn đó. Khoảng thời gian được đo ở đây bắt đầu sau khoảng thời gian được đo bằng "Thời gian trung bình đang chờ xử lý" được mô tả bên dưới.
  • Thời gian trung bình ở trạng thái đang chờ xử lý: Thời gian trung bình mà các yêu cầu được xếp hàng đợi trước khi được thực thi. Độ trễ này thường xảy ra với tất cả các yêu cầu do ứng dụng khách khởi tạo. Tổng độ trễ yêu cầu phía máy chủ xấp xỉ bằng tổng thời gian đang chờ xử lý và tốc độ thực thi của yêu cầu đó.
  • Quyền bị từ chối: Số lượng thao tác tại đường dẫn đã cho bị Quy tắc cơ sở dữ liệu của Firebase chặn trên cơ sở dữ liệu của bạn.
Báo cáo tốc độ theo loại thao tác
Tốc độ thực thi đọc Thời gian phản hồi của máy chủ đối với các yêu cầu của ứng dụng khách để đọc dữ liệu từ cơ sở dữ liệu. Thời gian thực thi đọc thường tỷ lệ thuận với lượng dữ liệu đang được đọc, nhưng ngay cả một số lượt đọc nhỏ cũng có thể bị trì hoãn do việc tìm nạp trước bộ nhớ đệm.
Tốc độ thực thi ghi Thời gian phản hồi của máy chủ đối với các yêu cầu của ứng dụng khách để ghi dữ liệu vào cơ sở dữ liệu. Viết các thang thời gian thực thi với lượng dữ liệu đang được ghi.
Tốc độ thực thi kết nối Thời gian phản hồi của máy chủ đối với các yêu cầu thiết lập cho máy khách cơ sở dữ liệu. Độ trễ cho các yêu cầu kết nối chủ yếu là do hoạt động ghi sổ sách phía máy chủ trong bộ nhớ liên quan đến việc quản lý kết nối.
Tốc độ thực thi chương trình phát sóng

Khoảng thời gian mà máy chủ cần để phân phối dữ liệu cho các máy khách đang theo dõi đường dẫn đã cho để nhận thông tin cập nhật theo thời gian thực.

Thuộc tính Count (Số lượng) trong Broadcast Speed Report (Báo cáo tốc độ truyền tin) tổng hợp số lượng thông báo đã phát, chứ không phải số lượng máy khách đã nhận được thông tin. Ví dụ: nếu 10 máy khách đang nghe tại một đường dẫn nhất định và máy chủ phát một bản cập nhật cho cả 10 máy khách, thì số lượt phát chỉ phản ánh 1 lượt phát, mặc dù 10 máy khách đã nhận được dữ liệu.

Thuộc tính Quyền bị từ chối không có trong báo cáo Tốc độ truyền tin.

Dải thông

Báo cáo băng thông cung cấp thông tin chi tiết về lượng dữ liệu mà cơ sở dữ liệu của bạn tiêu thụ trong các hoạt động đến và đi. Tuy nhiên, bạn không nên sử dụng Báo cáo băng thông để ước tính mức sử dụng, vì báo cáo này không bao gồm băng thông được dùng cho các hoạt động khác, chẳng hạn như lập hồ sơ cơ sở dữ liệu. Báo cáo băng thông ước tính sơ bộ kích thước tải trọng của dữ liệu mà các thao tác đọc, ghi và truyền tin sử dụng đến và đi từ cơ sở dữ liệu của bạn. Đây là công cụ đo lường hiệu suất, chứ không phải công cụ dự báo việc thanh toán.

Báo cáo băng thông bao gồm các thuộc tính sau:

  • Đường dẫn: Đường dẫn trong cơ sở dữ liệu của bạn nơi các thao tác diễn ra. Nếu có hơn 25 nút con, công cụ lập hồ sơ sẽ thu gọn các nút này thành một đường dẫn gốc.

  • Tổng số: Tổng số byte đi hoặc đến được dùng cho tất cả các thao tác tại đường dẫn đã cho.

  • Số lượng: Số lượng thao tác đã xảy ra tại đường dẫn nhất định.

  • Trung bình: Số byte trung bình đã tải xuống hoặc tải lên trên các thao tác tại đường dẫn đã cho (byte/ghi hoặc byte/đọc).

Báo cáo băng thông
Số byte đã tải xuống Dữ liệu được sử dụng thông qua các thao tác đọc và truyền phát được gửi qua SDK ứng dụng và REST API.
Số byte đã tải lên Dữ liệu được sử dụng thông qua các yêu cầu ghi đến máy chủ cơ sở dữ liệu. Các thao tác xoá sẽ xuất hiện dưới dạng các thao tác ghi có 0 byte trong phần dữ liệu đến.

Truy vấn chưa được lập chỉ mục

Các truy vấn chưa được lập chỉ mục có thể tốn kém, vì các ứng dụng tải xuống tất cả dữ liệu tại một vị trí rồi thực hiện các truy vấn trên dữ liệu đó. Điều này sẽ tiêu tốn nhiều băng thông hơn mức cần thiết. Giải quyết nhiều truy vấn chưa được lập chỉ mục nhất có thể để tối ưu hoá hiệu suất của cơ sở dữ liệu.

Báo cáo Truy vấn chưa được lập chỉ mục hiển thị các thuộc tính sau:

  • Đường dẫn: Đường dẫn trong cơ sở dữ liệu của bạn nơi xảy ra các truy vấn chưa được lập chỉ mục.
  • Chỉ mục: Quy tắc bạn nên thêm để giải quyết các cụm từ tìm kiếm chưa được lập chỉ mục. Tìm hiểu thêm về việc lập chỉ mục trong phần Lập chỉ mục dữ liệu của bạn.
  • Số lượng: Số lượng truy vấn chưa được lập chỉ mục đã xảy ra tại đường dẫn nhất định.

Lập hồ sơ nâng cao

Để xem tất cả các thao tác mà cơ sở dữ liệu của bạn đang xử lý, hãy sử dụng cờ --raw khi bạn lập hồ sơ cơ sở dữ liệu, như sau:

firebase database:profile --raw

Đầu ra thô cũng bao gồm thông tin khách hàng cho từng thao tác, chẳng hạn như chuỗi userAgent và địa chỉ IP. Tìm hiểu thêm về các thao tác khác nhau được lập hồ sơ trong Firebase Realtime Database của bạn trong Firebase Realtime Database Loại thao tác.

Công cụ lập hồ sơ: Không phải là công cụ thanh toán

Đừng sử dụng công cụ phân tích tài nguyên để ước tính chi phí băng thông. Công cụ lập hồ sơ được thiết kế để cung cấp cho bạn một bức tranh tổng thể về hiệu suất của cơ sở dữ liệu, giúp bạn giám sát các hoạt động và khắc phục sự cố, chứ không phải để ước tính mức phí. Công cụ này không tính đến lưu lượng truy cập mạng mà chỉ ghi lại số liệu ước tính về dữ liệu ứng dụng được gửi trong các phản hồi.

Sau đây là một số ví dụ thường gặp về lưu lượng truy cập mạng mà Firebase tính phí và không có trong hồ sơ cơ sở dữ liệu của bạn:

  • Chi phí giao thức: Cần có thêm lưu lượng truy cập giữa máy chủ và các ứng dụng để thiết lập và duy trì một phiên. Tuỳ thuộc vào giao thức cơ bản, lưu lượng truy cập này có thể bao gồm: chi phí giao thức theo thời gian thực của Cơ sở dữ liệu theo thời gian thực của Firebase, chi phí WebSocket và chi phí tiêu đề HTTP. Mỗi khi một kết nối được thiết lập, chi phí chung này, kết hợp với mọi chi phí chung về mã hoá SSL, sẽ góp phần vào chi phí kết nối. Mặc dù thường không chiếm nhiều băng thông, nhưng chi phí này có thể đáng kể nếu tải trọng của bạn rất nhỏ hoặc bạn thực hiện các kết nối ngắn thường xuyên.
  • Chi phí mã hoá SSL: Có một chi phí liên quan đến chi phí mã hoá SSL cần thiết cho các kết nối an toàn. Trung bình, chi phí này là khoảng 3, 5 KB cho lần bắt tay ban đầu và khoảng 40B cho tiêu đề bản ghi TLS trên mỗi thông báo đi. Đối với hầu hết các ứng dụng, đây là một tỷ lệ nhỏ trong hoá đơn của bạn. Tuy nhiên, tỷ lệ này có thể tăng lên nếu trường hợp cụ thể của bạn yêu cầu nhiều lần bắt tay SSL. Ví dụ: những thiết bị không hỗ trợ vé phiên TLS có thể yêu cầu số lượng lớn các bắt tay kết nối SSL.

Đọc thêm về cách hiểu và ước tính hoá đơn.