Почему приложения на удаленных службах настольного компьютера (RDS) работают медленнее и используют меньше ресурсов ЦП по сравнению с интерактивным входом в RDP?

Оптимизация работы приложения Delphi на сервере Windows: Устранение проблем с производительностью через RDS

Введение в проблему

Недавно я унаследовал старый сервер на базе Windows 2019 с 8 ГБ оперативной памяти и довольно слабым процессором, который использовался для размещения опубликованного приложения Delphi через TSPlus. С увеличением нагрузки со стороны пользователей сервер начал "задыхаться", и я решил перейти на более мощную машину под управлением Windows 2022, у которой 64 ГБ оперативной памяти и 16 ядер ЦП. Вместо TSPlus я стал использовать удаленные службы рабочего стола (RDS) с надеждой на улучшение производительности.

Настройка нового сервера

На новую машину я успешно перенес все настройки, и теперь могу подключаться к приложению через RDS. Однако столкнулся с одной серьезной проблемой: использование процессора оказалось значительно ниже, чем ожидалось, что сказывалось на производительности приложения. Когда я запускаю приложение через RDP, оно работает без нареканий. Но при обращении к тому же приложению через RDS, производительность снижается, и задержки становятся явными.

Анализ производительности

При анализе работы приложения я заметил, что использование процессора во время работы через RDS составляет всего 10%, тогда как в RDP этот показатель достигает 20%. Это говорит о том, что приложение видимо "затормаживается" при работе в среде RDS.

Чтобы улучшить ситуацию, я предположил, что проблема может заключаться в том, что приложение Delphi не поддерживает многопоточность. Я установил процесс Lasso, установил для приложения высокий приоритет и настроил его на использование только одного ядра для каждого экземпляра. Однако, такие манипуляции не принесли ожидаемого результата, и производительность осталась на прежнем уровне.

Проверка параметров питания и настроек сервера

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

Устранение проблем с RDS

Проблема с производительностью не проявляется при использовании TSPlus, что дает мне повод задуматься о том, что применение Native RDS может не полностью соответствовать требованиям для запуска приложений, разработанных в Delphi. На данный момент я на распутье: мне нужно найти решения для повышения производительности без потери функциональности и удобства работы пользователей.

Выводы и дальнейшие шаги

Я уже попробовал множество различных решений, но пока не нашел эффективного выхода из ситуации. Переход на RDS казался отличной идеей в теории, но практические результаты меня не устраивают. Возможно, стоит рассмотреть возможность использования других инструментов для оптимизации работы приложений Delphi в среде RDS или вернуться к решению TSPlus.

Если у вас есть рекомендации или вы сталкивались с подобными проблемами, буду рад услышать ваши советы и мнения. Ваш опыт может помочь мне найти решение и вернуть приложение к его полному функционалу.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *