28 марта 2024, 12:35

Цитата дня:

UNIX не предназначен для ограждения своих пользователей от глупостей, поскольку это оградило бы их и от умных вещей. Дуг Гвин


Тормозится выполнения отчётов на терминальном сервере

Автор STALKER_SLX, 01 ноября 2020, 00:42

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Вниз

STALKER_SLX

Доброго времени суток уважаемые форумчане!
Имеем физический сервер «HP ProLiant DL360p Gen8» с ДВУМЯ процессорами Intel Xeon E5-2690 v2 на борту и 256Гб ОЗУ, а также 4-ре SSD-диски в RAID10. На этой ноде установлен гипервизор ESXi 6.7 на отдельную FLASH-карту.

1. ВМ-ка с 12 vCPU, 48Гб ОЗУ и «Windows Server 2019 Standard», где развернута связка 1С-сервер 8.3.10.2561 (х64) + MS SQL 2017 (взаимодействуют через «shared memory»).

2. ВМ-ка с 16 vCPU, 48Гб ОЗУ и терминальным сервером (RDS) на базе «Windows Server 2019 Standard», на котором одновременно работают 20-30 активных пользователей. На этом же сервере установлен для ВСЕХ пользователей тонкий 1С-клиент.

3. При генерации 1С-отчетов на терминальном сервере, их выполнение происходит значительно (в разы) дольше, чем тоже самое на обычных «стареньких» компьютерах (уровня Intel Dual Core) пользователей с установленным идентичным тонким 1С-клиентом. Хотя при этом никаких нагрузок по памяти или процессорам на терминальном сервере вообще не наблюдается! Примечательно, что картина на терминальном сервере не изменяется даже если на нём работает всего ОДИН человек и одновременно запускает генерацию только одного отчёта…то есть, отчёт формируется в несколько раз дольше нежели на обычном ПК.

Прошу Вас помочь разобраться в этой запутанной проблеме!

Уваров А.С.

Чтобы нормально диагностировать проблемы 1С нужно понимать структуру этой системы.

1С построена как трехзвенная система: Клиент <-> Сервер <-> СУБД.

Далее мы говорим об современных конфигурациях на управляемых формах. Код приложения может исполняться На клиенте или На сервере. Эти директивы задаются разработчиками конфигурации. Соответственно на клиенте - играет роль производительность клиентского ПК, на сервере - самого сервера. С СУБД клиент не взаимодействует.

Далее заходим в конфигуратор, включаем Замер производительности и запускаем отладку. Выполняем отчет. Прекращаем отладку и смотрим, какие именно процедуры или функции заняли больше всего времени. Потом смотрим где они исполнялись и думаем дальше. Хорошо будет выполнить замер на терминале и обычном ПК и сравнить.

STALKER_SLX

Спасибо Вам Андрей за помощь!
Я только-только пытаюсь вникнуть в администрирование 1С.
В нашей компании имеется целых 3 программиста 1С и они типа админять непосредственно 1С-сервера, поэтому мне не выдали доступы к конфигуратору платформы, но после проведения описанных мной выше тестов - сказали, что проблема именно на моей стороне, то бишь на терминальном сервере...

Кроме того, я пошел дальше и развернул ЧИСТЫЙ сервер «Windows Server 2019 Standard», накатил все обновы и установил туда только тонкий клиент 1С. Открыл доступ по РДП программистам 1С и они провели еще раз свои замеры. В результате - отчёты сформировались также быстро как и на обычных ПК.

После этого, я добавил на этот чистый сервер еще и роль "удалённых рабочих столов" и снова программеры провели свои замеры. Результат резко ухудшился и время формирования отчётов стало таким же как и на боевом терминальном сервере...

Немного погуглив, нашёл статью где рекомендуют отключить на терминальном сервере квоту для пользователя на ресурсы CPU:
https://blogmax.ru/blog/windows-server-2012r2-i-1s-8-3-medlennaya-rabota

После выполнения указанных в той статье рекомендаций - генерация отчётов на ЧИСТОМ сервере начала выполняться также быстро, как и до разворачивания роли удаленных рабочих столов. Но после применения тех же настроек на боевом сервере - результаты не улучшило!

Какой-то парадокс и стопор...

STALKER_SLX

Далее мы говорим об современных конфигурациях на управляемых формах.
С этим как раз таки беда! По словам наших программистов 1С - у нас таки не используются управляемые формы!

Как это проверить самому - пока не знаю...:(

Что и как я могу исследовать, чтобы решить эту "проблему с тормозами"? Подскажите, пожалуйста!

Уваров А.С.

#4
02 ноября 2020, 00:38 Последнее редактирование: 02 ноября 2020, 00:44 от Уваров А.С.
С этим как раз таки беда! По словам наших программистов 1С - у нас таки не используются управляемые формы!
В таком случае весь код исполняется на клиенте. Могу предположить что в BIOS включены режимы энергосбережения процессора, сам по себе процессор Xeon E5-2690 v2 - 3 ГГц для 1С в общем и целом как-бы подходит, но там прямая зависимость от частоты.

Проверьте сколько набирает на терминале Тест Гилева и посмотрите какая реальная частота процессора во время работы 1С.

Если мы говорим о неуправляемых формах, то там трехзвенка отсутствует и все данные обрабатываются клиентом, а сервер по сути выступает хранилищем. В этом случае я бы не стал разносить сервер 1С и терминал. Загоняйте всех на одну виртуалку, единственное - СУБД и tempdb я бы вынес на отдельный SSD.

Вверх