Как часть проекта, над которым я работаю, я хочу разместить приложение Unity3D на сервере, предназначенном для работы 24/7. Это приложение просто принимает входящие запросы через сокеты, отрисовывает изображения (быстрый рендеринг имеет наивысший приоритет) и возвращает отрендеренные изображения через сокеты.
Какую ОС мне использовать для этого? Linux еще не полностью поддерживается Unity3D, поэтому выбор за Windows Server.
У меня нет большого опыта в подобных вещах, но из моего собственного исследования я пришел к выводу, что есть два способа сделать это:
A) Установите Windows Server и повозитесь с ним, чтобы получить ускорение 3D.
Б) Установите рабочий стол Windows и повозитесь с ним, чтобы он стал быстрее и стабильнее.
Что бы вы порекомендовали? Есть ли компромиссы в стабильности и / или производительности с любым из этих вариантов?
Ответы:
Я рекомендую настольный компьютер.
На предыдущем месте, где я работал, у нас был 3D-график коммитов / разрывов в реальном времени на сервере контроля версий (это еще в 2009 году), и мы быстро обнаружили, что существует большая разница в стабильности 3D-графики на настольная система в отличие от серверной системы.
Настольные системы предназначены для конечных пользователей, и ожидается, что конечные пользователи захотят делать такие вещи, как игры и модная графика, поэтому графические подсистемы в настольной сборке имеют больше средств защиты для предотвращения возникновения проблем.
Многие настольные системы также не предназначены для автономной работы, поэтому многие графические драйверы будут активно контролировать свое оборудование на предмет сбоев и перегрева, а также перезагружать / восстанавливать драйвер, чтобы пользователь системы мог видеть, что он делает, чтобы принять меры по исправлению положения.
С другой стороны, серверные сборки предназначены для работы в течение длительных периодов времени, часто без каких-либо подключенных дисплеев, поэтому программное обеспечение для восстановления неисправного драйвера дисплея может быть не столь важным, особенно потому, что большинство серверов Windows настроили свой слой вывода графики для доступа из рабочая станция с использованием удаленного рабочего стола.
Наконец, в настольных сборках графическая подсистема удалена из кода ядра, и, хотя это в значительной степени относится и к серверным сборкам, существует больший риск сбоя графического драйвера при сборке сервера, что вызывает больше проблем, требующих перезагрузки компьютера, чем есть на рабочем столе сборка.
Тем не менее, единственная проблема, которую вы можете найти при сборке на рабочем столе, - это накопление crud. Создание временных файлов, индексация окон по поисковому индексу и т. Д., И да, смею сказать, что настольные сборки нужно хотя бы иногда перезагружать.
Тем не менее, мой офисный компьютер (64-битный компьютер с Windows 7) работает почти круглосуточно, и он постоянно загружен, но я обычно получаю ручную перезагрузку примерно раз в месяц.
Если в системе нет никаких других действий и работает только ваше 3D-приложение, и пока вы отключаете несущественные службы, такие как поиск Windows, то все будет в порядке.
Реализуйте политику вручную, чтобы перезагружать устройство раз в месяц для установки обновлений и тому подобного, и все будет в порядке.
Что касается производительности сети, опять же, на моем офисном ПК у меня есть несколько сайтов IIS7, которые я использую для мониторинга своих других машин, многие из которых я получаю удаленный доступ с таких вещей, как мой ноутбук, и все это прекрасно работает для внутренних инструментов, которые имеют максимум 100 пользователей.
источник
CharlesH отметил, что не все видеокарты поддерживаются Windows Server. Мне не удалось найти драйверы для Windows Server для карт, которые мы собираемся использовать. По словам коллег, карты Quardo и тому подобное (которые имеют драйверы Windows Server) не подходят для наших предполагаемых целей. Так что, похоже, Windows Desktop - наш единственный вариант.
источник