Giám sát hiệu suất — định nghĩa, chỉ số và thu thập dữ liệu

Tác giả: IT Sectr Đã đăng: 2026-05-29 Thời gian đọc: 8 phút

Giám sát hiệu suất là một quá trình liên tục thu thập và phân tích các chỉ số hiệu suất của ứng dụng để xác định sự chậm trễ, rò rỉ bộ nhớ và sử dụng tài nguyên không tối ưu. Theo Android Performance Guide, 2025, giám sát cho phép phát hiện các sai lệch chỉ số ở giai đoạn sớm và ngăn chặn sự suy giảm trải nghiệm người dùng trước khi các khiếu nại hàng loạt bắt đầu.

Những điểm chính

  • Giám sát hiệu suất — thu thập và phân tích các chỉ số thời gian phản hồi, FPS, sử dụng CPU và bộ nhớ để đánh giá chất lượng ứng dụng.
  • Real User Monitoring — thu thập dữ liệu từ thiết bị thực của người dùng, phản ánh trải nghiệm thực tế trong các điều kiện mạng và phần cứng khác nhau.
  • ANR và sự cố — các chỉ số quan trọng yêu cầu phản hồi ngay lập tức và phân tích ngăn xếp cuộc gọi.
  • Firebase Performance Monitoring — công cụ miễn phí để thu thập chỉ số hiệu suất trên iOS và Android.
  • Instrumentation trace — phương pháp đo thời gian thực thi của các đoạn mã cụ thể bằng spans tùy chỉnh.

Giám sát hiệu suất là gì

Giám sát hiệu suất là hoạt động định lượng hành vi của ứng dụng thông qua việc thu thập các chỉ số thời gian chạy, sử dụng bộ nhớ, tốc độ khung hình và tiêu thụ năng lượng. Không giống như báo cáo sự cố chỉ ghi lại các lỗi nghiêm trọng, giám sát hiệu suất theo dõi sự suy giảm dần dần: ứng dụng hoạt động nhưng chậm hơn so với bình thường.

Theo Google (2024), 53% người dùng đóng ứng dụng nếu ứng dụng mất hơn 3 giây để tải. Mỗi giây chậm trễ bổ sung làm giảm tỷ lệ chuyển đổi trung bình 20% trên các danh mục. Điều này khiến giám sát hiệu suất không chỉ là một hoạt động kỹ thuật mà còn là một nhu cầu kinh doanh đối với các sản phẩm di động.

Giám sát hiệu suất hiện đại bao gồm bốn cấp độ: phía máy khách (iOS, Android), mạng (yêu cầu API, WebSocket), dịch vụ backend và cơ sở hạ tầng. Trong phát triển di động, trọng tâm là các chỉ số phía máy khách, vì hầu hết các vấn đề về hiệu suất phát sinh trên thiết bị của người dùng.

Các chỉ số chính của ứng dụng di động

Để giám sát toàn diện, cần theo dõi năm nhóm chỉ số, mỗi nhóm chịu trách nhiệm về một khía cạnh khác nhau của trải nghiệm người dùng. FPS (khung hình trên giây) thể hiện độ mượt của hoạt ảnh và cuộn — giá trị dưới 30 khung hình trên giây được mắt người cảm nhận như sự chậm trễ.

Chỉ số thời gian

Thời gian khởi động nguội — từ lúc chạm vào biểu tượng đến khi giao diện sẵn sàng hoàn toàn. Thời gian khởi động nóng — quay lại từ nền. Thời gian phản hồi hành động của người dùng (chạm để phản hồi). Thời gian khởi động trên Android được đo qua ActivityManager, trên iOS — qua dyld và thời gian premain. Theo Firebase Performance, thời gian khởi động nguội trung vị cho 100 ứng dụng hàng đầu là 1,8 giây.

Chỉ số bộ nhớ và CPU

