У меня есть Xen Dom0 (3.2) с кучей domUs (паравирт). DomU VBD находятся на локальных томах LVM. Теперь я хочу получить резервные копии томов LVM с помощью моментальных снимков. Я использую rsync ioniced для простоя (ionice -c3).
Я убедился, что процессы rsync действительно находятся в режиме ожидания, а blkback
потоки ядра находятся в лучшем состоянии (-c2 -n4).
Насколько я понимаю систему планирования ввода-вывода, сконфигурированный таким образом процесс rsync никогда не сможет украсть пропускную способность ввода-вывода из blkback
процессы и, следовательно, влияние на domUs должно быть нулевым.
Но я не это вижу. В домах vmstat
показывает до 20% ожидания ввода-вывода во время операции со списком файлов rsync и около 10% при передаче данных rsync:
r b swpd free buff cache si so bi bo in cs us sy id wa
1 3 456 48468 103004 1550936 0 0 75 484 2112 1741 3 0 81 16
Без запуска rsync ожидание ввода-вывода составляет около 1%:
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 456 43876 105564 1553224 0 0 19 365 2063 1718 4 0 95 1
dom0 показывает устойчивое ожидание ввода-вывода 11% при операции со списком файлов rsync и 5% при передаче данных:
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 23536 220220 73256 558856 0 0 1471 239 5271 310 0 0 89 11
Итак, кто-нибудь знает, что здесь происходит? Ионис просто сломан или я ожидаю неправильных эффектов?
Спасибо за подсказку.
Тим
Какой дистрибутив у вас есть?
Какую файловую систему вы используете?
Какой планировщик ввода-вывода (CFQ, deadline, упреждающий, noop) вы используете?
Во время тяжелых файловых операций ожидание 0% ввода-вывода не является разумным. Будет некоторое ожидание ввода-вывода с вращающимися дисками, несмотря ни на что. Некоторые файловые системы немного уменьшают этот эффект, иногда может немного помочь настройка или изменение планировщика ввода-вывода, иногда вам просто придется немного подождать ввода-вывода. Около 10-20% - это не ТАКОЕ, если вы не заметили резкое замедление работы вашего сервера. В случае резкого замедления вы можете получить подсказку о том, что происходит с такими инструментами, как btrace
, который показывает отдельные запросы ввода-вывода, их состояние и общую статистику планировщика ввода-вывода / блочного устройства.