Cgroupfs là gì và nó được sử dụng như thế nào với Docker?


16

Trong tài liệu Docker có một cuộc thảo luận về các tùy chọn cho người thực thi bản địa ( https://docs.docker.com/engine/reference/commandline/daemon/ ). Các tài liệu nói

Tùy chọn local.cgroupdo chỉ định việc quản lý các nhóm của nhóm. Bạn có thể chỉ định cgroupfs hoặc systemd. Nếu bạn chỉ định systemd và nó không có sẵn, hệ thống sẽ sử dụng cgroupfs. Theo mặc định, nếu không có tùy chọn nào được chỉ định, trước tiên, execler sẽ thử systemd và quay lại cgroupfs. Ví dụ này đặt execler thành cgroupfs:

Câu hỏi của tôi là những gì cgroupfsvà làm thế nào nó so sánh với systemdtrong trường hợp này? Googling cho thông tin về cgroupfsdẫn đến một tweet :

--exec-opt local.cgroupdo = cgroupfs FTW. Nghiêm túc @docker, bỏ hỗ trợ cho các nhóm được quản lý bởi systemd, đó là một thảm họa

Nhưng tôi hy vọng ai đó có thể cung cấp thêm chi tiết về những gì điều này thực sự làm thay vì chỉ nói sử dụng một cài đặt khác với mặc định.


Bạn có nhận ra tất cả những gì phải làm với việc phân bổ tài nguyên hệ thống (CPU) cho một container không? systemd có tích hợp cgroup tích hợp. Cgroupfs là chế độ xem hệ thống tệp của giao diện cgroup của kernel. Nếu đây là những gì bạn đang tìm kiếm, tôi sẽ đưa ra câu trả lời. Nhưng nếu bạn đã biết điều này rồi, tôi sẽ phải tìm hiểu kỹ về mã.
Otheus

@Otheus Tôi đã không đặt tiền thưởng cho câu hỏi vì vậy tôi không chắc người thực sự quan tâm đến vấn đề gì. Điều chính thúc đẩy tôi đặt câu hỏi là mong muốn hiểu lý do tại sao ai đó đề xuất sử dụng tùy chọn này --exec-opt native.cgroupdriver=cgroupfs. Nhưng tôi nghi ngờ nếu bạn đã viết một câu trả lời giải thích cài đặt dễ hiểu hơn cho người mới bắt đầu so với những gì trong tài liệu Docker mà bạn sẽ nhận được một số upvote và nó cũng có thể hữu ích cho những người tìm thấy câu hỏi từ Google trong tương lai.
Gabriel Nam

Câu trả lời:


1

Như tôi có thể thấy từ nhận xét trong các nguồn trong: vendor/src/github.com/opencontainers/runc/libcontainer/factory_linux.go

// Cgroupfs is an options func to configure a LinuxFactory to return
// containers that use the native cgroups filesystem implementation to
// create and manage cgroups.

cgroupfsdường như là libcontainertriển khai docker ( ) riêng để cấu hình các container cgroupsghi trực tiếp vào các tệp trên cgroups-file-system(ví dụ như được gắn vào /sys/fs/cgroup/).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.