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

Терминальный сервер 1С1С для многих системных администраторов всегда была и остается головной болью. Терминальный сервер 1С, как один из ключевых узлов, требует к себе повышенного внимания, ведь на нем завязана финансовая деятельность. Вот и у меня недавно появилась задача собрать все яйца в одну корзину — всех бухгалтеров на один терминальный сервер. При этом нет никаких данных о том, какие ресурсы — цп, оперативная память, iops’ы дисков — потребляют клиентские приложения.

На официальных ресурсах ничего, кроме совместимости с операционными системами, мне найти не удалось. Имея уже давно работающие ПК бухгалтеров и сервер мониторинга ZABBIX, я решил действовать немного по-другому и занялся сбором реальных данных. Собственно только это мне и было доступно.


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


Терминальный сервер 1С — анализ данных

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

Чтобы понять на каком железе разворачивать терминальный сервер, я решил собрать данные производительности всех ПК бухгалтерии за какой-либо период.

Задача звучит следующим образом: собрать данные потребления процессорной мощности и оперативной памяти на каждом ПК бухгалтерии.

Условия: каждый сотрудник бухгалтерии использует 1С (открыто враз от 2 до 8 экземпляров программы, в среднем 6. Одна из этих программ — толстый клиент 1С, все остальные — тонкие клиенты). Периодически бухгалтеры пользуются экселем для выгрузки и анализа данных, браузером для работы в банк-клиентах. Никаких ресурсоемких приложений не запускается. Точно такой же софт будет запущен на терминальных сессиях.

Что имеем: у каждого бухгалтера стоит Core i5 4460 или эквивалентный ему процессор, 8ГБ RAM, ОС — Windows 8.1.

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

Итак, представляю вашему вниманию график нагрузки процессоров каждого ПК бухгалтерии:

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

Разрывы на графиках вполне нормальны, поскольку по ночам и в выходные бухгалтеры не работают. Или работают, но не все.

Вывод по процессорной мощности: судя по графику (зеленая линия), средняя нагрузка на ЦП не превышает примерно 5% — у кого-то бывает и больше, но есть примеры с меньшим потреблением. 5% — в среднем это минимум, который необходим каждому.

Уточнения: надо взять во внимание тот факт, что сама ОС также потребляет процессорную мощность. На терминальном сервере такая система будет одна независимо от количества пользователей, но если измерять отдельный пк, то из конечных результатов нужно будет вычесть примерно 1%, который тратится на работу системы. Итого получаем 4%.

Что не учли: нагрузка на ОС терминального сервера вероятнее всего будет увеличиваться пропорционально (или с некоторым коэффициентом) увеличению количества пользователей, поэтому может быть я и зря вычел этот 1%. У кого-то возникнет вопрос почему я взял нагрузку исключительно навскидку, примерно. Потому что мне кажется, что точное среднее значение все равно не будет отражать ситуацию более корректным образом, уж слишком большое влияние на производительность со стороны «третьих» сил замешано в данных измерениях (начнем с того, что многих служб Windows 8.1 вообще не будет на терминальном сервере и наоборот). Промежуточный вывод:

Средняя загрузка ЦП рабочего места бухгалтера - 4% ЦП

Продолжаем анализировать ситуацию. Также из графика можно заметить, что при включении ПК идет повышенное потребление ресурсов и это нормально, поскольку в этот момент стартуют службы, пользователи запускают необходимый для работы софт, подгружают данные. Ниже график загрузки ЦП тех же ПК, но акцент сделан на моменте загрузки системы (выделено красной рамкой):

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

Таким образом можно говорить о том, что загрузка ЦП при включении ПК находится в районе 30%. Это не значит, что теперь каждой терминальной сессии бухгалтера нужно зарезервировать эквивалентную мощность. Это значит, что нужно зарезервировать 30% единоразово на всех. Это подразумевает, что все бухгалтеры не будут враз логиниться на терминальный сервер, но для быстрого запуска необходимого софта нужно иметь в резерве 30% эквивалентной Core i5 4460 мощности. Промежуточный вывод:

Необходимый резерв ЦП сверх средней нагрузки каждого рабочего места - 30% ЦП 

Ситуация с требуемой мощностью процессора постепенно начала проясняться, теперь необходимо определить потребность в оперативной памяти.

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

Тут все обстоит значительно проще — из потребляемой оперативной памяти рабочего места бухгалтера нужно вычесть примерно 512МБ — именно столько съедает Windows 8.1 без нагрузки. Сведем все данные в один список:

  1. Потребление RAM ОС Windows 8.1 — 512МБ;
  2. Минимум RAM, которая необходима для работы терминального сервера без нагрузки — 2ГБ;

Таким образом, формула для определения необходимого объема оперативной памяти:

TS Server RAM = ( RAMбух -512  ) * N + 2048

Где RAMбух — средний объем памяти, которую потребляет одно рабочее место бухгалтера; N — количество рабочих мест бухгалтеров.

Немного подробнее о первом параметре:

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

Выше представлены графики свободного объема RAM на каждом рабочем месте сотрудников бухгалтерии.

