답변:
cgroup 용어의 Blkio는 블록 장치의 I / O에 대한 액세스를 나타냅니다 . 소프트웨어 개발자가 I / O 관련 목적으로 사용하는 모든 다른 방식을 규제하는 것은 아닙니다.
소프트웨어가 장치에 액세스하는 방식이 아니라 주로 장치의 I / O를 대상으로하는 것 같습니다 . 다른 프로세스의 iops 수, 대역폭 또는 가중치를 제한 할 수 있습니다. 현재 blockio는 버퍼 쓰기를 지원하지 않는 것 같습니다. 그것은에서의 공식 문서 :
현재 블록 I / O 하위 시스템은 버퍼 된 쓰기 작업에 작동하지 않습니다. 버퍼링 된 읽기 작업에 적합하지만 주로 직접 I / O를 대상으로합니다.
당신이 한 번 봐 걸릴 경우 이 프레젠테이션 린다 왕과 페이지 레드햇, 20 + 밥 Kozdemba에서를, 당신은 그래프가되지 비동기 I / O 대 차단 대 임의 대해, VM 당 장치 대역폭에 대한 것을 볼 수 있습니다.
거기 것 같다 최근 작업 virsh를에 직접 구현하기에 Red Hat. 지난 주 libvirt 0.9.9에서 발표 되었습니다 . 몇 개월 후에, 좋아하는 배포판에서 다음과 같은 작업을 수행 할 수 있습니다.
virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
ionice를 사용하고 싶을 수도 있지만 IO와 비슷합니다.
ionice
사용하는 것보다 더 나은 대안blkio
을 cgroup에서는? OP의 현재 솔루션이 제공하지 않는 것을 제공합니까? 비동기 IO와 어떤 관련이 있는지 알고 있습니까?