Mức tiêu thụ RAM không được vượt quá 80% dung lượng khả dụng trên thiết bị, nếu không hệ thống sẽ bắt đầu dỡ ứng dụng khỏi nền. Dấu chân bộ nhớ được theo dõi qua Xcode Instruments (iOS) và Android Profiler. Rò rỉ bộ nhớ được phát hiện qua sự gia tăng tiêu thụ trong các thao tác lặp lại — ví dụ, chuyển đổi giữa các màn hình.

Chỉ số mạng

Thời gian thực thi yêu cầu HTTP, kích thước phản hồi, tần suất timeout và tỷ lệ lỗi. Độ trễ mạng đặc biệt quan trọng đối với các ứng dụng di động hoạt động trong điều kiện kết nối không ổn định (3G, tàu điện ngầm, thang máy, chuyển vùng). Nên theo dõi thời gian phản hồi p95 — nó cho thấy trải nghiệm của những người dùng “nặng” nhất trong điều kiện mạng tồi tệ nhất.

Chỉ sốBình thườngNghiêm trọng
Khởi động nguộidưới 2 giâyhơn 4 giây
FPS55–60dưới 30
Phản hồi APIdưới 500 mshơn 2 giây
Sử dụng bộ nhớdưới 200 MBhơn 400 MB
Tỷ lệ ANRdưới 0,1%hơn 0,5%

Real User Monitoring và Synthetic Monitoring

Real User Monitoring (RUM) thu thập dữ liệu từ các thiết bị thực của người dùng trong môi trường sản xuất. Phương pháp này cho thấy độ trễ thực tế mà người dùng gặp phải, có tính đến thiết bị, phiên bản HĐH, mạng và vị trí địa lý của họ. RUM cung cấp bức tranh hiệu suất chính xác nhất nhưng phụ thuộc vào những người dùng có trong mẫu.

Synthetic Monitoring, mặt khác, thực thi các kịch bản được xác định trước trên các thiết bị thử nghiệm trong điều kiện được kiểm soát. Nó cho phép phát hiện sự suy giảm trước khi đến tay người dùng và tái tạo sự cố trong một môi trường nhất quán. Firebase Test LabBrowserStack cung cấp các thử nghiệm tổng hợp trên thiết bị thực mà không cần thực thi thủ công.

Chiến lược tối ưu là kết hợp cả hai cách tiếp cận: các thử nghiệm tổng hợp phát hiện sự suy giảm ở giai đoạn CI, trong khi RUM cung cấp bức tranh thực tế trong sản xuất. Theo Datadog (2024), các nhóm sử dụng cả hai phương pháp phát hiện nhiều hơn 35% vấn đề hiệu suất trước khi chúng trở thành sự cố.

Thiết lập Firebase Performance Monitoring

Firebase Performance Monitoring là công cụ miễn phí của Google để thu thập các chỉ số hiệu suất trên iOS và Android. Nó tự động đo thời gian khởi động ứng dụng, yêu cầu HTTP và kết xuất màn hình mà không cần viết mã. Để thiết lập, chỉ cần thêm SDK vào dự án của bạn và kích hoạt mô-đun Performance trong bảng điều khiển Firebase.

Thu thập chỉ số tự động

Sau khi tích hợp SDK, Firebase Performance tự động tạo một trace cho mỗi yêu cầu HTTP qua URLSession (iOS) hoặc OkHttp (Android). Kết xuất màn hình được đo cho UIViewController và Activity, ghi lại thời gian từ onCreate/viewDidLoad đến khi hoàn tất kết xuất đầu tiên. Tất cả các chỉ số được tổng hợp trong bảng điều khiển Firebase, phân chia theo phiên bản ứng dụng, thiết bị và quốc gia.

kotlin
import com.google.firebase.perf.FirebasePerformance
import com.google.firebase.perf.metrics.Trace

class PaymentService {
    private val firebasePerf = FirebasePerformance.getInstance()

    fun processPayment(amount: Double) {
        val trace = firebasePerf.newTrace("payment-flow")
        trace.start()
        trace.putAttribute("amount", amount.toString())
        // thực thi thanh toán
        trace.stop()
    }
}

Mã tạo một trace tùy chỉnh cho kịch bản thanh toán với thuộc tính số tiền. Sử dụng trace này trong bảng điều khiển Firebase, bạn có thể xem thời gian thực thi thanh toán trung vị và p95, được nhóm theo phiên bản ứng dụng và thiết bị.

Giám sát HTTP

Firebase tự động chặn các yêu cầu mạng và ghi lại URL, mã phản hồi, kích thước tải trọng và thời gian thực thi. Đối với OkHttp trên Android, công cụ tự động hoạt động mà không cần cấu hình thêm. Các yêu cầu mạng được hiển thị trong bảng điều khiển được nhóm theo điểm cuối, cho phép xác định nhanh sự chậm trễ của một API cụ thể.

Trace tùy chỉnh cho logic nghiệp vụ

Các chỉ số tiêu chuẩn bao phủ hiệu suất tổng thể, nhưng để chẩn đoán quy trình nghiệp vụ, cần phải instrument các kịch bản cụ thể. Trace tùy chỉnh cho phép đo thời gian thực thi của xác thực, tải tin tức, xử lý hình ảnh hoặc đồng bộ dữ liệu.

Mỗi trace tùy chỉnh nên có tên có ý nghĩa theo định dạng “kịch bản-hành động” và chứa các thuộc tính để lọc. Ví dụ, một trace “image-upload” với các thuộc tính “file_size” và “compression_quality” sẽ giúp xác định sự phụ thuộc của thời gian tải lên vào kích thước hình ảnh. Không nên tạo quá 20 trace tùy chỉnh trên mỗi màn hình — công cụ quá mức tạo ra nhiễu và làm phức tạp việc phân tích.

swift
import FirebasePerformance

func trackImageUpload(data: Data) {
    let trace = Performance.startTrace(name: "image-upload")
    trace?.setValue(data.count, forAttribute: "file_size")
    trace?.setValue("high", forAttribute: "compression")
    // tải hình ảnh
    trace?.stop()
}

Ví dụ Swift tạo một trace cho việc tải hình ảnh với các thuộc tính kích thước tệp và mức nén. Trong bảng điều khiển Firebase, các thuộc tính này trở thành trường để nhóm và lọc các chỉ số.

Ngưỡng và cảnh báo

Thu thập chỉ số mà không có hệ thống cảnh báo là vô ích. Cảnh báo nên thông báo cho nhóm khi các chỉ số vượt quá giới hạn chấp nhận được, với các ngưỡng được chia thành ba cấp độ: cảnh báo, nghiêm trọng và ngừng hoạt động. Mỗi cấp độ xác định kênh thông báo: cảnh báo — đến kênh Slack của nhóm, nghiêm trọng — đến PagerDuty cho kỹ sư trực, ngừng hoạt động — thông báo hàng loạt đến tất cả các bên liên quan.

Đối với các chỉ số di động, nên sử dụng ngưỡng động dựa trên phần trăm: thời gian khởi động nguội p95 vượt quá 4 giây — cảnh báo nghiêm trọng. Các ngưỡng tĩnh (ví dụ, CPU > 90%) hoạt động kém hiệu quả hơn vì chúng không tính đến biến động tải bình thường theo thời gian trong ngày và ngày trong tuần. Firebase Performance hỗ trợ cấu hình cảnh báo qua Firebase Console với thông báo đến Slack, PagerDuty và email, với các tùy chọn leo thang nếu không được xác nhận.

Theo Khảo sát Quản lý Sự cố (2024), các nhóm thiết lập cảnh báo dựa trên phần trăm thay vì giá trị trung bình bỏ sót ít hơn 45% sự cố. Giá trị trung bình làm mượt các giá trị ngoại lai — p95 đảm bảo hiển thị kịch bản tồi tệ nhất cho người dùng, bất kể thời gian trong ngày và biến động tải theo mùa.

Câu hỏi thường gặp

Tôi nên sử dụng công cụ nào để giám sát hiệu suất ứng dụng di động?

Các công cụ chính: Firebase Performance Monitoring (miễn phí, chức năng cơ bản), Dynatrace (RUM doanh nghiệp), New Relic Mobile, Datadog RUMInstabug (chuyên về ứng dụng di động). Lựa chọn phụ thuộc vào ngân sách và độ sâu phân tích yêu cầu.

Bao lâu nên kiểm tra các chỉ số hiệu suất?

Các chỉ số nên được thu thập và hiển thị trên bảng điều khiển theo thời gian thực với độ trễ không quá 5 phút. Phân tích xu hướng được khuyến nghị mỗi tuần một lần. Cảnh báo tự động nên kích hoạt khi vượt quá ngưỡng mà không cần can thiệp của con người — đây là cách duy nhất để phản ứng với sự cố trước khi người dùng nhận thấy.

Bộ chỉ số tối thiểu cần thiết cho sản xuất là gì?

Bộ tối thiểu: thời gian khởi động nguội, FPS, tỷ lệ ANR (Android) hoặc kết thúc watchdog (iOS), tỷ lệ lỗi HTTPsử dụng bộ nhớ. Điều này đủ để phát hiện 80% vấn đề hiệu suất trong một dự án di động điển hình. Khi ứng dụng phát triển, hãy thêm các chỉ số cho màn hình cụ thể và kịch bản nghiệp vụ để chẩn đoán chính xác hơn.

Giám sát hiệu suất có làm tăng kích thước ứng dụng không?

Có, SDK giám sát hiệu suất thêm 1–3 MB vào kích thước ứng dụng tùy theo công cụ. Firebase Performance Monitoring thêm khoảng 1,2 MB. Nên chỉ bao gồm SDK trong các bản dựng thử nghiệm và sản xuất, loại trừ khỏi các bản dựng gỡ lỗi.

Làm thế nào để phân biệt vấn đề phía máy khách với vấn đề phía máy chủ?

Nếu thời gian chờ phản hồi API cao nhưng chỉ số máy chủ bình thường — vấn đề ở phía máy khách (mạng thiết bị, DNS, bắt tay TLS). Nếu máy chủ hiển thị tải cao hoặc truy vấn cơ sở dữ liệu chậm — vấn đề ở backend. Theo dõi phân tán cung cấp câu trả lời dứt khoát bằng cách liên kết yêu cầu của máy khách với xử lý của máy chủ.

Tóm tắt

  • Giám sát hiệu suất — thu thập liên tục các chỉ số thời gian phản hồi, FPS, bộ nhớ và CPU để phát hiện sự suy giảm ứng dụng ở giai đoạn sớm.
  • Real User Monitoring thu thập dữ liệu từ thiết bị thực của người dùng và cung cấp bức tranh chính xác nhất về trải nghiệm sản xuất.
  • Synthetic Monitoring bổ sung cho RUM bằng các thử nghiệm có kiểm soát ở giai đoạn CI để xác định sự suy giảm trước khi phát hành.
  • Firebase Performance Monitoring — công cụ miễn phí với thu thập tự động các chỉ số HTTP, thời gian khởi động và kết xuất màn hình.
  • Trace tùy chỉnh rất cần thiết để đo các kịch bản nghiệp vụ — thanh toán, tải nội dung, xác thực.
  • Cảnh báo nên sử dụng ngưỡng động dựa trên phần trăm (p95) thay vì giá trị trung bình.
  • Sự kết hợp của RUM, thử nghiệm tổng hợp và theo dõi phân tán bao phủ 95% kịch bản suy giảm hiệu suất ứng dụng di động.

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm