Đo lường hiệu suất của Firebase Realtime Database bằng trình phân tích cơ sở dữ liệu được tích hợp vào Firebase CLI. Công cụ phân tích tài nguyên ghi nhật ký tất cả hoạt động trong cơ sở dữ liệu của mình 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 sự cố xảy ra với hiệu suất của cơ sở dữ liệu, phát hiện những khía cạnh có vấn đề và giảm số truy vấn không được lập chỉ mục.
Tạo hồ sơ
Trước khi bắt đầu lập hồ sơ cho Firebase Realtime Database, 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 động mã đó cho cơ sở dữ liệu và dự án mà bạn muốn lập hồ sơ. Ghi chú bạn phải là người chỉnh sửa hoặc chủ sở hữu của dự án đó để lập hồ sơ.
Bắt đầu lập hồ sơ cơ sở dữ liệu bằng lệnh sau:
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 và xây dựng hồ sơ.firebase database:profile
Nhấn phím Enter để hoàn tất hồ sơ và hiển thị kết quả.
Diễn giải kết quả
Công cụ trình phân tích tài nguyên tổng hợp dữ liệu được thu thập về hoạt động và hiển thị kết quả theo ba danh mục chính: tốc độ, băng thông và truy 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 mỗi loại toán tử. Tuy nhiên, tốc độ đo được trong Báo cáo tốc độ có thể không thực sự phản ánh tốc độ trải nghiệm của người dùng cuối. Nhiều yếu tố, bao gồm có thể làm tăng thêm độ 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 thu gọn các nút này thành một
đường dẫn mẹ và thêm một điểm đánh dấu
$wildcard
. Bạn có thể thấy thông tin cơ sở dữ liệu thư mục gốc trong báo cáo, được biểu thị bằng dấu gạch chéo lên/
. - Số lượng: Số 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 nghiệp vụ cần thiết để xử lý loại tác vụ 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 chỉ số "Trung bình Thời gian chờ xử lý" được mô tả bên dưới.
- Thời gian chờ xử lý trung bình: Thời gian trung bình mà các yêu cầu chi tiêu đã xếp hàng đợi trước được thực thi. Sự chậm trễ này thường xảy ra đối với tất cả các yêu cầu do khách hàng đưa ra. Chiến lược phát hành đĩa đơn tổng thời gian chờ yêu cầu phía máy chủ là tổng thời gian chờ của yêu cầu thời gian chờ xử lý và tốc độ thực thi.
- Quyền bị từ chối: Số thao tác tại đường dẫn đã bị chặn bởi Quy tắc về cơ sở dữ liệu của Firebase trên cơ sở dữ liệu của bạn.
Báo cáo tốc độ theo loại thao tác | |
---|---|
Đọc tốc độ thực thi | Thời gian phản hồi của máy chủ đối với yêu cầu đọc dữ liệu từ ứng dụng khách cơ sở dữ liệu. Thời gian thực thi đọc thường điều chỉnh theo lượng dữ liệu nhưng ngay cả một số lượt đọc nhỏ cũng có thể bị trì hoãn bởi bộ nhớ đệm tìm nạp trước. |
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 tỷ lệ thời gian thực thi với lượng dữ liệu là viết. |
Tốc độ thực thi của 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 tới ứng dụng cơ sở dữ liệu. Độ trễ của các yêu cầu kết nối chịu sự chi phối của 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 | Lượng thời gian mà máy chủ cần để phân phối dữ liệu cho ứng dụng theo dõi một đường dẫn nhất định để được cập nhật theo thời gian thực. Thuộc tính Count 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 khách hàng đã nhận được thông tin. Ví dụ: nếu 10 khách hàng đang nghe tại một đường dẫn nhất định và máy chủ đã phát thông tin cập nhật cho tất cả 10 ứng dụng khách thì số lượng tin truyền chỉ phản ánh 1 tin truyền, mặc dù 10 ứng dụng khách đã nhận được dữ liệu. Thuộc tính Permission denied (Quyền bị từ chối) không được đưa vào 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 sử dụng trong các hoạt động đến và đi. Bạn không nên sử dụng Băng thông Tuy nhiên, hãy báo cáo để ước tính hoá đơn vì số liệu này không bao gồm băng thông đã sử dụng cho các thao tác 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 gần đúng kích thước tải trọng của dữ liệu do 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. Campaign Manager 360 là một công cụ đo lường hiệu suất, chứ không phải công cụ dự báo 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 một đường dẫn mẹ.
Tổng số: Tổng số byte đi hoặc đến được sử dụng trong tất cả các thao tác tại đường dẫn đã cho.
Số lượng: Số 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 trên tại một đườ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 đã sử dụng thông qua các thao tác đọc và truyền tin được gửi qua ứng dụng SDK và API REST. |
Số byte đã tải lên | Dữ liệu được tiêu thụ thông qua các yêu cầu ghi đến máy chủ cơ sở dữ liệu. Các lệnh xoá được thể hiện dưới dạng lượt ghi với 0 byte bên dưới luồng đến. |
Truy vấn chưa được lập chỉ mục
Truy vấn chưa được lập chỉ mục có thể tốn kém vì khách hàng tải xuống tất cả dữ liệu tại một vị trí rồi sau đó truy vấn vị trí đó. Chế độ này sẽ tốn nhiều băng thông hơn nếu cần. Xử lý 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 trình bày 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 xuất hiện các truy vấn không được lập chỉ mục.
- Chỉ mục: Quy tắc bạn nên thêm để giải quyết các truy vấn chưa được lập chỉ mục. Học hỏi 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ố truy vấn chưa được lập chỉ mục xảy ra tại một đường dẫn nhất định.
Lập hồ sơ nâng cao
Để xem tất cả thao tác mà cơ sở dữ liệu của bạn đang xử lý, hãy dùng --raw
gắn cờ khi bạn lập hồ sơ cơ sở dữ liệu của mình, như sau:
firebase database:profile --raw
Dữ liệu đầu ra thô cũng bao gồm thông tin ứng dụng khách 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 hoạt động khác nhau
được lập hồ sơ trong Firebase Realtime Database trong Firebase Realtime Database Loại thao tác.
Công cụ trình phân tích tài nguyên: Không phải là công cụ thanh toán
Không dùng công cụ trình phân tích tài nguyên để ước tính chi phí băng thông. Công cụ phân tích tài nguyên là nhằm cung cấp cho bạn thông tin tổng thể về hiệu suất của cơ sở dữ liệu, nhằm giúp bạn giám sát hoạt động và khắc phục sự cố, chứ không phải để ước tính khoản thanh toán. Nó không tính đến lưu lượng truy cập mạng, mà chỉ ghi lại ước tính dữ liệu ứng dụng đã gửi trong các 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í mà không có trong hồ sơ cơ sở dữ liệu của bạn:
- Mức hao tổn 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 cơ sở giao thức, lưu lượng truy cập này có thể bao gồm: hao tổn giao thức, hao tổn WebSocket và hao tổn tiêu đề HTTP. Mỗi khi một kết nối được thiết lập, mức hao tổn này, kết hợp với bất kỳ mã hoá SSL nào đều góp phần vào chi phí kết nối. Mặc dù điều này thường không phải lượng băng thông lớn, thì điều đó có thể đáng kể nếu tải trọng của bạn nhỏ hoặc thường xuyên, kết nối ngắn gọn.
- Chi phí mã hóa SSL: Có chi phí liên quan đến việc SSL chi phí mã hoá cần thiết cho các kết nối an toàn. Trung bình, chi phí này xấp xỉ 3, 5KB cho lần bắt tay ban đầu và khoảng 40B cho lần bắt tay ban đầu 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 chỉ là một trên hoá đơn. Tuy nhiên, tỷ lệ này có thể lớn nếu trường hợp cụ thể của bạn đòi hỏi nhiều giao tiếp SSL. Ví dụ: thiết bị không hỗ trợ vé phiên TLS có thể yêu cầu số lượng lớn SSL bắt tay kết nối.
Đọc thêm về cách tìm hiểu và ước tính hoá đơn của bạn.