Blkio ในคำศัพท์ cgroupยืนสำหรับการเข้าถึง I / O ในอุปกรณ์ป้องกัน ดูเหมือนจะไม่เกี่ยวกับการควบคุมวิธีการที่แตกต่างกันทั้งหมดที่นักพัฒนาซอฟต์แวร์มีไว้เพื่อวัตถุประสงค์เกี่ยวกับ I / O
ดูเหมือนว่าจะมีการกำหนดเป้าหมายหลักเป็น I / O บนอุปกรณ์ไม่ใช่วิธีการที่ซอฟต์แวร์เข้าถึงอุปกรณ์ได้ มันสามารถ จำกัด จำนวนไอโอพแบนด์วิดท์หรือน้ำหนักกับกระบวนการอื่น ๆ ในสิ่งอื่น ๆ ดูเหมือนว่าขณะนี้ blockio ไม่รองรับการเขียนบัฟเฟอร์ มันอยู่ในเอกสารอย่างเป็นทางการ :
ปัจจุบันระบบย่อย Block I / O ไม่สามารถใช้งานได้สำหรับการดำเนินการเขียนบัฟเฟอร์ เป็นเป้าหมายหลักที่ direct I / O แม้ว่าจะเหมาะสำหรับการดำเนินการอ่านบัฟเฟอร์
หากคุณดูที่การนำเสนอนี้จาก Linda Wang และ Bob Kozdemba ของ Red Hat ในหน้า 20+ คุณจะเห็นว่ากราฟเกี่ยวกับแบนด์วิดท์ของอุปกรณ์ต่อ VM ไม่ใช่การสุ่มเทียบกับการบล็อก vs asynchronous I / O
ดูเหมือนว่าจะมีงานเมื่อเร็ว ๆ นี้ โดย Red Hat ที่จะนำมันไปใช้กับ virsh โดยตรง มันได้รับการปล่อยตัวออกมาเมื่อสัปดาห์ที่แล้วใน libvirt 0.9.9 ในอีกไม่กี่เดือนคุณจะสามารถทำสิ่งนี้ในการกระจายที่คุณชื่นชอบ:
virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
ionice
ทางเลือกที่ดีกว่าการใช้blkio
จาก cgroups? มันให้บางสิ่งบางอย่างที่ทางออกปัจจุบันของ OP ไม่ใช่หรือไม่? คุณรู้หรือไม่ว่าเกี่ยวข้องกับอะซิงโครนัส IO อย่างไร