Терминальный сервер 1С RemoteApp

1СДля использования 1С на терминальном сервере не обязательно входить на этот сервер через rdp-клиент, вполне можно воспользоваться опубликованным приложением 1С RemoteApp. Запуская ярлык опубликованного приложения (файл, полученный от администратора или через веб-интерфейс сервера), вы фактически открываете rdp-туннель, через который идет обмен данными и программа запускается реально на терминальном сервере, а вы, в свою очередь, видите её полноценный интерфейс на своем рабочем месте.


Другие статьи об 1С вы найдете в соответствующей рубрике — .


1С RemoteApp

Если сотрудникам компании нужно какое-либо приложение, а не полноценный терминальный доступ, то эту задачу в любом случае лучше решать через публикацию, пусть даже речь идет о нескольких приложениях. Для примера возьмем два случая, которые одинаково решают одну и ту же задачу — предоставляют доступ сотруднику к программе 1С:

  1. Сотрудник компании заходит на терминальный сервер через rdp-клиент (например mstsc.exe) и запускает на нем только 1С;
  2. Сотрудник компании использует опубликованное приложение, при этом на открывая напрямую терминальную сессию;

В первом случае ресурсы терминального сервера будут потребляться в значительно большем объеме, чем во втором случае, ведь для обслуживания полноценной сессии нужно гораздо больше приложений, чем для поддержки работоспособности сессии RemoteApp. Один лишь explorer.exe будет отнимать для себя приличные объемы оперативной памяти.

Процессорная мощность

В процессе активной работы с опубликованным приложением 1С сеанс отнимает примерно 5% в среднем. При простое нагрузка стремится к 0. На графике ниже оранжевой линией отображается потребление ЦП сессий RemoteApp бухгалтера, который выполняет повседневные задачи в толстом клиенте 1С 8.2:

терминальный сервер 1с remoteapp 01

При запуске приложения пиковое потребление доходит до 25% от мощности процессора:

терминальный сервер 1с remoteapp 03

Вывод по процессорной мощности:

средняя нагрузка ЦП одной сессией составляет 5%, пиковая нагрузка - 25% (одно ядро ЦП).

Далее необходимо заняться расчетом объема оперативной памяти.

Оперативная память

Ниже вы увидите скриншот процессов сессии 1С RemoteApp:

терминальный сервер 1с remoteapp 02

В вашем случае процессы могут отличаться.

Из примера выше можно сделать вывод:

один экземпляр 1С RemoteApp занимает до 100MB RAM

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

Диски

С дисками все немного сложнее, поскольку на данный момент я не собрал информацию по нагрузке на дисковую подсистему со стороны толстого клиента 1С. Тем не менее, можно выполнить примерные расчеты, взяв графики из предыдущей статьи  Терминальный сервер 1С. Суть такова: нагрузка на диски из этой статьи составляет примерно 5% в среднем. При этом некоторую часть из этого значения занимает ОС (возьмем приблизительно 1%, поскольку в простое ОС не создает нагрузки на диск вообще). Теоретически тонкий клиент не должен нагружать диски с того момента, как он загрузился в оперативную память, но толстый клиент, напротив, будет во время работы выполнять операции ввода/вывода на диск, поскольку обработка данных идет на стороне клиента.

Вывод по дискам:

средняя нагрузка на стандартный диск SATA 3.5 7200 rpm составляет 4%

Исходя из этого значения можно определить сколько дисков будет нужно на терминальном сервере под определенное количество пользователей.

Расчет конфигурации сервера для 1С RemoteApp

Допустим нашим будущим сервером будет пользоваться 40 человек в компании. Это все менеджеры, которые работают исключительно в толстом клиенте 1С 8.2. Работают они с начала и до конца рабочего дня, приходят примерно в одно и то же время, плюс-минус час.

На графиках нагрузки ЦП выше взято за основу 4 (из 8) выделенных ядра процессора Intel Xeon E5620 @ 2.40GHz 1 индекс производительности которого равен 4911. Поскольку используется половина от всех ядер, то их производительность 4911 / 2 = 2455,5. Нагрузка 5% от этого индекса составит 122,775. Имея 40 пользователей, мы получаем необходимое среднее значение 122,775 * 40 =  4911.

Теперь нужно оставить в запас мощность как минимум одного реального процессорного ядра, а это составит четверть от общей производительности 4911 / 4 = 1227,75.

Итого получаем 4911 + 1227,75 = 6138,75. Такую производительность обеспечивают серверный процессор Intel Xeon E3-1220 V2 @ 3.10GHz 2, либо любой десктопный core i7, либо core i5-4430 и выше, согласно данным по производительности процессоров сайта www.cpubenchmark.net 3. Однако нагрузка на такой процессор будет стремиться к 80-100% и больше, что меня как минимум не устраивает и я бы хотел заложить ещё 40% для возможного будущего увеличения нагрузки, а также для более комфортной работы.


UPD: 15.07.2016:

Недавно провел реальный тест производительности, итоги читайте в статье Тест производительности терминального сервера 1С.


Итоговый индекс производительности необходимого нам эталонного процессора составит 6138,75 * 1,4 = 8594,25. Этому значению соответствует процессор Intel Xeon E5-2620 v2 @ 2.10GHz 4 или его аналоги.

Потребность в оперативной памяти невелика и составит (также учитывая потребности ОС самого терминального сервера) 100 * 40 + 2048 = 6048MB. Таким образом нам нужна 1 планка на 8GB RAM.

Теперь рассчитаем потребность в дисковой подсистеме. В предыдущей статье я объяснял почему не опираюсь на расчеты в iops’ах. Итак, 4% * 40 = 160 % от эталонного диска SATA 3.5 7200 rpm. Если использовать RAID, то подойдут конфигурации 10, 1Е, 5. Мой выбор — RAID10. В нашем случае подойдут обычные диски SATA, но обязательно enterprise-уровня. Итого 4 диска SATA в RAID 10.

Получаем следующую конфигурацию сервера:

Intel Xeon E5-2620 v2 @ 2.10GHz, 8GB RAM, 4*SATA in RAID10

На этом расчеты закончились, удачи вам в подборе «железа».

comments powered by HyperComments