Оптимизация производительности и скорости работы BMW DIS на виртуальной машине VMware

Операционная система SCO OpenServer и непосредственно сам DIS — это очень старое программное обеспечение, разработанное для очень старого и низкопроизводительного оборудования. И по современным меркам, давно устаревшего.

 

Всё современное программное обеспечение оптимизированно для работы с драйверами, без которых невозможно задействовать всю производительность, например, видеокарты. Без драйверов производительность и стабильность работы аппаратного обеспечения снижается в разы или программное обеспечение даже откажется работать.

 

Операционная система SCO OpenServer имеет набор встроенных драйверов для оборудования, актуального на тот момент времени. И DIS полностью оптимизирован для работы на этом оборудовании. По этому DIS не требуется много вычислительных ресурсов. Характеристик планшета Group Tester One более чем достаточно: одноядерный процессор с тактовой частотой 500 МГц, 20 ГБ дискового пространства, 256 МБ оперативной памяти и сеть 10/100 МБ/с. А характеристики IBM T30 — это уже излишество.

 

На первый взгляд может показаться, что на современном оборудовании DIS должен просто летать. Особенно на AMD Ryzen Threadripper PRO 3995WX и NVIDIA RTX A6000.

 

Но в SCO OpenServer нет драйверов для современного аппаратного обеспечения, а значит DIS попросту не оптимизирован для работы на нём. Что существенно снижает общую производительность на виртуальной машине. Операционная система Windows и гипервизор VMware частично компенсируют отсутствие необходимых драйверов за счёт высокой производительности современного оборудования.

 

Но всё равно нативная установка DIS на Group Tester One или IBM T30 обеспечивает большую производительность за счёт оптимизации, нежели использование виртуализации даже на более производительном оборудовании, по сравнению с установленным в GT1 и IBM T30.

 

Значит ничего нельзя сделать?

 

Можно, иначе небыло бы этой статьи. Для начала нужно определиться в каких попугаях измерять производительность DIS. Без объективных данных нельзя говорить о том, где же DIS работает быстрее, при использовании нативной установки или виртуализации. Субъективные ощущения нельзя измерить, а значит они не могут являться показателем скорости работы.

 

За эталон производительности возьмём 38 попугаев время загрузки DIS на оригинальном планшете Group Tester One.

 

 

Основные этапы:

  • Загрузка BIOS — 12 секунд
  • Загрузка SCO OpenServer — 42 секунды
  • Запуск DIS — 1 минута 16 секунд

 

Полное время готовности DIS к работе на BMW Group Tester One  — 2 минуты 10 секунд.

 

Теперь известны объективные данные, от которых можно отталкиваться для сравнения производительности нативной установки DIS, по сравнению с виртуализацией.

 

Я не буду сравнивать скорость работы графического интерфейса DIS, реакции на нажати кнопок или время открытия окон. Слишком сложно оценить производительность на непродолжительных по времени действиях, 1 — 5 секунд. Для объективности нужно сравнивать время выполнения продожительных по времени действий, тогда можно гарантировать отсутствие самообмана и субьективных ощущений прироста производительности. На самом деле имеется прямая зависимость между ускорением загрузки DIS и производительностью его графического интерфейса. Ускорив первое мы ускоряем и второе.

 

Также я не буду учитывать производительность любых маломощных устройств, например, ноутбуков, нетбуков, переносных компьютеров, моноблоков или планшетов. Планшет Group Tester One был дорогостоющим устройством, на момент выхода 10 000$, по этому сравнение будет с моей мощной рабочей станцией. Моя задаче не сделать дешевле, а оптимизировать время = деньги.

 

Характеристики моей рабочей станции:

  • ОС — Windows 7
  • Процессор — Intel Core i7-3770K
  • Оперативная память — DDR3 1600 32Gb
  • SSD — Samsung 860 Pro 1024 ГБ
  • Гипервизор — VMware Workstation 15 Pro

 

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

 

Промежуточные этапы

  • Загрузка BIOS физической машины
  • Загрузка Windows 7
  • Загрузка гипервизора VMware
  • Запуск виртуальной машины DIS

 

Основные этапы:

  • Загрузка SCO OpenServer
  • Загрузка DIS

 

Влияние процессора на производительность DIS

 

Я произвёл множество различных замеров с разными процессорами и конфигурациями виртуальной машины. И пришёл к заключению что нет никакой зависимости производительности DIS от конфигурации VMware Workstation. Во всех случаях скорость запуска оставалось прежней. Встроенными средствами виртуализации VMware невозможно улучшить производительность, без использования более производительного процессора.

 

Оптимизация производительности и скорости работы BMW DIS на виртуальной машине VMware

 

DIS не использует параллельные вычисления, по этому выделение виртуальной машине больше ядер, потоков или смена движков виртуализации совсем не даёт прироста производительности. Но тесты показали зависимость скорости запуска DIS от однопоточной производительности ЦП. Если сказать проще — чем больше ГГц, тем лучше. Если сложнее — архитектура, разрядность, объём кэша и.т.д.

 

Влияние оперативной памяти на производительность DIS

 

SCO Openserver 5.0.7 поддерживает до 4 ГБ оперативной памяти, но DIS использует только 256 МБ. Невозможно заставить DIS использовать больше ОЗУ, так как он оптимизирован под определённый объём, который устанавливался в планшете Group Tester One.

 

Оптимизация производительности и скорости работы BMW DIS на виртуальной машине VMware

 

Тесты показали что выделение виртуальной машине больше 256 МБ оперативной памяти не ускоряет, а замедляет скорость запуска DIS, за счёт увеличения времени на проверку памяти со стороны SCO Openserver.

 

 

Также нет никакого прироста производительности при использовании более быстрой оперативной памяти.

 

Влияние скорости накопителя на производительность

 

Я произвёл сотни тестирований на различных накопителях памяти, начиная от самых медленных HDD и заканчивая RAM дисками.

 

Инструкция по оптимизации, ускорению работы и убиранию лагов BMW DIS на виртуальной машине VMware

Инструкция по оптимизации, ускорению работы и убиранию лагов BMW DIS на виртуальной машине VMware

Из замеров можно сделать вывод что для получения оптимальной производительности будет достаточно использования SSD с шиной Sata 3.0 / PCIe / NVMe, куда более важным является показатель IOPS накопителя. Замеры с использованием RAMDisk не очень бъективны, так как узким горлышком всё равно будет скорость шины в фазе копирования данных из энергонезависимой памяти в RAM. Но если никогда не выключать физическую машину, то можно использовать RAMDisk. По этому за лучший результат я возьму замеры с использованием SSD Sata 3.0.

 

Основной этап запуска, при задействии всей производительности моей рабочей станции, сократился на 85 секунд.

 

Промежуточный этап занимает у меня 20 секунд.

 

Полное вемя готовности DIS к работе — 70 секунд. Это на 46% быстрее, по сравнению с планшетом Group Tester One.

 

Можно с уверенностью заявить — виртуализация победила нативную установку DIS, в объективном сравнении. Разумеется и графический интерфейс DIS работает молниеносно во время любых операций, но субъективные ощущения не поддаются замерам. Могу только продемонстрировать скорость работы графического интерфейса с использованием DISLauncher.

 

 

Можно ли добиться большей производительности?

 

Так же тесты показали что виртуализация VMware Workstation 6 загружает SCO OpenServer на 2 секунды быстрее, но запуск DIS занимает на 2 секунды дольше, нежели в VMware Workstation 15. Что в конечном счёте нивелирует разницу в скорости запуска.

 

 

В теории, виртуализация позволяет добиться неограниченной скорости работы DIS. Но в какой то момент мы упираемся в потолок возможностей ядра VMware для виртуализации SCO Openserver. После которого, использование более производительного оборудования перестаёт оказывать заметное влияния на скорость запуска и производительности графического интерфейса DIS.

 

DIS не использует многопоточную обработку и параллельное чтение данных из накопителя. На самом деле DIS оптимизирован специально под медленные жёсткие диски и слабые процессоры.

 

DIS — это совокупность множества процессов и скриптов, непосредственно связаных друг с другом. Каждый следующий процесс или скрипт ждёт выполнение предыдущего, и тут разработчики сделали глупость. DIS полагается на время выполнения определённых скриптов, и если скрипт выполняется быстрее, чем задумывали разработчики, что-то начинает ломаться. Если упростить — в DIS добавлены специальные временные паузы, которые существенно замедляют скорость загрузки. Попытка убрать паузы из скриптов сразу ломает DIS.

 

Использование ещё более производительного оборудования уменьшает время запуска DIS всего пару секунд, что не сравнимо со стоимостью мощного железа. Прирост производительности будет заметен только в синтетических тестах и пусть за попугаями гоняются оверклокеры. Теоретическая минимальная скорость загрузки DIS 40 секунд. Замеры были произведены на самом мощной машине Amazon AWS.

 

Гипервизоры позволяют делать снапшоты, благодаря которым можно поставить виртуальную машину на паузу и моментально запустить её с того же места, с которого был сделал снапшот. В таком случае время время запуска DIS составит всего 1 секунду. Это нивелирует вообще всю необходимость в мощном и дорогостоющем оборудовании. Куда логичным будет заняться снижением времени запуска физической машины (BIOS, Windows, VMware), для которой есть драйверы под мощное современное оборудование и программное обеспечение.

 

При использовании функции автозапуска в DISLauncher, время загрузки DIS из снапшота, с момента включения моей рабочей станции, составляет всего 21 секунду. Это на 84% быстрее, по сравнению с планшетом Group Tester One.

 

 

А что же делать с курсором?

 

Это самая знаменитая проблема DIS, работающим под виртуализацией, из-за которой скорость и производительность мыши никогда не будет такой же плавной, как в нативной установке DIS на Group Tester One или IBM T30.

 

В SCO OpenServer нет нужных драйверов мыши для гипервизоров VMware. Современное высокопроизводительное оборудование частично компенсирует эту проблему. Но чем дольше длится сессия работы в DIS, тем хуже становится производительность мыши. В конечном счёте DIS просто перестаёт реагировать на щелчки мыши, без её дальнейшего передвижения в сторону. Лечение только одно — перезагрузка DIS. И так по новой.

 

Unix-подобнные операционные системы, в нашем случае SCO OpenServer, используют систему X-Window для отображение графического интерфейса. Программа DIS является клиентом, который подключается к X-Window, являющимся сервером. Сервер обрабатывает не только графический интерфейс DIS, но и мышь — положение курсора, клики.

 

Любые X-Window серверы, для операционной системы Windows, будут иметь необходимые драйверы мыши. Которые обеспечат производительность мыши в виртуальной машине такой же, как если бы использовалась нативная установка DIS. Сервер будет передавать клиенту положение курсора на экране и клики мыши, а клиент обработает эти данные так же, как если бы их передавала виртуальная машина VMware.

 

Если упростить — необходимо заменить встроенный, в SCO OpenServer, сервер X-Window на любой другой, который можно установить на операционную систему Windows, например X-Win32.

 

X-Win32 2012 — это лучший X-Window сервер для Windows. Единственный поддерживающий 8 битные псевдо цвета для 32 битной цветопередачи Windows и не чувствительный к разнице разрешения экрана.

 

Устанавливаем 32 битную цветопередачу и разрешение экрана 1024х768 в Windows. Устанавливаем X-Win32 на компьютер, с которого будет использоваться DIS. Это не обязательно должен быть тот же самый компьютер, на котором установлена виртуальная машина DIS. Добавляем русские шрифты в корневой каталог и настраиваем конфигурацию X-Win32.

 

Скрытый текст! Авторизируйтесь или зарегистрируйтесь

 

Запускаем X-Win32 и виртуальную машину с DIS, ожидаем появление появление стартового экрана DIS в окне VMware. Нажимаем сочетание клавиш Ctr+Alt+PrnScr, откроется консольное окно SCO OpenServer для изменения IP адреса X-Window сервера.

 

Вводим IP адрес физической машины, с которого будет использоваться DIS, и нажимаем Enter. Далее соглашаемся с изменением IP адреса X-Window сервера. Ожидаем появление экрана DIS в окне X-Win32.

 

Исправление плохой производительности мыши в DIS полностью завершено. Теперь плавность курсора в виртуальной машине будет аналогична нативной установке DIS на планшет Group Tester One или IBM T30.

 

 

Возможно DIS не сможет подключиться по указанному IP адресу.

 

 

В таком случае, перед сменой IP адреса X-Window сервера, необходимо выполнить в командной строке Windows команду PING по IP адресу DIS, чтобы убедиться в возможности подключения к виртуальной машине со стороны физической машины, с которой будет использоваться DIS. В случае отсутствия пинга необходимо проверить сетевую конфигурацию машин.

 


 

Мало кто знает, но DIS нужно выключать правильно, аналогично процессу "завершение работы" в Windows. Выключение DIS через команду Shut Down Guest, в гипервизоре VMware, со временем убивает SCO OpenServer и снижает дальнейшую стабильность DIS. Для правильного завершения работы DIS требуется, в SCO OpenServer, выполнить команду init 0 и дождаться выключения виртуальной машины.

 

За правильное выключение планшета BMW Group Tester One отвечает кнопка питания на лицевой стороне, и так же придётся дожидаться завершения работы DIS, как и в случае с виртуализацией. Это официальная процедура в SCO OpenServer.

 

Аналогично и экстренное выключение Windows так же со временем ломает операционную систему, что в конечном счёте приведёт к синему экрану смерти.

 

 

Разумеется даже этот процесс можно автоматизировать, благодаря снапшотам гипервизора VMware.

 

  • Запускаем виртуальную машину и ждём появления стартового окна DIS.
  • Правильно выключаем DIS.
  • Создаём снапшот.
  • Настраиваем конфигурацию виртуальной машины на возврат к снапшоту после выключения виртуальной машины.

 

Лучше делать это сразу после новой установки DIS на виртуальную машину, а не через пол года, когда SCO OpenServer уже полудохлый.

 

Теперь в не зависимости от того, как был закрыт DIS, хоть через убивание процесса VMware с помощью диспетчера задач Windows, виртуальная машина всегда вернётся к снапшоту с девственным DIS. Это обеспечивает надёжность и стабильность DIS, которой невозможно добиться в планшете Group Tester One, любое неожиданное выключение которого, например из-за разряжения аккумулятора, так же медленно убивает SCO OpenServer.

 

Я же рекомендую сделать немного иначе, всё таки статья про оптимизацию и ускорение. Загрузка DIS из паузы виртуальной машины занимает всего одну секунду. По этому можно сделать снапшот виртуальной машины, которая находится на паузе. И после каждого выключения виртуальной машины, DIS будет всегда запускаться из снапшота паузы, всего за одну секунду.

 

  • Запускаем виртуальную машину и ждём появления стартового окна DIS.
  • Ставим виртуальную машину на паузу.
  • Создаём снапшот.
  • Запускаем виртуальную машину и сразу же выключаем.
  • Настраиваем конфигурацию виртуальной машины на возврат к снапшоту после выключения виртуальной машины.

 

Теперь DIS всегда будет запускаться моментально, не зависимо от способа выключения. Это так же лучше делать это сразу после новой установки DIS на виртуальную машину.

 

По сути это все возможные оптимизации, фиксы ошибок и ускорения DIS, работающему на виртуальной машине. Теперь скорость работы в DIS ограничена только производительностью диагностического интерфейса EDIC, OPS, OPPS, ADS, OBD.

 

Скачать X-Win32 2012:

Скрытый текст! Авторизируйтесь или зарегистрируйтесь


Я ничего не понял rage

 

Тогда отправляем оборудование по почте мне, через неделю забираем полностью настроенным. С помощью удалённого рабочего стола не работаю.