Назад | Перейти на главную страницу

Ubuntu Trusty: производительность virt-manager по WAN… 40+ секунд зависает

Я использую графический интерфейс virt-manager 0.9.5-1ubuntu3 на моем ноутбуке под управлением Ubuntu 14.04 на сервере, расположенном на некотором расстоянии (та же ОС), и получаю довольно неприятную производительность.

Пинги между ноутбуком и сервером составляют ~ 50 мс, что не очень хорошо, но, безусловно, достаточно для доступа по SSH и даже нормального запуска Firefox через X / ssh. И сервер, и ноутбук имеют много свободных циклов ЦП, ОЗУ и дисков. Мой локальный ADSL - 8 Мбит / с на 800 Кбит / с восходящего потока, и, в исключительных случаях, жена не транслирует мыло ;-)

Я создаю новую виртуальную машину и выбираю «настроить конфигурацию перед установкой». Нажатие кнопки «Добавить оборудование» приостанавливает virt-manager примерно на 40 секунд, в течение которых происходит небольшая сетевая активность (отправлено 117 кБ, записано 151 кБ, пики 5 кбит / с вниз, 11 кбит / с вверх); ЦП / ОЗУ абсолютно в порядке на обоих устройствах.

Нажатие «Готово» в диалоговом окне «Добавить новое виртуальное оборудование» для добавления сетевой карты занимает 50 секунд с аналогичной статистикой пропускной способности.

Напротив, фактическое создание виртуальной машины (35 ГБ QCOW2 img) занимает около 15 секунд, а производительность консольного доступа через virt-manager великолепна - не намного медленнее, чем по SSH.

Я, должно быть, делаю что-то не так, но что?

После обновления до более новой версии я могу подтвердить, что ранее наблюдаемая низкая производительность ушла в прошлое. Версия для Ubuntu «Trusty» старше двух лет (0.9.5 против 1.2.0).

Обновление не так уж сложно, за исключением, возможно, выяснения того, какие зависимости требуются (в новой версии, похоже, намного больше, чем в старой). Вот как:

  1. Возьмите архив для последняя версия (Я тестировал это с 1.2.0) и распаковать где-нибудь под рукой
  2. Просмотрите зависимости, которые, возможно, потребуется установить: grep '^Requires:' virt-manager.spec.in
  3. Для каждой выявленной зависимости проверьте, нужно ли вам ее устанавливать; ниже приведен список (я считаю полным, но YMMV) пакетов, которые мне нужно было установить. Как указано в файле README, имя большинства зависимостей должно иметь префикс gir-1.2:

    sudo apt-get install python-ipaddr
    sudo apt-get install gir1.2-libvirt-glib
    sudo apt-get install gir1.2-libosinfo
    sudo apt-get install gir1.2-gtk-vnc
    sudo apt-get install gir1.2-spice-client-gtk-3.0
    
  4. Теперь у вас должна быть возможность запускать virt-manager из текущего каталога; попытайся: ./virt-manager и убедитесь, что ваши предыдущие проблемы с производительностью исчезли. Если это не удается, скорее всего, из-за отсутствия зависимости, поэтому вернитесь к предыдущему шагу.
  5. Остальное необязательно, так как вы можете просто продолжать запускать быструю версию из своего временного каталога, но если вы хотите установить под /usr чтобы заменить вялую упакованную версию во всей системе, запустите это:

    sudo python setup.py install --prefix=/usr
    
  6. Если вы попытаетесь запустить установленную версию, она может не работать из коробки. Немного отладки с python -d -v /usr/share/virt-manager/virt-manager --debug --no-fork выявил основную причину как (virt-manager:8484): GLib-GIO-ERROR **: Settings schema 'org.virt-manager.virt-manager' is not installed. Google наконец привел меня к этот отчет об ошибке; короче лекарство должно было бежать:

    sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
    
  7. Не забудьте проверить, что вы используете правильную версию, нажав Help-> About.