3.1 Lệnh docker stats
Docker cung cấp một công cụ tích hợp để giám sát container theo thời gian thực — lệnh docker stats
. Lệnh này cho phép bạn theo dõi các chỉ số hiệu suất chính của container, như mức sử dụng CPU, bộ nhớ, mạng và đĩa. Hãy cùng tìm hiểu cách sử dụng docker stats để có cái nhìn tổng quan về trạng thái và hiệu suất của các container của bạn.
Lệnh docker stats
cung cấp thống kê động về hoạt động của container theo thời gian thực. Nó hiển thị các chỉ số sau đây cho từng container:
- CPU %: phần trăm sử dụng CPU của container.
- MEM USAGE / LIMIT: mức sử dụng bộ nhớ của container và giới hạn được thiết lập.
- MEM %: phần trăm sử dụng bộ nhớ của container.
- NET I/O: lưu lượng mạng (đầu vào và đầu ra).
- BLOCK I/O: số lượng thao tác vào/ra trên đĩa.
- PIDS: số lượng process chạy bên trong container.
Sử dụng chính của lệnh docker stats
Chạy lệnh docker stats
mà không có tham số sẽ hiển thị các chỉ số cho tất cả các container đang chạy:
docker stats
Ví dụ output của lệnh docker stats
:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d9b100f2f636 my_nginx 0.07% 1.24MiB / 1.952GiB 0.06% 1.68kB / 0B 0B / 12.3MB 2
fa3f3f3f3f3f my_postgres 2.13% 230.5MiB / 1.952GiB 11.52% 2.12MB / 2.05MB 85.6MB / 45.2MB 10
Giám sát container cụ thể
Bạn có thể theo dõi các chỉ số cho một container cụ thể bằng cách chỉ định tên hoặc ID của nó:
docker stats my_nginx
3.2 Cấu hình lệnh docker stats
Tham số của lệnh docker stats
Lệnh docker stats
hỗ trợ một số options, cho phép cậu tùy chỉnh đầu ra thông tin:
--all
hoặc-a
: hiển thị các metric cho tất cả container, bao gồm cả những container đã dừng.--no-stream
: hiển thị metrics một lần và kết thúc lệnh.--format
: tùy chỉnh đầu ra thông tin bằng các template.
Ví dụ sử dụng tham số --no-stream
Hiển thị metrics một lần cho tất cả container:
docker stats --no-stream
Ví dụ sử dụng tham số --format
Đầu ra thông tin đã được format:
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Ví dụ đầu ra:
CONTAINER ID CPU % MEM USAGE / LIMIT
d9b100f2f636 0.07% 1.24MiB / 1.952GiB
fa3f3f3f3f3f 2.13% 230.5MiB / 1.952GiB
3.3 Sử dụng thực tế docker stats
Ví dụ 1: Theo dõi tải trên server
Bạn có thể sử dụng docker stats để monitor các container trên server và xác định các container có tải CPU hoặc bộ nhớ cao. Điều này giúp tối ưu hóa việc sử dụng tài nguyên và cải thiện hiệu suất của ứng dụng.
docker stats
Ví dụ 2: Theo dõi một container cụ thể trong quá trình thử nghiệm
Khi thử nghiệm phiên bản mới của ứng dụng hoặc thay đổi cấu hình, bạn có thể theo dõi các metric của một container cụ thể để đảm bảo không có tác động tiêu cực đến hiệu suất.
docker stats my_test_container
Ví dụ 3: Tích hợp với hệ thống monitoring
Bạn có thể tích hợp đầu ra từ docker stats
với các hệ thống monitoring bên ngoài bằng cách sử dụng option --format
để tạo định dạng output tương thích với công cụ monitoring của bạn.
docker stats --no-stream --format "{{.Container}}: CPU {{.CPUPerc}}, MEM {{.MemUsage}}"
Hạn chế của lệnh docker stats
Mặc dù docker stats
cung cấp các metric hữu ích trong thời gian thực, nhưng nó có một số hạn chế:
- Metric hạn chế: Lệnh chỉ hiển thị các metric cơ bản và không cung cấp thông tin chi tiết về trạng thái của các container.
- Sử dụng thủ công: docker stats thuận tiện khi sử dụng thủ công, nhưng để monitor tự động và cảnh báo thì tốt hơn nên dùng các công cụ chuyên dụng như Prometheus và Grafana.
GO TO FULL VERSION