cgroupfs คืออะไรและใช้กับนักเทียบท่าได้อย่างไร


16

ในเอกสารนักเทียบท่ามีการพูดคุยเกี่ยวกับตัวเลือกต่าง ๆ สำหรับตัวเรียกใช้งานดั้งเดิม ( https://docs.docker.com/engine/reference/commandline/daemon/ ) เอกสารกล่าวว่า

ตัวเลือก native.cgroupdriver ระบุการจัดการของกลุ่ม cg คุณสามารถระบุ cgroupfs หรือ systemd หากคุณระบุ systemd และไม่พร้อมใช้งานระบบจะใช้ cgroupfs โดยค่าเริ่มต้นหากไม่มีการระบุตัวเลือกตัวดำเนินการตัวแรกจะพยายาม systemd และกลับไปที่ cgroupfs ตัวอย่างนี้ตั้งค่า execdriver เป็น cgroupfs:

คำถามของฉันคืออะไรcgroupfsและมันเปรียบเทียบกับsystemdในกรณีนี้อย่างไร Googling สำหรับข้อมูลเกี่ยวกับcgroupfsนำไปสู่การทวีต :

--exec-opt native.cgroupdriver = cgroupfs FTW จริงจัง @docker, ลดการสนับสนุนกลุ่ม cg ที่จัดการโดย systemd มันเป็นความหายนะ

แต่ฉันหวังว่าบางคนสามารถให้รายละเอียดเพิ่มเติมเกี่ยวกับสิ่งนี้ทำอะไรได้มากกว่าแค่บอกว่าใช้การตั้งค่าที่แตกต่างจากค่าเริ่มต้น


คุณตระหนักถึงสิ่งนี้ทั้งหมดเกี่ยวกับการจัดสรรทรัพยากรระบบ (CPU) ให้กับคอนเทนเนอร์ใช่ไหม? systemd มีการรวม cgroup ในตัว Cgroupfs เป็นมุมมองระบบไฟล์ของอินเตอร์เฟส cgroup ของเคอร์เนล หากนี่คือสิ่งที่คุณกำลังมองหาฉันจะตอบคำถามนี้ แต่ถ้าคุณรู้สิ่งนี้แล้วฉันจะต้องขุดผ่านรหัส
Otheus

@Otheus ฉันไม่ได้ใส่เงินรางวัลกับคำถามที่ผมไม่แน่ใจว่าสิ่งที่คนที่ไม่ได้มีความสนใจใน. --exec-opt native.cgroupdriver=cgroupfsสิ่งสำคัญที่กระตุ้นให้ฉันถามคำถามเป็นความปรารถนาที่จะเข้าใจว่าทำไมมีคนแนะนำให้ใช้ตัวเลือก แต่ฉันสงสัยว่าถ้าคุณเขียนคำตอบอธิบายการตั้งค่าที่ง่ายกว่าสำหรับผู้เริ่มต้นที่จะเข้าใจมากกว่าสิ่งที่อยู่ในเอกสารของนักเทียบท่าที่คุณจะได้รับ upvotes และมันอาจจะเป็นประโยชน์สำหรับผู้ที่ค้นหาคำถามจาก Google ในอนาคตด้วย
Gabriel Southern

คำตอบ:


1

ที่ฉันเห็นจากความคิดเห็นในแหล่งที่มาใน: 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.

cgroupfsดูเหมือนว่าจะเป็นนักเทียบท่าของตัวเอง ( libcontainer) การใช้งานซึ่งกำหนดค่าคอนเทนเนอร์cgroupsเขียนโดยตรงไปยังไฟล์บนcgroups-file-system(เช่นติดตั้งใน/sys/fs/cgroup/)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.