Cách kiểm tra mức sử dụng RAM và CPU của Docker Container

theanh

Administrator
Nhân viên
Docker là một trong những nền tảng container hóa phổ biến và được sử dụng rộng rãi nhất để xây dựng, chia sẻ và chạy ứng dụng. Trong thế giới ngày nay, hầu hết các ứng dụng đều được triển khai trên nền tảng container hóa nên việc quản lý container Docker là nhiệm vụ chính của bất kỳ quản trị viên hệ thống nào. Docker cho phép bạn kiểm tra và giám sát việc sử dụng tài nguyên như CPU và việc sử dụng Bộ nhớ của các container Docker.

Hướng dẫn này sẽ chỉ cho bạn cách kiểm tra việc sử dụng CPU và RAM của container Docker.

Điều kiện tiên quyết​

  • Một máy chủ chạy Linux đã cài đặt Docker.
  • Một mật khẩu gốc được cấu hình trên máy chủ.

Cách giám sát và kiểm tra việc sử dụng CPU và RAM của container Docker​

Docker cung cấp một lệnh phụ stats cho phép bạn kiểm tra bộ nhớ và mức sử dụng CPU của các container Docker đang chạy của bạn.

Để liệt kê tất cả các lệnh docker stats, hãy chạy lệnh sau.
Mã:
docker stats --help
Bạn sẽ nhận được kết quả sau.
Mã:
Usage: docker stats [OPTIONS] [CONTAINER...]
Display a live stream of container(s) resource usage statistics
Options: -a, --all Show all containers (default shows just running) --format string Pretty-print images using a Go template --no-stream Disable streaming stats and only pull the first result --no-trunc Do not truncate output
Bây giờ, hãy chạy lệnh docker stats để kiểm tra trạng thái của tất cả các container đang chạy container:
Mã:
docker stats
Bạn sẽ nhận được thông tin của tất cả các container đang chạy trong đầu ra sau.
Mã:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
cb40a0f56aba determined_robinson 0.00% 2.648MiB / 3.839GiB 0.07% 726B / 0B 0B / 12.3kB 3
e0ee5b16c93f portainer 0.84% 24.6MiB / 3.839GiB 0.63% 1.02MB / 4.35MB 0B / 721kB 5
Theo mặc định, lệnh docker stats sẽ hiển thị luồng trực tiếp của tất cả các số liệu thống kê container. Nếu bạn muốn xem số liệu thống kê đầu tiên của tất cả các container đang chạy, hãy sử dụng cờ --no-stream.
Mã:
docker stats --no-stream
Bạn sẽ nhận được kết quả đầu ra sau.
Mã:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
cb40a0f56aba determined_robinson 0.00% 2.648MiB / 3.839GiB 0.07% 796B / 0B 0B / 57.3kB 3
e0ee5b16c93f portainer 0.00% 25.5MiB / 3.839GiB 0.65% 1.03MB / 4.35MB 0B / 721kB 5
Theo mặc định, lệnh docker stats sẽ hiển thị số liệu thống kê của tất cả các container đang chạy. Nếu bạn muốn hiển thị số liệu thống kê của cả container đang chạy và đã dừng, hãy sử dụng cờ -a:
Mã:
docker stats --no-stream -a
Nếu bạn muốn kiểm tra trạng thái của một container cụ thể, hãy sử dụng lệnh docker stats theo sau là id container.
Mã:
docker stats cb40a0f56aba
Bạn sẽ nhận được thông tin sau đầu ra.
Mã:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
cb40a0f56aba determined_robinson 0.00% 2.648MiB / 3.839GiB 0.07% 796B / 0B 0B / 57.3kB 3
Chạy lệnh sau để chỉ hiển thị thông tin CPU của tất cả các chương trình đang chạy container.
Mã:
docker stats --format "{{.Container}} {{.CPUPerc}}" --no-stream
Đầu ra.
Mã:
cb40a0f56aba 0.00%
e0ee5b16c93f 0.00%
Chạy lệnh sau để chỉ hiển thị thông tin CPU và Bộ nhớ của tất cả các chương trình đang chạy container.
Mã:
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemPerc}}"
Đầu ra.
Mã:
CONTAINER CPU % MEM %
cb40a0f56aba 0.00% 0.07%
e0ee5b16c93f 0.10% 0.59%

Hiển thị mức sử dụng container Docker bằng Pseudofiles​

Bạn cũng có thể kiểm tra số liệu container Docker từ các nhóm kiểm soát nằm trong thư mục /sys/fs/cgroup trên Docker hệ thống máy chủ container.

Đầu tiên, lấy tất cả id container đang chạy bằng lệnh sau.
Mã:
docker ps --no-trunc --format "{{.Names}}\t{{.ID}}"
Bạn sẽ nhận được kết quả sau.
Mã:
determined_robinson	cb40a0f56aba8b3a29513dafa7622f8d5d6435c9302dc6a3db73ea5eca506af5
portainer	e0ee5b16c93f358a15dfcb93cc80d2c2d1c1c675e7b65e41434ce20f08773465
Tiếp theo, chạy lệnh sau để lấy số liệu thống kê của container.
Mã:
cat /sys/fs/cgroup/system.slice/docker-e0ee5b16c93f358a15dfcb93cc80d2c2d1c1c675e7b65e41434ce20f08773465.scope/cpu.stat
Bạn sẽ nhận được số liệu container trong đầu ra sau.
Mã:
usage_usec 1550758
user_usec 1301875
system_usec 248883
nr_periods 0
nr_throttled 0
throttled_usec 0

Kết luận​

Trong bài viết này, chúng tôi đã chỉ cho bạn cách kiểm tra mức sử dụng CPU và bộ nhớ của Docker container thông qua dòng lệnh. Tôi hy vọng điều này sẽ giúp bạn theo dõi môi trường Docker của mình. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên