Пытаемся найти «лучший» способ запустить одновременно 10 32-битных прикладных программ DOS.
Короче говоря: у меня есть старое 32-битное приложение Dos 2003 года (компания больше не работает), которое имеет решающее значение для моего рабочего процесса. Он обрабатывает текстовые файлы и сильно нагружает процессор. Я ускоряю обработку больших текстовых файлов, разбивая их на 10 частей и запуская их все на разных компьютерах одновременно, а затем объединяя результаты в конце. Это невероятно экономит время на больших файлах. Я пытаюсь найти лучший способ обновить этот процесс.
Сейчас у меня 10 виртуальных машин под управлением Windows 10. (только что обновленная с XP). Работает нормально - лицензирование было не слишком дорогим. Мне просто интересно, есть ли способ дешевле / лучше? Это просто безумие, что у меня должно быть 10 лицензированных и обновленных операционных систем для настольных ПК.
Я посмотрел на сервер NANO, но он не запускает 32-битные приложения. Может быть, я смогу развернуть 10 виртуальных машин в Azure, когда они мне понадобятся? Я бы предположил, что я использую только эти 10 виртуальных машин не более чем на 1 час процессора в день. Просто ищу идеи. Единственное требование для этих виртуальных машин - запускать 32-битный процесс, когда это необходимо, запускать службу, которую я написал, чтобы все координировать, и находиться в домене и иметь доступ к общей папке домена. Спасибо.
Одна быстрая машина или виртуальная машина с одним экземпляром ОС и несколькими процессами DOS, вероятно, лучше, чем 10 виртуальных машин во многих отношениях.
Я предлагаю вам рассмотреть возможность запуска всего в одной системе или виртуальной машине с одним экземпляром ОС. Если вы можете получить виртуальную машину с достаточным количеством виртуальных ЦП / ядер / чего угодно или эквивалентной мощностью, которая вам нужна, вы получите производительность, о которой говорите, без запуска всех этих виртуальных машин. Windows может работать в многозадачном режиме и одновременно запускать несколько приложений DOS, распределяя нагрузку на несколько ядер. Не проблема.
Подумайте, какое реальное оборудование у вас есть
Вы только иногда запускаете этот DOS, верно? Тогда это прекращается? Я не знаю, какие у вас есть компьютеры, но системы с 8–16 ядрами в наши дни не редкость. У меня дома есть 8-ми ядерный сервер! Что-то подобное могло бы работать вместо одной или нескольких виртуальных машин Azure. Я не уверен, на какой результат вы рассчитываете. Один процессор Skylake тоже может надрать зад.
Изоляция процесса
Если вам требуется дополнительная изоляция (как вы упомянули в комментариях), чтобы несколько копий вашего приложения DOS не мешали друг другу, вы можете использовать chroot / песочницу, как описано здесь:
Есть ли в Windows эквивалент chroot?
Или используйте контейнеры Windows Server:
https://msdn.microsoft.com/en-us/virtualization/windowscontainers/about/about_overview
Возможно, есть и другие аналогичные варианты для Windows.
Не забывайте, что Linux делает все
Если вас устраивает Linux, вы можете запустить dos в Linux с помощью dosemu
. Изоляция процесса не представляет большой проблемы. Просто скажи dosemu
использовать разные каталоги для каждого экземпляра.