Lập hồ sơ cơ sở dữ liệu

Đo lường hiệu suất của Cơ sở dữ liệu theo thời gian thực Firebase bằng công cụ trình phân tích cơ sở dữ liệu được tích hợp sẵn trong Giao diện dòng lệnh (CLI) của Firebase. Công cụ phân tích tài nguyên ghi lại tất cả 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 báo cáo chi tiết. Hãy dùng báo cáo chi tiết để khắc phục các vấn đề liên quan đến hiệu suất của cơ sở dữ liệu, phát hiện những vấn đề và giảm số lượt 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ơ Cơ sở dữ liệu theo thời gian thực Firebase, hãy đảm bảo bạn đang sử dụng phiên bản mới nhất của Firebase CLI và bạn đã khởi chạy phiên bản này cho cơ sở dữ liệu cũng như 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 lập hồ sơ cơ sở dữ liệu của bạn bằng lệnh sau:

    firebase database:profile
    Trình phân tích tài nguyên hiển thị thông báo trạng thái khi ghi lại các hoạt động 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 kết quả.

Diễn giải kết quả của bạn

Công cụ phân tích tài nguyên tổng hợp dữ liệu đã thu thập về hoạt động của cơ sở dữ liệu và hiển thị kết quả theo 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 lường 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 trải nghiệm về tốc độ của người dùng cuối. Nhiều yếu tố, bao gồm cả tình trạng 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 nơi diễn ra thao tác. Nếu có hơn 25 nút con, công cụ trình phân tích tài nguyên sẽ thu gọn các nút này thành đường dẫn mẹ 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 của báo cáo, được biểu thị bằng dấu gạch chéo lên /.
  • Số lượng: Số lượng thao tác đã xảy ra tại một đường dẫn nhất định.
  • Tốc độ thực thi trung bình: Thời gian trung bình để máy chủ thực thi logic kinh doanh cần thiết để xử lý loại thao tác cụ thể tại đường dẫn đó. Khoảng thời gian được đo tại đây sẽ bắt đầu sau khoảng thời gian đó được đo bằng "Thời gian chờ trung bình" như mô tả bên dưới.
  • Thời gian chờ xử lý trung bình: Thời gian trung bình dành cho các yêu cầu đã được đưa vào hàng đợi trước khi được thực thi. Sự chậm trễ này phổ biến đối với tất cả các yêu cầu do ứng dụng đưa ra. Tổng độ trễ của yêu cầu phía máy chủ là tổng thời gian chờ xử lý và tốc độ thực thi của yêu cầu đó.
  • Quyền bị từ chối: Số thao tác trên đường dẫn đã cho đã bị Quy tắc cơ sở dữ liệu Firebase chặn trên cơ sở dữ liệu của bạn.
Báo cáo tốc độ theo loại hoạt động
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 thay đổi theo 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ễ do quá trình 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. Ghi thang thời gian thực thi theo lượng dữ liệu đang được ghi.
Kết nối tốc độ thực thi 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 ứng dụng cơ sở dữ liệu. Độ trễ đối với các yêu cầu kết nối chủ yếu chịu ảnh hưởng của hoạt động lưu giữ 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 truyền tin

Khoảng thời gian mà máy chủ cần để phân phối dữ liệu cho các ứng dụng nhằm nghe đường dẫn nhất định để cập nhật theo thời gian thực.

Thuộc tính Số lượng trong Báo cáo tốc độ phát sóng tổng hợp số lượng thông báo truyền tin đã diễn ra, chứ không phải số lượng ứng dụng đã nhận được thông tin. Ví dụ: nếu 10 ứng dụng đ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 tất cả 10 ứng dụng, thì số lượng thông báo truyền tin chỉ phản ánh 1 tin truyền, mặc dù 10 ứng dụng đã nhận được dữ liệu.

Thuộc tính Quyền bị từ chối không được đưa vào báo cáo Tốc độ phát sóng.

Băng 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 sử dụng 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 thanh toán 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 được sử dụng trong các hoạt động đọc, ghi và truyền tin đến và đi từ cơ sở dữ liệu của bạn. Công cụ này là một công cụ đo lường hiệu suất, không phải là công cụ để dự đoán thông tin 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 nơi diễn ra thao tác. Nếu có hơn 25 nút con, công cụ trình phân tích tài nguyên sẽ thu gọn các nút này thành đường dẫn mẹ.

  • Total (Tổng số): Tổng số byte đến hoặc đi được sử dụng trong tất cả các thao tác tại một đường dẫn nhất định.

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

  • Trung bình: Số byte trung bình được tải xuống hoặc tải lên trong các thao tác tại đường dẫn cho trước (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 hoạt động đọc và truyền phát được gửi qua SDK ứng dụng và API REST.
Số byte đã tải lên Dữ liệu được sử dụng thông qua các yêu cầu ghi gửi đến máy chủ cơ sở dữ liệu. Các mục bị xoá sẽ hiển thị dưới dạng lượt ghi có 0 byte bên dưới luồng đến.

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

Chi phí truy vấn chưa được lập chỉ mục có thể tốn kém vì ứng dụng tải tất cả dữ liệu xuống tại một vị trí rồi thực hiện các truy vấn trên vị trí đó. Việc này 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 không đượ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 không đượ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 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 vào để 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ề quá trình 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ượt truy vấn chưa được lập chỉ mục và xuất hiện tại một đườ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 phân tích tài nguyên cho cơ sở dữ liệu, như sau:

firebase database:profile --raw

Kết quả đầu ra thô cũng bao gồm thông tin ứng dụng cho mỗi thao tác, chẳng hạn như chuỗi userAgent và địa chỉ IP. Hãy tìm hiểu thêm về các hoạt động khác nhau được phân tích trong Cơ sở dữ liệu theo thời gian thực Firebase của bạn trong bài viết Các loại thao tác với cơ sở dữ liệu theo thời gian thực của Firebase.

Công cụ phân tích tài nguyên: 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. Mục đích của công cụ phân tích tài nguyên là cung cấp cho bạn thông tin tổng thể về hiệu suất của cơ sở dữ liệu, giúp bạn theo dõi hoạt động và khắc phục vấn đề, chứ không phải để ước tính hiệu suất thanh toán. Phương thứ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 phản hồi.

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

  • Chi phí giao thức: Một số lưu lượng truy cập bổ sung giữa máy chủ và ứng dụng là cần thiết để 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: mức hao tổn 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, mức hao tổn WebSocket và mức hao tổn tiêu đề HTTP. Mỗi lần một kết nối được thiết lập, mức hao tổn này (kết hợp với mọi mức hao tổn mã hoá SSL) sẽ góp phần vào chi phí kết nối. Mặc dù đây thường không phải là lượng băng thông lớn, nhưng mức băng thông này có thể đáng kể nếu tải trọng của bạn nhỏ hoặc bạn thường xuyên thực hiện các kết nối ngắn.
  • Chi phí mã hoá SSL: Tốn một khoản chi phí liên quan đến mức hao tổn 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 40 tỷ cho tiêu đề bản ghi TLS trên mỗi thư gửi đi. Đối với hầu hết các ứng dụng, đây là một tỷ lệ phần trăm nhỏ trong hoá đơn của bạn. Tuy nhiên, tỷ lệ này có thể trở thành một tỷ lệ lớn nếu trường hợp cụ thể của bạn đòi hỏi nhiều cơ chế bắt tay SSL. Ví dụ: các thiết bị không hỗ trợ vé phiên TLS có thể yêu cầu số lượng lớn lượt bắt tay kết nối SSL.

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