Приоритезация ввода/вывода в Xen

Материал из Xgu.ru

Перейти к: навигация, поиск


Автор: Андрей Авраменко (liks AT altlinux.ru)
Короткая ссылка: http://xgu.ru/wiki/xen/io


Содержание

[править] Приоритеты для использования Disk I/O

[править] ionice

С выходом CFQ v3 в Linux 2.6.13 появилась возможность выставлять приоритеты использования дисковой подсистемы для процессов, чего раньше так не хватало. Подобно утилите nice, предназначенной для назначения приоритетов использования процессора, появилась утилита ionice, назначает для процессов приоритеты ввода/вывода.

Синтаксис команды прост:

ionice -c класс -n приоритет -p PID

Класс:

  • 3 (Idle) — Получает приоритет на использование жесткого диска только когда другие программы ничего не пишут. Приоритеты не используются.
  • 2 (Best Effort) — Класс по умолчанию. Доступные приоритеты [0-7].
  • 1 (Real Time) — Даёт преимущественный доступ к диску процессу, несмотря на другие процессы. Доступные приоритеты [0-7].

Подробнее: man ionice

[править] Приоритеты ввода/вывода гостевых доменов Xen

После запуска гостевых систем по ps aux можно видеть в квадратных скобках появившиеся драйвера блочных устройств xvd, после которых указан ID гостевого домена. Приоритеты для этих процессов можно устанавливать с помощью ionice, точно также как и для всех остальных.

$ ps aux | grep xvd
root       616  0.0  0.0      0     0 ?        S<   16:05   0:00 [xvd 1 07:00]
igor       773  0.0  0.0   3892   764 pts/0    R+   16:08   0:00 grep xvd

Изменение приоритета ввода/вывода нужно выполнять для процесса 616.

Аналогичным образом можно выполнять и приоритезацию ввода/вывода для HVM-доменов, только для этого нужно применять ionice к процессам qemu-dm, работающим в домене 0.

$ ps aux | grep qemu-dm
root       645  8.3  0.1  27272  2400 ?        Sl   16:05   0:09 /usr/lib/xen-3.2-1/bin/qemu-dm -d 2 -domain-name winxp-hdd ...
igor       769  0.0  0.0   3888   764 pts/0    R+   16:07   0:00 grep qemu-dm

[править] Эксперименты

Проведем 2 эксперимента для операций чтения и записи.

Выставим одной гостевой системе класс Real Time, а второй — Idle.

Запустим одновременно dd на обеих системах для записи небольшого файла. Конечно слово «одновременно» здесь весьма условно. Для повышения точности лучше провести несколько измерений.

%# dd if=/dev/zero of=/root/file.txt bs=1024 count=10240000

В результате средняя скорость в первой гостевой системе - 40Mb/sec, во второй - 20Mb/sec.

Другим экспериментом является операция тестирования скорости чтения диска с помощью hdparm:

%# hdparm -t /dev/xvda

В результате в первом гостевом домене скорость — 25Mb/sec, во втором — 2Mb/sec.

[править] Заключение

Недостатком данного решения является отсутствие соответствующих опций в конфигурационном файле гостевых доменов Xen, что означает, что при каждом старте домена необходимо устанавливаеть его приоритет заново.

Следует обратить внимание, что данная возможность доступна только для CFQ.

Проверьте, какой способ приоритезации используется:

  cat /sys/block/ИМЯ_ДИСКА/queue/scheduler

Активный sheduler должен быть в квадратных скобках. Например:

$ cat /sys/block/sda/queue/scheduler 
noop anticipatory deadline [cfq] 

[править] См. также

[править] Дополнительная информация

Xen
Xen

Виртуализация и паравиртуализация
Эмуляция | Виртуализация | Паравиртуализация | Рекурсивная виртуализация
Паравиртуальные драйверы | Виртуализация ввода/вывода

Общие вопросы по Xen
Аппаратные требования Xen | Поддержка Xen операционными системами | Поддерживаемые аппаратные архитектуры |
Примеры использования Xen | Сравнение виртуальных машин |
Хостинг на Xen
Альтернативы Xen

свободные: KVM | LXC | OpenVZ | VServer | QEMU | VirtualBox
проприетарные: Hyper-V | VMware ESX Server

Технические вопросы
Инсталляция Xen | Конфигурационный файл домена
ОС в Xen: Linux small icon.png Linux | Solaris small icon.png OpenSolaris | Freebsd small icon.png FreeBSD | Openbsd small icon.png OpenBSD | Netbsd small icon.png NetBSD | Windows xp small icon.png Windows XP | Windows vista small icon.png Windows Vista
Устройства: Блочные | USB | SCSI | Сеть | PV-драйверы для Linux | PV-драйверы для Windows | Консоль

Распределение ресурсов между доменами | Перенос системы внутрь Xen | HVM -> PV

Управление и кластеризация | Enomalism | Xen+DRBD | Ganeti | Convirt 2.0 | SkyCover Infrastructure