Blkio в терминологии cgroup означает доступ к вводу / выводу на блочных устройствах . Похоже, речь не идет о регулировании всех различных способов, которые разработчики программного обеспечения имеют под рукой для целей, связанных с вводом / выводом.
Похоже, что он предназначен в основном для ввода-вывода на устройствах , а не для доступа программного обеспечения к устройствам. Это может ограничить число iops, пропускную способность или вес с другими процессами, в других вещах. Кажется, что буферизованная запись не поддерживается blockio в данный момент. Это в официальной документации :
В настоящее время подсистема блочного ввода-вывода не работает для буферизованных операций записи. Он в первую очередь предназначен для прямого ввода-вывода, хотя и работает для буферизованных операций чтения.
Если вы посмотрите на эту презентацию Линды Ванг и Боба Коздемба из Red Hat, на странице 20+, вы увидите, что график показывает пропускную способность устройства на виртуальную машину, а не случайные против блокирования и асинхронного ввода-вывода.
Кажется , там была недавняя работа по 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? Предоставляет ли он что-то, что не дает нынешнее решение ОП? Вы знаете, как это связано с асинхронным вводом-выводом?