Вывод по оперативной памяти: средний объем занятой памяти из расчета 8ГБ на рабочее место (не см. на график scws44, на этом ПК не 8, а 4ГБ) равен 2,5ГБ. Если вычесть из этого объема 512МБ (ОС), то примерно получим:

Расход RAM (без объема, занятого ОС) на рабочем месте бухгалтера = 2ГБ

Уточнения: разумеется это значение приблизительное и в реальной обстановке все равно будет меняться. Учтите также объемы памяти, которые могут потребоваться администраторам, ведь их сессии на терминальном сервере тоже будут отнимать ресурсы, пусть и небольшие.

Что не учли: ОС может периодически требовать объемы сверх ей необходимых. Например служебные процессы TrustedInstaller.exe или svghost.exe или любые другие периодически выкачивают значительные объемы оперативной памяти, для них тоже однозначно надо что-то зарезервировать.

Казалось бы на этом все задачи выполнены, но нет, остались ещё. О них ниже.

Диски

Нагрузка на дисковую подсистему в случае с терминальным сервером будет сводиться в основном к чтению данных и потому требования к дискам не так жестки как, например, в случае с СУБД. Средняя нагрузка обычного десктопного диска (WD Blue) рабочего места бухгалтера отображена на графиках ниже:

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

Обращаю внимание, что на графиках отображается время бездействия (idle time). Бездействие 95% говорит о том, что реальная загрузка диска составляет всего 5%. Промежуточный вывод:

Средняя нагрузка на одиночный диск рабочего места бухгалтера - 5%.

Вывод по дискам: если не учитывать кратковременные пики, то средняя нагрузка на диски составляет 5%.

Уточнения: в этом среднем значении весомую долю занимают потребности операционной системы.

Что не учли: наиболее грамотно оценить потребности в дисках позволяет оценка производительности в операциях ввода/вывода в секунду (iops) от которой я, тем не менее, в рамках этой статьи предпочту отказаться. Операции ввода/вывода и загрузка диска в процентах обычно не соотносятся друг с другом в линейном виде (или соотносятся далеко не всегда). Все зависит от характера нагрузки. В моем случае существующая оценка производительности вполне достаточна.

Терминальный сервер 1С — подбор конфигурации

Для начала нам надо узнать рейтинг производительности эталонного процессора, который мы взяли за основу при проведении измерений. В моем случае этот процессор — Core i5-4460, который установлен практически на каждом рабочем сотрудников бухгалтерии. Рейтинг его производительности, согласно данным сайта www.cpubenchmark.net — 6622 1.

Исходя из расчетов предыдущей главы, определим требуемую мощность процессора:

4% * 7 (количество рабочих мест бухгалтеров в моем случае) + 1% (для ОС) + 30% = 59% (в сравнении с Core i5 4460).

Также надо учесть тот факт, что периодически сотрудники бухгалтерии делают объемные выгрузки данных из 1С, что отнимает достаточно много ресурсов — обычно как минимум одно физическое процессорное ядро. То есть в нашем случае 25% производительности эталонного ЦП. В итоге реально необходимая мощность уже равна 84%.

Небольшое пояснение: практически никто не подбирает процессоры исходя из того, чтобы они были загружены на 84% или около того. Например я считаю, что загрузка ЦП равная или выше 85% является критической. В своей практике я обычно подбираю мощность процессора таким образом, чтобы при выполнении требуемых задач нагрузка на него не превышала 60% в среднем.

Определим необходимый рейтинг производительности процессора исходя из пояснения выше:

6620 * 0,84 / 0,6 = 9268

То есть конкретно под мою задачу с моими условиями необходим минимум Intel Xeon E3-1240 V2 @ 3.40GHz 2. Этот ЦП обеспечит необходимую производительность, а также небольшой запас на будущее.


UPD: 15.07.2016:

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


Объем оперативной памяти составит 16ГБ (на 7 рабочих мест сотрудников бухгалтерии, расчеты приведены выше). Надо отметить, что это минимально необходимый объем. Желательно все же иметь запас, чтобы приложения и ОС не начали свопить и не положили дисковую подсистему. Идеальный вариант составит 2 планки по 16ГБ, всего 32ГБ — планки такого объема поддерживает практически любая серверная материнская плата.

Исходя из нагрузки на диски (см. выше), достаточно будет иметь производительность двух SATA-дисков. Если говорить о массивах, то при грубом приближении подойдут конфигурации RAID 10, 1E, 5. Я традиционно выбираю RAID 10 — для этого варианта нужно минимум 4 диска.

Для уменьшения общей стоимости оборудования можно обойтись SATA-дисками, но только не десктопными, а пуст и самыми дешевыми, но enterprise-уровня. Поскольку надежность этих дисков на порядок ниже по сравнению с классическими SAS, то RAID 10 будет как нельзя кстати.

Итак, конфигурация терминального сервера для работы от 7 до 10 сотрудников бухгалтерии (1с, эксель, браузер, почта) имеет следующий вид:

Intel Xeon E3-1240 V2 @ 3.40GHz, 32GB RAM, 4*SATA in RAID10

На этом все.

comments powered by HyperComments