Меню
Бесплатно
Главная  /  ПО  /  Нужен сервер 1с предприятия. Решения

Нужен сервер 1с предприятия. Решения

На сегодняшний день финансовый продукт 1С из прикладной учетной программы для бухгалтерии вырос в широкоформатный комплекс для учета и сопровождения практически любого вида бизнеса, претендуя на конкуренцию с мировыми «монстрами» SAP R/3 и Microsoft Dynamics AX (Axapta).

Российские компании все чаще организовывают свои бизнес-процессы с помощью современных конфигураций 1С 8.3 «Управление торговлей», «Управление производством», «ERP Управление предприятием» и тому подобных. На 1С переводятся отделы бухгалтерии, маркетинга, производственные, продаж, проводится интеграция с системами IP-телефонии и документооборота. Однако, сразу после намерений «давайте работать в 1С» возникают вопросы - на каких ресурсах будет работать центральная база 1С, какое «железо» покажет оптимальный результат за разумный бюджет? Предприятиям-гигантам госсектора в этой ситуации проще – дана чёткая команда многочисленным штатным ИТ-интеграторам и архитекторам, завертелись механизмы крупнобюджетных тендеров с обязательным условием предоставления концепции «под ключ» и дальнейшего сопровождения системы сертифицированными специалистами. А как же быть компаниям, которые хотят сами приобрести и установить себе один из продуктов 1С: Предприятие, разумно расходуя бюджет?

Самой основной ошибкой, если не брать в расчёт использование пиратского или непроверенного ПО, является экономия на аппаратном обеспечении для 1С. Подобные тенденции особенно часто прослеживаются в стартапах и небольших компаниях. Бытует мнение, что не обязательно покупать дорогое серверное оборудование с процессорами типа Intel Xeon, не нужно предварительно рассчитывать объемы ОЗУ, нагрузку на ЦПУ и дисковую подсистему, что нет необходимости создавать избыточность дисковых массивов (Raid), использовать профессиональные дисковые контроллеры с Cache-RAM и так далее. Ошибки в расчетах ИТ-архитектуры для 1С приводят к печальным последствиям, о которых компания узнает уже по факту остановки бизнес-процессов. Поэтому очень важно уделять внимание каждому аппаратному узлу серверной платформы для 1С.

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

Аппаратные ресурсы сервера 1С

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

Центральный процессор (CPU)

Количество физических ядер центрального процессора. Тема извечных споров на всевозможных форумах по 1С – что важнее частота CPU или многоядерность. Корни этих противоречий уходят в прошлое, к 1С 8.0 или даже 1С 7.7. Действительно, исполняемые процессы 1С более ранних версий были сугубо одноядерными, т.е. сколько бы ядер не предоставлял центральный процессор – служба сервера предприятия 1С 8.0 или «толстый клиент 1С 7.7» всегда занимали только одно «нулевое» ядро в операционной системе. На сегодняшний день картина изменилась – операционная система смело распределяет задания одного процесса 1С: Предприятие (rphost) по нескольким ядрам ЦПУ (см. рисунок 1).




Рисунок 1 - Нагрузка на ЦП при работе процессов сервера 1С.


Но это абсолютно не значит, что если купить процессор с максимальным количеством ядер, то сервер 1С в паре с СУБД (чаще всего под СУБД имеется ввиду MS SQL) покажут фантастическую производительность и перепроведение бухгалтерских периодов в программе 1С станут делом нескольких минут. Нужно понимать отличие между скоростью выполнения одной операции и процессом одновременной обработки большого объема информации. Количество физических ядер как раз позволяет решить вопрос стабильности и производительности одновременной работы с множеством разных заданий сервером 1С:Предприятия и СУБД. Отсюда вывод – чем больше количество пользователей 1С, тем больше будет играть роль нужное количество ядер для комфортной одновременной работы этих самых пользователей. Зависимость количества пользователей от количества ядер для сервера 1С показана в таблице 1.


Количество одновременно работающих пользователей на сервере 1С:Предприятие Тип и модель процессора Количество используемых ядер
До 10 пользователей Пользовательский Intel Core от 3.1Ghz Не более 2-4
До 20 пользователей Серверный Intel Xeon от 2.4 Ghz От 4 до 6
До 30 пользователей Серверный Intel Xeon от 2.6 Ghz От 6 до 8 ядер
До 50 пользователей Серверный Intel Xeon от 2.4 Ghz – в количестве 2 шт От 4 на каждый процессор

Таблица 1 - Соотношение количества пользователей на сервере 1С и рекомендуемого количества ядер ЦП.


Частота центрального процессора. В противовес к количеству ядер – частота работы центрального процессора влияет именно на скорость обработки одного кусочка задания в один момент времени, что является самым популярным критерием конечных пользователей 1С. Частота процессора – это именно тот параметр, при увеличении которого у отдельно взятого пользователя увеличится скорость обработки запросов сервером 1С и СУБД и уменьшится время, за которое система предоставит итоговый результат конечному пользователю. В подтверждение этому известный специалист Гилев в одной из своих статей на базе практических тестов сделал однозначный вывод - «на скорость работы 1С гораздо больше влияет частота центрального процессора, нежели остальные его параметры, будь то конечный клиент 1С или же сервер 1С:Предприятие». Такова архитектура программы 1С.

Кеш, виртуализация и гиперпоточность (hyper threading). В прошлом, когда многоядерные процессоры еще не были так распространены – компанией Intel была придумана специальная технология центрального процессора, имитирующая многоядерность, так называемая «гиперпоточность». После её включения один физический процессор (одно физическое ядро) определяется операционной системой как два отдельных процессора (два логических ядра). Рекомендуем для сервера 1С «гиперпоточность» отключать. Никакого ускорения работы 1С эта технология не приносит.

При использовании виртуальных машин для сервера 1С:Предприятие и СУБД нужно учитывать, что ядра виртуальных машин «слабее» реальных физических ядер, хотя называются одинаково – «ядра». Точных официальных коэффициентов нет, но статьи на технических порталах Microsoft рекомендуют на одно физическое ядро считать 4-6 ядер процессора в виртуальной машине.

Кеш – это сверхоперативная память, используемая процессором для уменьшения среднего времени доступа к компьютерной памяти. По сути, она является неотъемлемой частью процессора, поскольку расположена на одном с ним кристалле и входит в состав функциональных блоков. Здесь всё предельно ясно – чем больше объем кэша, тем более крупные «кусочки» информации сможет обрабатывать процессор. Обычно величина кэша зависит от моделей процессора – чем модель дороже, тем обычно больше там объем кеш-памяти. Однако мы не считаем, что величина кеша процессора кардинально влияет на производительность сервера 1С и СУБД. Скорее это относится к области «тонкого тюнинга».

Тип процессора. Всем известно, что аппаратное обеспечение делится на серверное и пользовательское. А можно ли в отдельных случаях использовать недорогой пользовательский центральный процессор как альтернативу профессиональному, но дорогостоящему серверному ЦПУ? Оказывается – можно. Рассмотрим таблицу сравнения основных параметров двух вариантов центральных процессоров Intel (см. таблицу 2).

Пользовательский Intel® Core™ i7-6700T Processor (8M Cache, up to 3.60 GHz) Серверный Intel® Xeon® Processor E5-2680 v2 (25M Cache, 2.80 GHz)
Кэш-память 8 MB 25 MB
Частота системной шины 8 GT/s DMI3 8 GT/s QPI
Набор команд 64-bit SSE4.1/4.2, AVX 2.0 64-bit AVX 2.0
Количество ядер 4 10
Базовая тактовая частота процессора 2.8 GHz 2.8 GHz
Макс. объем и тип оперативной памяти 64 GB non-ECC 768 GB ECC
Ориентировочная стоимость 354$ 1 280$

Таблица 2 - Сравнение основных параметров домашнего и серверного ЦП от Intel.


Как мы видим, серверный процессор имеет гораздо более высокие значения в количестве ядер, в объеме кэша, поддержке большего объема оперативной памяти и, конечно же, в более высокой цене. Однако, серверный ЦПУ практически не отличается от пользовательского в поддержке определенных процессорных команд (инструкций) и в тактовой частоте. Отсюда можно сделать вывод – для небольших организаций вполне допустимо применение пользовательского центрального процессора для сервера 1С:Предприятие. Вопрос только в том, что пользовательский процессор не может быть установлен в сокет серверной материнской платы и поддерживать серверную ОЗУ с контролем четности (ECC), а использование пользовательских комплектующих влечет за собой риски стабильности работы всей системы в целом.

Оперативная память (ОЗУ)

Тип оперативной памяти. Планка оперативной памяти (ОЗУ) различается по ее предназначению – для многопользовательских серверных систем или для персональных устройств – ПК, ноутбуков, неттопов, тонких клиентов и т.д. Как и в случае с ЦПУ – основные параметры модулей ОЗУ примерно равнозначны – современная ОЗУ для ПК практически не отстает от серверной ни в объеме одной планки, ни в тактовой частоте, ни в типе модулей DDR. Отличия серверной ОЗУ от «домашней» в вариантах использования и предназначения аппаратной платформы - отсюда же формируется ее более высокая стоимость:

  • Серверная ОЗУ имеет контроль четности ECC (Error Correction Code) - технику кодирования/декодирования, позволяющая исправлять ошибки в обработке информации непосредственно модулем ОЗУ
  • Серверная материнская плата имеет гораздо больше разъемов под установку модулей ОЗУ, чем обыкновенный ПК
  • Серверная ОЗУ содержит регистры (буферы), обеспечивающие буферизацию данных (частичную Registered либо полную Full Buffered), за счет чего уменьшается нагрузка на контроллер памяти при множестве одновременных запросов. Буферизованные модули "FB-DIMM", несовместимы с небуферизованными.
  • Модули регистровой памяти также позволяют повысить масштабируемость памяти - наличие регистров дает возможность устанавливать больше модулей в одном канале.

Можем сделать вывод, что использование серверных модулей оперативной памяти дает возможность устанавливать большие объемы ОЗУ в одной системе, а техники контроля четности ECC и использование буферов позволяют серверной операционной системе работать стабильно и быстро.

Объем оперативной памяти. Одним из ключевых факторов для высокой производительности сервера 1С и СУБД является достаточный объем оперативной памяти. Конечно же фактические потребности в ОЗУ зависят от многих факторов – тип конфигурации 1С, количество процессов сервера 1С:Предприятие, объем базы СУБД и так далее. Однако можно вывести примерную зависимость объема ОЗУ от количества пользователей (см. таблицу 3).


Потребность ОЗУ для сервера 1с и СУБД До 10 пользователей До 20 пользователей До 30 пользователей До 50 пользователей
Сервер 1с:Предприятие 4-6 Гб 6-8 Гб 12-14 Гб 18-24 Гб
Сервер MS SQL 4-6 Гб 8-10 Гб 16-18 Гб 24-28 Гб

Таблица 3 - Примерное соотношение количества пользователей сервера 1С и рекомендуемой оперативной памяти на процессы сервера 1С:Предприятие и сервера MS SQL.


Касательно процессов сервера 1C:Предприятия (rphost.exe) - современные платформы 1С не позволяют в ручном режиме указывать количество процессов сервера 1С. Вместо этого, система требует задать параметры, такие как количество информационных баз и количество пользователей на один процесс rphost.exe, после чего сама автоматически определяет оптимальное количество процессов сервера 1С:Предприятие. Так же можно настроить плавное освобождение процессом rphost.exe ОЗУ в случае, если ее объем превышает заданный заранее порог. При этом сервер 1С создает новый процесс rphost.exe, который постепенно берет на себя задания 1С, позволяя разгрузить требуемый процесс 1С.

Также нужно обратить внимание, что объем ОЗУ, выделенный службе SQL считается достаточным, если попадание данных SQL в cache составляет не менее 90%. Эта метрика довольно удобна, т.к. просто посмотреть количество потребляемой ОЗУ сервером SQL нельзя – последние выпуски SQL имеют динамически потребляемую ОЗУ - захватывается максимально возможное количество ОЗУ и высвобождается по мере запроса ОЗУ другими процессами.

Частота оперативной памяти. Если коротко, то это пропускная способность каналов, по которым данные передаются на материнскую плату, а оттуда - в процессор. Желательно, чтоб этот параметр совпадал с допустимой частотой материнской платы или превышал ее, иначе канал передачи ОЗУ рискует стать «узким местом». В рамках одного типа DDR увеличение\уменьшение частоты кардинальным образом не влияет на производительность сервера 1С и относится больше к области «тонкого тюннинга».

Тайминги оперативной памяти. Это задержи или латентность (Latency) ОЗУ. Характеризуется этот параметр временем задержки данных при переходе между разными модулями микросхемы ОЗУ. Меньшие значения означают более высокое быстродействие. Однако, влияние на общее быстродействие серверной системы, а уж тем более, на сервер 1С:Предприятия – невысоко. Обычно, внимание на эти параметры обращают только геймеры и оверклокеры, для которых каждая лишняя капля производительности - дороже всего.

Дисковая подсистема и жесткие диски HDD

Контроллеры жестких дисков. Основным устройством соединения и организации жестких дисков в аппаратной системе является контроллер жестких дисков. Он бывает двух типов:

1. Встроенный – модуль контроллера встроен в систему, корзина с жесткими дисками подключается непосредственно в материнскую плату. Считается более экономным решением.

2. Внешний – представляет собой отдельную печатную плату (устройство), которая подключается в разъем материнской платы. Он считается более профессиональным решением за счет того, что имеет отдельные чипы проведения и контроля операций с жесткими дисками HDD. Рекомендуется для важных серверных систем, таких как сервер 1С:Предприятия и СУБД.

Существует еще третий тип – устройство приема\передачи блочных данных по каналам iSCSI, FiberChanel, InfiniBand, SAS. Однако в этом варианте дисковая подсистема «вынесена» на отдельное устройство хранения данных (СХД), соединяемое с сервером посредством оптического или медного кабеля. В нашей статье мы делаем разбор требований к автономному серверу для 1С, поэтому данный тип мы рассматривать не будем.

Типы и уровни RAID-массивов. Это технология виртуализации данных, которая объединяет несколько дисков в логический элемент для избыточности и повышения производительности. Рассмотрим наиболее популярные уровни спецификации RAID:

  • RAID 0 (“Striping”) избыточности не имеет, а информацию распределяет сразу по всем входящим в массив дискам в виде небольших блоков («страйпов»). За счет этого существенно повышается производительность, но страдает надежность. Мы не рекомендуем использовать этот тип массива, несмотря на повышение производительности.
  • RAID 1 (“Mirroring”, «зеркало»). Имеет защиту от выхода из строя половины имеющихся аппаратных средств (в общем случае – одного из двух жестких дисков), обеспечивает приемлемую скорость записи и выигрыш по скорости чтения за счет распараллеливания запросов. Такой тип массива вполне «потянет» сервер 1С+СУБД до 25-30 пользователей, особенно, если будут использованы диски SAS 15K либо SSD.
  • RAID 10. Зеркальные пары дисков выстраиваются в «цепочку», поэтому объем полученного тома может превосходить емкость одного жесткого диска. По нашему мнению, наиболее удачный тип дискового массива, т.к. в нем соединяются надежность RAID1 и быстродействие RAID 0. В сочетании с дисками SAS 15K либо SSD может быть использован для серверов 1С от 40-50 пользователей.
  • RAID 5. Знаменит благодаря своей экономичности. Жертвуя ради избыточности емкостью всего одного диска из массива, получаем защиту от выхода из строя любого из жестких дисков системы. (его вариация RAID 6 требует лишние два жестких диска для размещения контрольных сумм, но зато сохраняет данные даже при выходе из строя двух дисков). Данный тип массива экономичен, надежен и имеет довольно ощутимое быстродействие «на чтение». К сожалению, узким местом этого массива является низкая скорость записи, что позволяет комфортно использовать его при конфигурациях сервера 1С до 15-20 пользователей. Также он оптимален для прикладных целей – хранения файловых данных, архивов документооборота и т.д.

Типы интерфейсов жестких дисков. По типу подключения жесткие диски разделяются:

  • HDD Sata Home. Наиболее дешевый вариант жестких дисков, предназначенный для использования в домашних ПК либо сетевых медиа-центрах. Убедительно не рекомендуется использовать подобные устройства в серверах 1с в связи с низким коэффициентом отказоустойчивости и стабильности работы – компоненты этих дисков попросту не предназначены для работы в режиме 24/7 и быстро выходят из строя.
  • HDD Sata Server. Под данным наименованием обычно понимаются жесткие диски с интерфейсом Sata и скоростью вращения шпинделя 7 200 оборотов\мин. Приставка «Server» означает, что такие диски проходили тестирование на работоспособность в серверных системах и рассчитаны на стабильную работу в режиме 24/7. Обычно используются в серверах 1С для хранения больших объемов информации, не требующей высокой скорости ее обработки. К примеру – архивные базы 1с, папки обмена, файлы выгрузок офисных документов и т.д.
  • HDD SAS Server. Отличий интерфейса SAS (современного аналога SCSI) от интерфейса Sata несколько. Здесь и среднее время отклика диска, и работа в общей дисковой полке, и работа с контроллером HDD на более высоких скоростях обмена информацией – до 6 Гб\с (по сравнению с Sata 3 Гб\с). Но главное преимущество - существование моделей SAS-дисков со скоростью вращения шпинделя 15 000 оборотов\мин. Именно эта конструктивная особенность позволяет SAS-дискам проводить почти в 3 раза больше операций ввода\вывода в секунду по сравнению с HDD Sata Server. Такие диски SAS имеют небольшой объем и их рекомендуется использовать под основные базы данных 1с с постоянно высокой рабочей нагрузкой.
  • SSD диски. Эти диски отличаются от предыдущих не интерфейсом подключения, а своей конструкцией – они твердотельные и не имеют движущихся частей, т.е. по своей сути являются аналогами «флешек». Такие технологии позволяют SSD-дискам производить «запредельное» количество операций ввода\вывода в секунду (от 10 000 операций на самых простых моделях SSD). Однако подобное преимущество имеет и обратную сторону – более высокая цена SSD-дисков и «порог их жизни», который зависит от предела количества записи в блоки SSD. Впрочем, с каждым годом эти диски становятся все более доступными и долговечными. Поскольку стоимость SSD дисков многократно возрастает в зависимости от объема – разумнее всего будет использовать их под небольшие, но сверх-нагруженные базы данных 1с, требующие высокой скорости доступа, а так же под временные базы СУБД TempDB.

IOPS – количество операций ввода-вывода в секунду. По сути, IOPS - это количество блоков информации, которое успевает считаться или записаться на носитель за 1 секунду времени. То есть, в чистом виде - это и есть ключевой параметр скорости обработки информации жестким диском, влияющий на производительность 1С сервера. Если брать для сравнения стандартный блок информации 4кб, то можно примерно выделить следующие показатели IOPS (см. таблицу 4).


Жесткий диск IOPS Интерфейс
7,200 об/мин SATA-диски ~75-100 IOPS SATA 3 Гбит/с
10,000 об/мин SATA-диски ~125-150 IOPS SATA 3 Гбит/с
10,000 об/мин SAS-диски ~140 IOPS SAS
15,000 об/мин SAS-диски ~175-210 IOPS SAS
SSD-диски От 8 000 IOPS SAS либо SATA

Таблица 4 - Показатели IOPS на различых типах жестких дисков при работе с блоком данных 4кб.


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

Практический тест

Какая же зависимость между количеством пользователей 1С и количеством iops? Наша команда провела практический тест (см. таблицу 5) по измерению нагрузки на дисковую подсистему определенным количеством сессий 1С. Поскольку система 1С является программируемой средой и каждая компания может иметь свой набор бизнес-процессов в 1С – нам требовалась привязка к некой эталонной конфигурации для тестирования. В этом качестве была выбрана специализированная конфигурация ЦУП 1С, разработанная для тестирования и отладки. На ее базе наши программисты 1С добавили ряд запросов, имитирующих нормальную работу обычного предприятия, с формированием бухгалтерских запросов, проводок, составлением отчетов и проведением операционных документов.


Системный диск Диск с базами данных
Итерация Пользователи IOPS write IOPS read IOPS write IOPS read
Средние значения
1 12 9,1 0,1 13,1 1,5
2 20 7,9 0,1 21,8 0,4
3 32 5,2 0,006 36,1 5,2
4 40 7,7 0,013 27,52 1,3
5 52 7,7 0,006 32,04 0,94

Таблица 5 - Результаты практического теста по нагрузке на дисковую подсистему.


Результаты теста показывают, что львиная доля нагрузки на дисковую подсистему возникает при записи 1С в базу данных сервера СУБД и на системный диск операционной системы (на котором по умолчанию располагаются файлы кеш-сервера 1С:Предприятие).

Параллельно мы провели практические замеры уже работающих баз 1С УПП 8.2 на протяжении тестового периода – 5 рабочих дней. Они показывают, что в среднем сервер 1С + СУБД потребляет в два раза больше iops «на запись», чем «на чтение». Такая разница между синтетическими тестами и статистикой мониторинга реального сервера 1С обусловлена как периодическими выборками информационных данных с базы в течение рабочего дня, так и регулярным чтением базы при резервном копировании или репликации СУБД.

Прочие составляющие жесткого диска, на которые стоит обратить внимание.

  • Физический размер (форм-фактор). На сегодняшний день почти все известные накопители для персональных компьютеров и серверов имеют размер 3,5 либо 2,5 дюйма. Отметим, что диски 2,5 дюйма не производятся больших объемов.
  • Время произвольного доступа (random access time) - время, за которое жесткий диск гарантированно выполнит операцию чтения-записи на определенном участке магнитного диска. Как правило, более высокими результатами обладают серверные диски. Это является достаточно важным параметром при построении массива дисков для сервера СУБД 1С.
  • Скорость вращения шпинделя - количество оборотов шпинделя жесткого диска в минуту. Здесь все просто и понятно - от скорости вращения шпинделя с магнитными пластинами зависят время доступа и средняя скорость передачи данных жесткого диска.
  • Объём буфера жесткого диска - буфером называется временная память, предназначенная для сглаживания различий в скорости чтения/записи жесткого диска и передачи данных по интерфейсу.
  • Надёжность - определяется как среднее время наработки на отказ (MTBF). Как правило, надежность напрямую зависит от производителя, цены и среды использования жесткого диска. Мы считаем надежность важным параметром жесткого диска, влияющим на качество работы сервера 1С.

Правильный выбор: домашнее или серверное «железо»

Удешевление аппаратных комплектующих и активный рост потенциальных мощностей «домашних компьютеров» приводят еще к одному губительному заблуждению – малый бизнес активно использует рабочие станции в качестве платформы для совместной работы с базами 1С. При этом, не осознавая, что помимо параметров частоты ядра, объема памяти и возможности использования бюджетных SSD-дисков в обычном ПК – существуют более системные, более глубокие и важные требования к работе аппаратного обеспечения в коммерческой структуре (см. таблицу 6).

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


Параметры Сервер Персональный компьютер
Достаточность вычислительных мощностей V V
Гарантированная работоспособность системы в режиме 24/7 V X
Надежность и стабильность ключевых аппаратных комплектующих V X
Возможность удаленного управления питанием и консолью (IPMI) V X
Бюджетная стоимость аппаратной платформы X V

Таблица 6 - Сравнение домашнего и серверного железа по критериям, требуемым для качественной работы сервера 1С.

Отказоустойчивая работа 1С

Безусловно, одним из важных требований к серверной части 1С является стабильность ее работы и устойчивость к отказам. Компания Microsoft и сама фирма 1С приложили много усилий в этом направлении, создав технологии кластеризации своих сервисов на довольно серьезном уровне (см. таблицу 7).


Отказоустойчивость SQL серверов Базирована на концепции единого общего хранилища данных. Встроенная технология кластеризации SQL Server объединяет два SQL сервера в один кластер с единым виртуальным IP-адресом и единой базой. Таким образом при выходе из строя основного SQL - запросы автоматически переводятся на резервный.
Вторым вариантом является недавно появившаяся AlwaysOn - технология автоматической регулярной репликации баз СУБД между основным и резервным серверами SQL. При этом дублирующий сервер SQL находится физически на другом хранилище, что повышает устойчивость к рискам
Отказоустойчивость службы сервера 1С:Предприятие Серверы 1С Предприятия объединяются в программный отказоустойчивый кластер active-active с автоматическим переключением при сбое и сохранением текущих сессий.

Таблица 7 - Отказоустойчивость SQL и 1С-серверов.


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

  • Кластеризация SQL использует виртуальный IP. А это значит, что взаимодействие сервера 1С:Предприятие и MS SQL всегда будет происходить по сетевому интерфейсу, даже если оба сервиса находятся в одной операционной системе. Что соответственно приведет к замедлению работы 1С в сравнении с классическим вариантом архитектуры, рекомендуемым самой компанией 1С – использованием разделяемой памяти Shared Memory. В принципе, эту помеху можно «обойти», используя, к примеру, технологию MS SQL Log Shipping. Однако, в таком случае переключение на резервный сервер SQL уже не будет автоматическим и этот вариант нельзя считать полноценным кластером.
  • Кластер SQL требует крупных бюджетных затрат. Если речь идет о классической кластеризации сервиса MS SQL – требуется единое хранилище баз, подключенное к основному и резервному серверам SQL. Обычно в этой роли выступают дорогостоящие системы хранения данных СХД, что увеличивает бюджет на порядок. Если речь идет о новомодной AlwaysOn, то единое хранилище баз не требуется, технология работает с локальными дисками основного и резервного серверов по сети. Зато требуется версия SQL Server Enterprise, лицензия на которую стоит в 4 раза больше, чем на обычный SQL Server StandarD.
  • Количество лицензий. Несмотря на то, что второй сервер SQL не обрабатывает данные и находится в резерве – лицензии нужно будет приобрести на оба сервера – как основной, так и резервный. Особенно болезненным для бюджета являются лицензии SQL Server Enterprise для реализации распределенного кластера групп высокой доступности AlwaysOn.
  • Не нужно использовать дешевое пользовательское аппаратное обеспечение для столь важного сервиса как учетная система всего предприятия. Цена в данном случае напрямую предопределяет качество, стабильность и долговечность такой платформы.
  • Рекомендуем при выборе серверной платформы обращать внимание на наличие двух блоков питания, удаленную карту IPMI и бренд производителя. Конечно же, каждый подбирает решение, исходя из своего бюджета, топовые бренды иногда слишком дороги и не совсем уместны, однако не стоит уж совсем экономить на производителе, это может привести к неконтролируемым форс-мажорам в работе с 1С. Лично мы используем серверные платформы Supermicro в сочетании с серверными ЦПУ Intel.
  • Есть мнение, подтвержденное практикой, что производительность 1С больше зависит от более высокой частоты работы ЦПУ, чем от количества предоставленных ядер.
  • Не нужно экономить на объеме оперативной памяти, выделяемой для сервера 1С и службы SQL. ОЗУ на данный момент является достаточно дешевым ресурсом, а ее нехватка (даже на 10-15 процентов) приведет к сильному падению производительности системы 1С, т.к. включится более медленная система подкачки (swap). Плюс ко всему swap даст дополнительную нагрузку на дисковую подсистему что еще сильнее ухудшит ситуацию.
  • Компания EFSOL предлагает комплексные услуги по подбору сервера 1С , в которые входит: проектирование сервера 1С, закупка, настройка и обслуживание.
  • Альтернативным собственному созданию сервера 1С вариантом является аренда сервера для 1С . Облачные технологии позволяют при небольших ежемесячных затратах пролучить надежный отказоустойчивый сервис для комфортной работы в 1С.

Системная интеграция. Консалтинг

Выбирая, какой сервер нужен для 1С, следует помнить, что во время работы пользователей с ним будет выполняться множество операций чтения и записи данных в секунду.

Скорее всего, сразу понятно, почему так важно грамотное проектирование сервера для 1С – если “железо” изначально подобрано неправильно и не соответствует нагрузке на систему, то есть риск, что или вообще работать с перебоями, что потеряются важные данные. С другой стороны, создать сервер под 1С, купить для него все аппаратное и программное обеспечение может стоить ощутимую для компании сумму, поэтому желательно подбирать оборудование так, чтобы избежать лишних затрат.

Выбор сервера для 1С

Когда нашим специалистам нужно сделать выбор конфигурации для сервера 1С, первое, о чем они спрашивают – сколько пользователей будет работать с 1С в компании и какой набор сервисов планируется использовать, какими будут , кто и как будет выполнять администрирование серверов 1С. От этих сведений мы и отталкиваемся при создании сервера 1С.

Требования к серверу 1С

В аппаратной структуре 1С сервера для нас будут важны характеристики процессора, оперативной памяти, дисковой подсистемы и сетевые интерфейсы.

Необходимо, чтобы они обеспечивали стабильную и достаточно производительную работу следующих компонентов:

  • операционная система;
  • сервер баз данных (чаще всего это );
  • серверная часть 1С (не для всех случаев, так как маленькая компания на 2-10 пользователей может работать с 1С в файловом режиме);
  • работа пользователей в режиме Remote Desktop;
  • работа удаленных пользователей через тонкий клиент или веб-клиент.

Выбор процессора для сервера 1С

Оптимальное количество ядер процессора обычно рассчитывают, исходя из того, что на работу ОС нужно зарезервировать 1-2 ядра, 1-2 ядра на работу базы SQL, еще 1 на работу сервера приложений и ориентировочно по 1 ядру на на каждые 8-10 одновременных пользовательских сессий (чтобы пользователи потом не жаловались, что сервер 1С тормозит).

Обратите внимание, что скорость обработки запросов зависит не столько от числа ядер, сколько от тактовой частоты процессора, а число ядер больше влияет на стабильность работы при большом количестве пользователей и одновременных заданий от них.

Сколько памяти нужно серверу 1С

В дополнение к сказанному, если вам нужен сервер под 1С на 100 и более пользователей, мы рекомендуем разворачивать кластер из как минимум двух физических серверов 1С.

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

  • 2 Гб потребуется под работу операционной системы
  • минимум 2 Гб под работу кэша MS SQL Server, а лучше чтобы эта величина составляла 20-30% реального объема базы данных – это обеспечит комфортную работу пользователей с ней
  • 1 – 4 Гб для сервера приложений 1С
  • 100 – 250 Мб потребует одна пользовательская терминальная сессия, в зависимости от набора функций сервера 1С, используемой конфигурации

Приведем свои ориентировочные расчеты параметров сервера 1С 8.3:

Оперативную память лучше приобретать с запасом – это один из важнейших факторов высокой производительности 1С-сервера и в то же время это сейчас один из самых дешевых компонентов. Если недостаточно памяти на сервере 1С Предприятия, это будет очень ощутимо при работе, поэтому, когда стоит вопрос, какой сервер 1С выбрать, всегда обращайте внимание на то, чтобы у него был достаточный объем RAM.

Сервер 1С: оборудование для дисковой подсистемы

Выбирая, какой сервер нужен для 1С, следует помнить, что во время работы пользователей с ним будет выполняться множество операций чтения и записи данных в секунду. Этот параметр – с какой скоростью жесткий диск позволяет обрабатывать данные – также является одним из ключевых для быстродействия сервера 1С.

При проектировании сервера 1С, требования к оборудованию дисковой подсистемы мы советуем соблюдать такие:

  • Неважно, какой сервер для 1С вы создаете, мы ни в каком случае не советуем использовать одиночные диски в серверах – желательно организовывать их в RAID-массивы (RAID 10 для больших или RAID 1 для небольших баз данных), где будут находиться таблицы БД.
  • Файлы индексов рекомендуем выносить на отдельный SSD для более быстрого доступа к ним
  • TempDB - на 1-2 (RAID 1) SSD.
  • ОС и данные пользователей помещайте на RAID 1 из SSD/HDD.
  • Под log-файлы отведите отдельный логический диск из массива или физический диск SSD.
  • По возможности используйте аппаратный контроллер – нам приходилось видеть ситуации, когда мощный и дорогой сервер тормозил из-за недостаточной производительности контроллера.

Подбор сервера для 1С

В этой статье мы привели некоторые советы и приблизительные расчеты, как выбрать сервер для 1С, надеемся, они окажутся полезными для вас.

В заключение добавим еще одно – не стоит пытаться сэкономить, используя пользовательский компьютер для сервера 1С (как часто делают в маленьких компаниях) – пользовательское “железо” куда менее надежно и отказоустойчиво, чем аналогичное по производительности серверное. Не стоит рисковать учетной системой своего предприятия. Если приобретение подходящего аппаратного обеспечения не укладывается в ваш бюджет, возможно, следует рассмотреть возможность развернуть 1С в облаке

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

В большинстве случаев для установки 1C:Предприятия 8.х в варианте “клиент-сервер” достаточно запуска программы установки 1С:Предприятия 8.х. При этом сервер 1С:Предприятия получает стандартные значения параметров, необходимые для его нормального функционирования.

Рассмотрим установку сервера 1С:Предприятия более детально. В процессе установки сервера 1С:Предприятия 8.х программа установки 1С:Предприятия 8.х выполняет следующие действия:

* Копирует загрузочные модули сервера 1С:Предприятия в каталог, указанный программе установки 1С:Предприятия в качестве конечной папки.
* Если в процессе установки выбрано "Создать пользователя USR1CV81", то создает пользователя USR1CV81. От имени этого пользователя работает сервер 1С:Предприятия 8.1, если он запускается как сервис. Ему доступны только те ресурсы, которые необходимы серверу 1С:Предприятия. Важно, что серверу 1С:Предприятия для работы необходимы два каталога: общий каталог с данными сервера (обычно "C:\Program Files\1cv81\server") и каталог временных файлов (обычно "C:\Documents and Settings\usr1cv81\Local Settings\Temp" или "C:\WINNT\Temp"). Пользователь USR1CV81 получает права на общий каталог с данными сервера. Каталог временных файлов обычно доступен всем пользователям.
* Если в процессе установки включено "Установить сервер 1С:Предприятия 8.1 как сервис Windows", то регистрирует в Windows сервис агента сервера 1С:Предприятия и запускает его. При первом запуске создается кластер серверов 1С:Предприятия с настройками по умолчанию. В нем один рабочий сервер и один рабочий процесс. Адрес рабочего сервера совпадает с именем компьютера, на котором выполнена установка.

Пользователь USR1CV81 или USR1CV82 и его права

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

Рассмотрим подробнее права, устанавливаемые пользователю USR1CV81. Сервер 1С:Предприятия использует следующие каталоги:

* Каталог загрузочных модулей находится в каталоге, заданном программе установки 1С:Предприятия в качестве конечной папки. В нем расположены загрузочные модули сервера 1С:Предприятия. Пользователь USR1CV81 необходимы права на чтение данных и запуск программ из этого каталога и его подкаталогов. Он получает эти права неявно, благодаря включению в группу Users.
* Каталог данных сервера обычно имеет имя "C:\Program Files\1cv81\server". Пользователю USR1CV81 необходимы полные права на этот каталог. Программа установки 1С:Предприятия при создании пользователя USR1CV81 наделяет его правами на этот каталог.
* Каталог временных файлов обычно имеет имя "C:\Documents and Settings\usr1cv81\Local Settings\Temp" или "C:\WINNT\Temp", которое определяется значением переменной TEMP окружения пользователя или переменной TEMP системного окружения. Посмотреть значение этой переменной можно в диалоге System Properties (Start -> Settings -> Control Panel -> System -> Advanced -> Environment Variables). Программа установки 1С:Предприятия задает пользователю USR1CV81 полные права на этот каталог. Обычно при установки Windows каталог временных файлов доступен всем пользователям посредством включения в его список доступа группы CREATOR OWNER. Однако, это доступ не полный. В частности, всем пользователям не доступна операция поиска файлов в этом каталоге. Установка пользователю USR1CV81 полных прав на каталог временных файлов позволяет серверу 1С:Предприятия выполнять все необходимые ему операции. Посмотреть список доступа можно в диалоге свойств каталога на закладке Security. Наличие группы CREATOR OWNER позволяет обращаться к каталогу любому пользователю, создающему какие-нибудь файлы в этом каталоге или владеющему какими-нибудь файлами в этом каталоге. При этом в списке доступа созданного файла вместо группы CREATOR OWNER будет записан пользователь, создавший файл. Среди пользователей, которым разрешен доступ в этот каталог, должен быть и пользователь USR1CV81, наделенный полными правами на этот каталог.
Важно иметь в виду, что каталог временных файлов определенного пользователя (в том числе и пользователя USR1CV81) определяется комбинацией переменных окружения этого пользователя и системных переменных окружения. Чтобы узнать этот каталог, программа установки 1С:Предприятия запрашивает контекст пользователя USR1CV81. В для этого в Windows 2000 пользователю, от имени которого запускается программа установки 1С:Предприятия, могут потребоваться привилегии: Act as part of the operating system и Bypass traverse checking. Проверить привилегии пользователя можно утилитой Local Sequrity Settings в ветке Local Policies -> User Rights Assignment. В процессе установки нового программного обеспечения программа установки обычно получает эти привилегии автоматически.

Регистрация сервера 1С:Предприятия как сервиса Windows


Сервер 1С:Предприятия является простым консольным Windows приложением и может быть запущен интерактивно. Однако для постоянного использования это неудобно, поскольку ставит запуск сервера 1С:Предприятия от входа итнерактивного пользователя в серверный компьютер. Чтобы исключить эту зависимость, сервер 1С:Предприятия может запускаться как сервис Windows. Для этого он должен быть зарегистрирован в менеджере сервисов Windows.

Для просмотра списка сервисов Windows и их параметров предназначена утилита Component Services (Start -> Settings -> Control Panel -> Administrative Tools -> Services). Сервер 1С:Предприятия представлен в списке сервисов сервисом "Агент сервера 1С:Предприятия 8.1". Параметры сервиса определяют запуск процесса "Агент сервера 1С:Предприятия" (ragent), пользователя, от имени которого он запускается, а также способ перезапуска в аварийных ситуациях.

В диалоге свойств сервиса "Агент сервера 1С:Предприятия 8.1" на закладке General показана строка запуска процесса ragent, который является Агентом сервера 1С:Предприятия. Обычно эта строка имеет вид:


В ней указано, что:

* процессом Агента сервера является загрузочный модуль "C:\Program Files\1cv81\bin\ragent.exe";
* процесс ragent запускается как сервис Windows и должен управляться менеджером сервисов (-srvc);
* используется как Агент сервера 1С:Предприятия (-agent);
* при первом запуске сервиса должен быть создан кластер с параметрами по умолчанию и главным IP-портом номер 1541 (-regport 1541). По этому порту клиентские приложения должны соединяться с информационными базами, зарегистрированными в кластере;
* IP-порт агента сервера должен иметь номер 1540 (-port 1540). По этому порту Консоль кластера должна соединяться с центральным сервером для выполнения административных функций;
* при запуске процессов кластера на данном сервере им будут динамически назначаться IP-порты из диапазона 1560-1591 (-range 1560:1591).
* общие данные кластера будут размещены в каталоге "C:\Program Files\1cv81\server" (-d "C:\Program Files\1cv81\server").

Сервис "Агент сервера 1С:Предприятия 8.1" может быть добавлен или удален не только при установке или удалении 1С:Предприятия программой установки 1С:Предприятия 8.1, но и вручную. Для этого можно исполнить из командной строки утилиту ragent, указав ей соответствующие параметры.

Для создания сервиса нужно указать параметр -instsrvc и параметры: -usr - имя пользователя, от имени которого должен быть запущен сервис, -pwd - пароль этого пользователя. При этом остальные параметры станут параметрами строки запуска Агента сервера 1С:Предприятия как сервиса. Например, для стандартной регистрации сервиса Агента сервера 1С:Предприятия в отладочном режиме набор параметров должен быть таким:

"C:\Program Files\1cv81\bin\ragent.exe" -instsrvc -usr .\USR1CV81 -pwd Password -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv81\server" -debug

Для удаления сервиса нужно указать параметр -rmsrvc. Например:
"C:\Program Files\1cv81\bin\ragent.exe" -rmsrvc

Иногда бывает полено изменить строку запуска Агента сервера или другие параметры сервиса Агента, например, включить режим отладки, или создать несколько сервисов разных версий. Диалог свойств сервиса не позволяет редактировать строку запуска сервисного приложения и некоторые другие параметры, например, идентификатор сервиса. Для редактирования потребуется утилита regedit, предназначенная для просмотра и редактирования системного реестра Windows.

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

Запустите утилиту regedit (откройте Start -> Run и наберите regedit) и выберите ветку:


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

При необходимости регистрации нескольких независимых сервисов Агента сервера 1С:Предприятия нужно указать им разные загрузочные модули, разные порты и разные каталоги данных кластера. Еще требуется зарегистрировать их с разными идентификаторами сервисов. Это можно сделать так:

* Создать первый сервис:
"C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv81\server"

* При помощи утилиты regedit изменить идентификатор зарегистрированного сервиса. Для этого: выбрать ветку
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent First
* Создать второй сервис:
"C:\Program Files\1cv81_10\bin\ragent.exe" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d "C:\Program Files\1cv81_10\server"

* Быть может, его идентификатор тоже изменить. Для этого: выбрать ветку
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent
и изменить ее имя, например на:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent Second

Что не может сделать программа установки 1С:Предприятия?

Как уже говорилось, программа установки 1С:Предприятия копирует загрузочные модули 1С:Предприятия и выполняет необходимую регистрацию в COM и в менеджере сервисов Windows. Выше приведена информация, необходимая для понимания внутренних механизмов этой регистрации. Если на серверном компьютере установлен не только сервер, но и клиентская часть 1С:Предприятия, то она готова к работе сразу после установки (и подключения ключей защиты).

Чтобы сервер 1С:Предприятия был доступен с других компьютеров в локальной сети, необходимо проверить сетевые настройки на серверном и клиентском компьютере, а также для сети в целом. Для передачи данных между клиентскими приложениями и сервером 1С:Предприятия, а также между процессами кластера серверов используется TCP/IP. От правильности его настройки зависит работа 1С:Предприятия в варианте клиент-сервер.

Процессы кластера серверов 1С:Предприятия соединяются друг с другом по адресам, определенным в качестве значений свойства "Компьютер" диалога свойств рабочих серверов. Для кластера необходимо, чтобы значением свойства "Компьютер" был либо IP-адрес в точечной нотации, либо такой символический адрес, по которому может быть определен IP адрес при помощи функции gethostbyname, определенной в программном интерфейсе протокола TCP. Определение IP-адреса выполняется либо на основании локальной таблицы символических адресов (C:\WINNT\system32\drivers\etc\hosts), либо по таблицам адресов в доступных DNS серверах. Если по символическому адресу рабочего сервера его IP-адрес не определяется или определяется неправильно (например, IP-адрес не совпадает с фактическим IP-адресом данного компьютера), то кластер работать не будет. Важно, чтобы имена компьютеров и их адреса, определенные в Windows на каждом из рабочих серверов кластера, не противоречили их именам в DNS.

На каждом рабочем сервере процессы кластера используют следующие порты: IP порт рабочего сервера (обычно 1540); IP порты из диапазонов IP портов рабочего процесса (обычно 1560-1591). Кроме того, на центральном сервере кластера используется порт кластера (обычно 1541). Если в системе используются сетевые экраны, то передача данных по этим портам должна быть разрешена. Вместо разрешения портов из приведенного списка можно разрешить передачу данных процессам кластера (ragent, rmngr, rphost).

Соединение клиентского приложения 1С:Предприятия с сервером выполняется в 2 этапа. Сначала оно устанавливает соединение с менеджером кластера. При этом используется адрес центрального сервера (символический или числовой) и порт кластера (обычно 1541). Далее клиентское приложение устанавливает соединение с одним из рабочих процессов. В качестве его адреса используется значение свойства "Компьютер" соответствующего рабочего сервера и порт рабочего процесса, который выбирается из диапазона IP портов рабочего сервера. Передача данных на эти порты должна быть разрешена во всех сетевых экранах на маршруте от компьютера клиентского приложения до компьютеров кластера серверов 1С:Предприятия. Определение IP адреса серверных процессов выполняется при помощи функции gethostbyname на компьютере клиента. Важно, чтобы имена центрального и рабочих серверов и их адреса, определенные в Windows на каждом из серверов кластера, не противоречили их именам в DNS, доступном компьютеру клиента.

И последнее. Очевидно, что для успешного доступа к серверу 1С:Предприятия с других компьютеров он должен быть в сети и должны быть выполнены необходимые для этого настройки. Подключение к сети и методика настройки относятся к администрированию сетей на базе Microsoft Windows и описаны в соответствующих инструкциях.

Особенности настройки SQL-сервера

1С:Предприятие в варианте «клиент-сервер» использует для хранения данных SQL-сервер. При этом к SQL-серверу обращается только Сервер 1С:Предприятия. Клиенты 1С:Предприятия непосредственного доступа к SQL-серверу не имеют. Установка и настройка SQL-сервера подробно описана в документации по Microsoft SQL Server. Для успешной работы Сервера 1С:Предприятия с SQL-сервером необходимо обратить особое внимание на следующие настройки.

* Необходимые компоненты SQL-сервера. Для доступа к SQL-серверу со стороны Сервера 1С:Предприятия на компьютере Сервера 1С:Предприятия должны быть установлены компоненты Microsoft Data Access 2.6 или более поздний.
* Аутентификация пользователя SQL-сервером. Права доступа к базам данных SQL-сервера определяются пользователем, от имени которого происходит обращение к базам данных. С компьютера, на котором установлен SQL-сервер, запустим утилиту SQL Server Enterprise Manager, найдем узел Local (Console Root -> Microsoft SQL Servers -> SQL Server Group -> (Local)) и откроем его свойства. На закладке Sequrity можно видеть, что SQL-сервер поддерживает два способа аутентификации пользователей: SQL Server and Windows и Windows only. Аутентификация Windows позволит Серверу 1С:Предприятия обращаться к SQL-серверу только от имени пользователя USR1CV81, что не позволяет различать права доступа до различных информационных баз, обслуживаемых одним сервером 1С:Предприятия. Рекомендуется выбирать режим SQL Server and Windows. В этом случае обращение к конкретной информационной базе будет выполняться от имени пользователя, который задан в качестве пользователя SQL-сервера при создании данной информационной базы. Важно, что этот пользователь должен иметь не только полные права на базу данных информационной базы, но и права на создание баз данных в SQL-сервере и на чтение таблиц базы данных Master.
* Сетевые протоколы для доступа к SQL-серверу. Если Сервер 1С:Предприятия и SQL-сервер размещены на разных компьютерах, то необходимо выполнить настройки сетевых протоколов доступа к SQL-серверу. Это можно сделать при помощи утилиты SQL Server Client Network Utility. На закладке General можно выбрать список сетевых протоколов, используемых для доступа к SQL-серверу. Наиболее быстрым и универсальным является использование протокола TCP/IP. При использовании других протоколов необходимо иметь в виду, что некоторые из них, например Named Pipes, выполняют дополнительную аутентификацию средствами Windows при обмене данными с SQL-сервером. В этом случае для успешной работы с SQL-сервером на компьютере с SQL-сервером должен быть зарегистрирован пользователь USR1CV81, наделенный соответствующими правами. Протокол доступа к данному SQL-серверу может быть изменен на закладке Alias.

В дополнение к статье

Нет сомнения, что связка MS SQL Server + сервер "1С: Предприятие 8" - в своей нише самая востребованная и часто применяемая связка. Для её качественной поддержки желательно понимание обоих продуктов. В то же время, на практике, специалист поддержки обычно либо специализируется на администрировании MS SQL Server и не ориентируется в особенностях сервера "1С: Предприятие 8", либо, наоборот, специализируется на администрировании сервера "1С: Предприятие 8" и не ориентируется в особенностях MS SQL Server.

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

Для облегчения восприятия информации приводятся случаи из практики, примечания и советы (выделены курсивом).

Трёхзвенная схема

Как, возможно, уже известно читателю, база данных в рассматриваемом случае имеет трёхзвенную архитектуру:

Звено 1: СУБД MS SQL Server. "Хранит" и обслуживает базу данных, в конечном счёте выполняет все виды операций с базой данных. Таким образом, производительность работы базы данных, скорость и параллельность чтения-записи данных – во многом определяются производительностью MS SQL Server.

Звено 2: Сервер "1С: Предприятие 8". Служит посредником во взаимодействии между клиентами (пользователями) и MS SQL Server. Все клиентские запросы направляются на сервер, который "переводит" их на язык запросов MS SQL Server, получает результаты выполнения этих запросов, отправляет результаты клиенту.

Есть лишь малая часть операций, которые выполняются на уровне сервера "1С: Предприятие 8", без обращения к MS SQL - это, в частности, отслеживание так называемых "управляемых блокировок", чтение-запись "параметров сеанса". Обращения к СУБД в таких случаях не требуется, так как эти операции производятся не с данными базы, а со вспомогательной информацией сервера.

Звено 3: Клиентская часть "1С: Предприятие 8". Обращается к серверу "1С: Предприятие 8", получает от него результаты (то есть, например, выборки данных), отвечает за пользовательский интерфейс.

"Хотел как лучше".

После переустановки сервера "1С: Предприятие 8" пользователи жалуются на резкое падение производительности. Специалист по внедрению ПП "1С: Предприятие", производивший переустановку – лишь удивляется – мол, хотел как лучше, система должна была начать работать быстрее... Анализ ситуации показал, что серверу "1С: предприятие 8" была выделено слишком много ресурсов: его процессы (см. пункт 3) rphost заняли 15.5 Гб из 16Гб оперативной памяти сервера, в результате для уступчивого MS SQL Server практически не осталось доступной оперативной памяти.

Как результат – постоянный "своп", ненужная нагрузка на дисковую подсистему, и крайне медленное выполнение операций с базой данных - вследствие того, что MS SQL Server не успевает обрабатывать запросы, поступающие от "разогнанного" сервера "1С: Предприятие 8".

Совместимость продуктов

Актуальные данные о версиях MS SQL Server, рекомендуемых к использованию в связке с "1С: Предприятие 8", следует выяснять по ссылке http://v8.1c.ru/requirements/ .

На момент подготовки статьи разработчики фирмы "1С" рекомендуют следующие варианты:

      1. SQL Server 2008 R2.
      2. SQL Server 2008, требуется установка пакета обновлений 1 (SP1).
    3. SQL Server 2005, требуется установка пакета обновлений 3 (SP3).



Технически возможно, но не рекомендуется применение MS SQL Server 2000, для него требуется установка пакета обновлений 2 (SP2), и желательна установка пакета обновлений 4 (SP4).

Следует учитывать, что в настоящий момент эта версия снята с поддержки, а также не имеет 64-разрядной версии для архитектуры x86-64.

Обратите внимание:

Необходимо обращать внимание на настройки операционной системы: например, для эффективной работы M SQL Server 2008 под ОС Server 2008R2 требуется отключение сбалансированного режима энергоснабжения и перевод в режим максимальной производительности.

Установка клиент-серверной версии "1С: Предприятие 8"

"1C установил"

У одного из заказчиков установку "1С: Предприятия 8" произвёл системный администратор, не имеющий опыта в работе с "1С:Предприятием 8". И хотя, по его словам, он "установил 1С" - на пользовательских компьютерах отсутствовала клиентская часть, а на сервере - серверная. Разбор ситуации прояснил картину – в комплекте "1С: Предприятия 8" имелось 2 диска – установка платформы и установка шаблонов баз данных. Администратор не стал вникать в порядок установки – и установил шаблоны баз данных, а не исполняемые файлы, компоненты платформы.

Конечно же, это нетипичный пример исключительно невнимательного отношения к работе.

При установке "1С: Предприятия 8" следует учитывать, что отдельно устанавливаются:

      Платформа "1С: Предприятие 8" - исполняемое приложение, интегрированная среда разработки и эксплуатации баз данных. При его запуске выбирается один из двух режимов работы – "Предприятие" (пользовательская оболочка баз данных) либо "Конфигуратор" (интегрированная среда разработки). Более полное описание можно прочитать по ссылке
      Шаблоны конфигураций "1С: Предприятие" - это файл внутреннего формата платформы, с помощью которого платформа может создать чистую или демонстрационную базу данных той структуры, которая заложена в шаблоне. Также с помощью шаблона обновления можно обновить структуру существующей базы данных, уже наполненной данными.
      При установке платформы следует уделить внимание выбору компонент:





Компонента "1С: Предприятие" может не устанавливаться на сервере (серверах).

В этом случае сервер будет предоставлять клиентским компьютерам доступ к базам данных "1С: Предприятие", но работа с БД в пользовательском режиме непосредственно с сервера будет невозможна.

Обратите внимание:

64-битная версия платформы не содержит клиентской части. Поэтому при установке на сервер отдельно устанавливаются 64-битные серверные компоненты, и отдельно – 32-битные компоненты клиентского приложения.

Компонента "Сервер 1C: Предприятия" нужна для подключения к MS SQL Server - это сервер приложений, связующее звено между платформой на клиентских рабочих местах и MS SQL Server.

Возможна установка компоненты в режиме простого приложения или системного сервиса, и рекомендуется, конечно - второй вариант.

При установке "как сервис" эта компонента будет запускаться и выполняться от имени выбранного пользователя:




После загрузки компонента порождает несколько процессов, как то: "агент сервера", "менеджер кластера серверов", "рабочие процессы сервера".

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

Рабочими процессами сервера можно будет управлять (добавлять, удалять, ставить ограничение на использование ОЗУ, объявлять основным или резервным), если будет установлена компонента "Администрирование сервера 1С: Предприятия".



Обратите внимание:

Для 32-битной версии сервера рекомендуется установка рабочих процессов в таком количестве, чтобы не оставлять оперативную память незадействованной - каждый из них имеет заметное ограничение на использование оперативной памяти, от 2 до 4Гб в зависимости от конфигурации системы.

Для 64-битной версии сервера теоретически достаточно двух рабочих процессов – одного рабочего и одного резервного. Однако на практике для обеспечения надёжности и стабильности подключений на существенном (несколько сотен) количестве пользователей требуется большее количество, оно зависит многих факторов - от количества пользователей, наполнения базы данных и объёма выполняемых запросов, поэтому авторы считают, что количество процессов в этом случае следует подбирать экспериментально.

"Уроборос"

После неудачной оптимизации настроек сервера "1С: Предприятие 8" пользователи просигнализировали о крайне медленной работе системы, а системный администратор отметил постоянную 100% загрузку процессора на сервере.

Анализ ситуации показал источник проблемы - при настройке было установлено слишком маленькое ограничение на использование оперативной памяти рабочими процессами.

А дело в том, что данное ограничение работает следующим образом:

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

Установленное ограничение было настолько маленьким (300Мб), что рабочий процесс не мог полностью обслужить даже одного интенсивно работающего пользователя - в результате менеджер кластера серверов непрерывно перезапускал рабочие процессы и переподключал пользователей. Как только создавался новый процесс и пользователи к нему подключались – лимит оперативной памяти почти мгновенно достигался и вызывал следующий перезапуск. На это и уходило 100% загрузки процессора.

Компонента "Сервер 1C: Предприятия" не нужна на клиентских рабочих местах, да и не сможет там запуститься, так как требует физического наличия ключа защиты.

В случае, если количество подключаемых пользователей невелико (менее 50) – сервер приложений обычно устанавливают на том же компьютере, где работает MS SQL Server.

Для систем с большим количество пользователей и/или большим объёмом информационных потоков рекомендуется раздельная установка, а также применение кластера серверов.

Компонента "Администрирование сервера 1С: Предприятия" может быть полезной и на клиентах – например, с её помощью можно увидеть список информационных баз, подключённых к заданному серверу "1С: Предприятия".

На самом сервере её настоятельно рекомендуется установить.

Доступ

Обратите внимание:

Для проверки того, что доступ обеспечен, недостаточно использования утилиты администрирования серверов 1C: Предприятия, и тем более недостаточно присутствия сервера в "Сетевом окружении"!

Необходимо на каждом клиенте выполнить вход в базу данных, установленную на сервере – только это даст 100% уверенность, что доступ обеспечен.

1. В зависимости от политик безопасности, для MS SQL Server применяется аутентификация по учетной записи Windows либо аутентификация по учётной записи MS SQL Server.




В последнем случае при создании базы данных "1С: Предприятия" система будет запрашивать логин и пароль учётной записи MS SQL Server (например, sa), в первом случае логин и пароль следует оставлять пустыми:



и тому пользователю системы, от имени которого запущен сервер 1С: Предприятия, необходимо дать права в MS SQL Server, а именно:

      полные права на базу данных, в которой располагается информационная база
      доступ к базе данных master (роль public)
      рекомендуется – права на создание базы данных, в противном случае каждую новую базу данных нужно будет сначала создавать средствами MS SQL Sever, а уже затем подключать к серверу 1С: Предприятия
      рекомендуется - право на удаление своей базы данных



Например, можно назначить рассматриваемому пользователю предопределённую роль processadmin или sysadmin.

Совет.

Если у всех пользователей одновременно пропал доступ к рабочей базе данных – нужно перепроверить права и роли пользователя в MS SQL Server, в том числе установленные для конкретной базы данных, то есть User mapping:




2. Сервер 1С: Предприятия обращается к MS SQL Server через механизм Microsoft Data Access, поэтому его компоненты должны быть установлены, а у пользователя сервера 1С: Предприятия (см. предыдущий пункт) должны быть права на их запуск.

3. Связь между клиентами и сервером поддерживается по протоколу TCP, поэтому необходимо, чтобы этот протокол поддерживался обеими сторонами. Возможны проблемы с сопоставлением имени сервера и его IP адреса, например, если используется одноранговая сеть. В таком случае следует записать соответствие в файле [С:\WINDOWS\] system32\drivers\etc\hosts .

Совет.

В случае, если сеть одноранговая – для обеспечения постоянного подключения к серверу создайте сетевой диск, который обращается к какой-либо из папок этого сервера.

4. В случае использования протокола Named Pipes, и если MS SQL Server и сервер 1С: Предприятия установлены на разных компьютерах – пользователь, от имени которого работает сервер 1С: Предприятия, должен быть зарегистрирован в списке пользователей компьютера, на котором запущен MS SQL Server.

5. В некоторых случаях может потребоваться дополнительная настройка брэндмауэра Windows, то есть добавление исключений.

6. Некоторые антивирусы могут блокировать "нежелательный" сетевой трафик, так что может потребоваться дополнение их списков исключений.

7. Релиз платформы "1С: Предприятия 8" должен быть абсолютно одинаковым на клиенте и на сервере.

"Близнецы"

"У одного из заказчиков применялось два сервера баз данных, на каждом из которых располагалась одна рабочая база. Пользователи работали - каждый одновременно с обеими базами. Службы поддержки выполнила обновление платформы "1С: Предприятия 8" на серверах и клиентах…. И тут посыпались жалобы на невозможность подключения – то к одной, то к другой базе. Анализ ситуации показал – обновление на клиентах и серверах делали несколько человек, и устанавливающие специалисты не перепроверяли, что устанавливают один и тот же релиз. Поэтому на одном сервере был один релиз платформы, на втором – другой, на половине клиентов – первый из этих релизов, на другой половине – другой. Получилось, что каждый пользователь имеет доступ только к одной из баз данных.

Для быстрого решения проблемы пришлось устанавливать каждому пользователю оба релиза платформы и создавать отдельные ярлычки для входа в каждую базу данных.

Первоначальные настройки MS SQL Server и базы данных

“И так работает”

MS SQL Server отличается простотой начальной установки, поэтому не все администраторы озадачиваются его дополнительной настройкой – после выполнения установки по умолчанию база заработала, пользователи в неё вошли – работа выполнена. Такой подход почти всегда влечёт за собой возникновение проблем примерно через месяц или два – причём, конечно же, внезапно и в самый неудобный момент.

Например, в случае, если база предназначена для ведения учёта – перед сдачей налоговой отчётности зачастую возникает необходимость срочно пересчитать те или иные данные, причём пересчитать массово, скажем "все поступления основных средств с начала года". Причём – в течение рабочего дня, без остановки работы остальных пользователей базы данных.

И, конечно, именно в этот момент обнаружится, что база при таком пересчете "зависает", или "вылетает", или не даёт работать остальным пользователям.

Этот своего рода "закон Мэрфи" касается каждого из нижеперечисленных пунктов.

Перед началом использования MS SQL Server в качестве СУБД для "1С: Предприятие" рекомендуется:

1. Установить значение параметра max degree of parallelism равным 1.

То есть:

      после подсоединения к серверу войти в свойства сервера через контекстное меню, пункт Properties
      далее выбрать страницу Advanced и отредактировать параметр max degree of parallelism






В противном случае некоторые запросы, формируемые сервером 1С: Предприятия, могут вызвать ошибку "Intra-query parallelism caused your server command (process ID #XX) to deadlock. Rerun the query without intra-query parallelism by using the query hint option (maxdop 1)". После этой ошибки клиентская часть зачастую аварийно завершается.

Ошибка не будет проявляться стабильно, так как план запроса формируется по-разному в зависимости от накопленных статистик – она проявит себя на объёмных и сложных запросах, то есть в самый неудачный момент.

2. Создать План обслуживания (Maintance Plan), еженочно обрезающий (shrink) базу данных временных таблиц tempdb. Автоматически база временных таблиц сервером 1С: Предприятия очищается не всегда, а иногда, в результате неудачно написанного запроса, может быть сформирована и не очищена временная таблица размером, например, 50 Гб. Вследствие этого может закончиться место на диске, вследствие этого возможно аварийное завершение и клиентской, и серверной части, также присутствует небольшой риск нарушения целостности данных.

То есть нужно:

      зайти в MS SQL Management Studio
      после подсоединения к серверу раскрыть раздел "Maintance plans"
      создать новый (или дополнить имеющийся) План обслуживания,
      добавить в него пункт "Execute T-SQL Statement task" (так как в задании "Shrink database" нельзя выбрать базу tempdb) с кодом




1.USE
2.
3.GO
4.
5.DBCC SHRINKFILE (N"tempdev" , 0, TRUNCATEONLY)
6.
7.GO
8.
9.DBCC SHRINKFILE (N"templog" , 0, TRUNCATEONLY)
10.
11.GO

Следует учесть, что имя файла базы данных временных таблиц может не быть равным "tempdev". Для проверки этого имени можно использовать скрипт

1.USE tempdb
2.
3.GO
4.
5.EXEC sp_helpfile
6.
7.GO




“Горшочек, не вари”

Самый часто встречающийся на практике способ переполнить tempdb и тем самым "уронить" сервер – это забыть указать условие при соединении таблиц.

А именно, допустим, у нас в базе есть две таблицы, размером по 20 тысяч записей каждая. Допустим, между их записями можно установить однозначное соответствие, и мы пишем запрос, создающий временную таблицу, которая содержит 20 тысяч записей с полями обеих исходных таблиц. Но если мы забудем указать условие соединения – каждая запись первой таблицы соединится с каждой записью второй! То есть получится результирующая таблица из 20’000* 20’000=400 млн. записей. И так далее.

3. Ради снижения нагрузки на дисковую подсистему рекомендуется по возможности разносить по разным физическим дискам рабочую базу и tempdb , логи, файл подкачки системы.

Нужный путь для хранения файлов рабочей базы лучше задать при её создании, отредактировав колонку Path (Путь):




Для изменения физического расположения файлов базы временных таблиц используется команда ALTER DATABASE, то есть в MS SQL Management Studio нужно выполнить следующий скрипт (команда "New query")

1.USE master
2.
3.GO
4.
5.ALTER DATABASE tempdb
6.
7.MODIFY FILE (NAME = tempdev, FILENAME = "Новый_Диск:\Новый_Каталог\tempdb.mdf")
8.
9.GO
10.
11.ALTER DATABASE tempdb

12.
13.MODIFY FILE (NAME = templog, FILENAME = "Новый_Диск:\Новый_Каталог\templog.ldf")
14.
15.GO

4. Не следует затруднять "рост" рабочей базы данных и её лога – ограничения на размер быть не должно, свойство "Autogrowth" должно быть установлено в процентах, рекомендуемое значение 10%. В противном случае добавление данных в базу, восстановление из архива и другие операции могут выполняться неоправданно долго.

Для установки этого свойства нужно через контекстное меню зайти в свойства базы, выбрать раздел Files, открыть редактирование свойств файла:



5. Рекомендуется включить в MS SQL Server поддержку сетевого протокола TCP/IP и выключить все остальные, в противном случае совместная работа MS SQL Server и сервера 1С: Предприятия будет менее стабильной.




6. Там же - очистить раздел Alias, т.к. её установка приводит к ошибкам взаимодействия MS SQL Server и сервера 1С: Предприятия.

Перед началом эксплуатации базы данных рекомендуется:

1. При создании базы данных из "1С: Предприятия" установить "смещение дат" 2000, в противном попытка записи даты ранее 01.01.1753 (что возможно в силу человеческого фактора) - будет вызывать сбои в работе базы данных.

Внимание! Смещение дат нельзя будет поменять у существующей базы данных!



2. Установить Режим восстановления (Recovery model) в значение Простой (Simple), либо создать План обслуживания (Maintance Plan), который будет ежедневно создавать резервную копию (backup) базы данных и обрезать журнал транзакций (log-файл). В противном случае при некоторых операциях журнал транзакций (log-файл) будет очень быстро расти: например, при реструктуризации базы данных рост размера log-файла может в несколько раз превысить размер самой базы данных.




3. Создать План обслуживания (Maintance Plan), выполняющий следующие регламентные задания как минимум раз в неделю:

      Обновление статистик базы данных и очистка процедурного кэша (следует отметить, что свойство autoupdate statistics не подразумевает очистку процедурного кэша).
      Очистка процедурного КЭШа – не входит в стандартные операции Планов обслуживания, этот шаг нужно определять как выполнение скрипта (Execute T-SQL Statement) со следующим содержимым:
      DBCC FREEPROCCACHE
      Реиндексация таблиц базы данных.






Конечно же, при этом имеет смысл настроить автоматическую отправку электронных писем об успешном/неуспешном выполнении заданий.




Заключение

Рассмотрены вопросы, которые чаще всего вызывают затруднения у системных администраторов и внедренцев "1С: Предприятие 8", в связи с совместным использованием MS SQL Server и клиент-серверной версии "1С: Предприятие 8".

Автор надеется, что достаточно последовательно и доступно осветил "обе стороны медали".

P.S. Чаще делайте бэкапы!

Сервер для 1С - важный технический элемент при построении IT- инфраструктуры. Мы готовы продать серверное оборудование с отличной конфигурацией по адекватной стоимости, без огромных наценок. Только целесообразные конфигурации для решения ваших задач. Оставьте заявку и вы получите устройство, способное закрыть технические потребности организации.

Мы готовы предоставить серверное оборудование любой сложности с соответствующей требованиям конфигурацией. Есть удобная доставка. В Москве доступен самовывоз. В общем, если желаете приобрести, то достаточно просто позвонить, заполнить форму расчета либо написать на электронную почту. Мы предлагаем разнообразные комплектующие, варианты сборок, сделаем коммерческое предложение. Будем отталкиваться от бюджета и собирать максимально целесообразные серверы 1С.

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

  • Сервер 1С на 5-10 пользователей
  • Сервер 1С на 10-20 пользователей
  • Сервер 1С на 20-30 пользователей
  • Сервер 1С на 30-50 пользователей
  • Сервер 1С на 50-100 пользователей
  • Сервер 1С на 200+ пользователей

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

Любую сборку можно сконфигурировать индивидуально под ваши задачи!

Кстати, предварительные параметры можно выбрать в форме ниже. Это позволит специалистам быстрее сформировать коммерческое предложение.

Получить индивидуальный расчет сервера 1С:

Что такое сервер 1С?

Программный комплекс «1С: Предприятия 8.3» представляет собой набор бизнес-инструментов для ведения бухгалтерии, инвентаризации, создания отчетности в автоматическом режиме. Здесь присутствует много возможностей для заточки под любой сегмент деятельности. ПО довольно гибкое в настройках, но, к сожалению, весьма требовательное.

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

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

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

Типы реализации

Большинство небольших организаций не покупает сервер для 1С. Не видят смысла в такой трате. Ведь достаточно развернуть комплекс на персональном компьютере, следом дать доступ другим ПК. Такой вариант называется «Файловый режим».

Он не способен обеспечить достойную работоспособность, подходит только для применения в локальной сети (конечно, удаленный доступ тоже доступен, но малоэффективен). При превышении числа одновременных обращений к базе выше 5, начинает серьезно тормозить. Периодически зависает. К тому же, ограничение на размер одной таблицы в базе составляет 4 ГБ, крупные компании, стоит сказать, столь объемные таблицы нередко делают. Конечно же, недостатком файлового режима является следующий фактор, чем выше объем базы данных, тем серьезнее требования к ресурсам «железа». К несчастью, если много сотрудников работает в этом ПО либо приходится создавать объемные таблицы, лучше выбрать другой способ реализации структуры ИТ.

И на помощь приходят системы управления DB , которые работают в клиент-серверном типе исполнения. Сервер 1С поддерживает следующие типы СУБД:

    MS SQL Server - СУБД, разработанная компанией Microsoft. Надежна, функциональна, но требуется ОС семейства Windows. Есть определенные недочеты: любит оперативную память, занимает ее полностью, потому, приходится выставлять ограничения вручную, периодически происходят утечки RAM при взаимодействии с табличными массивами.

    PostgreSQL - бесплатный дистрибутив. Местами медлительна, что доказано опытным путем. Подойдет для небольшого состава сотрудников, крупный штат может не вытянуть. Но, несмотря на недостатки, нет ограничений по поддержк е процессоров, а также отсутствует плато ОЗУ. Основное требование - прямые руки системного администратора. При правильной настройке демонстрирует отличные результаты.

    Oracle Database - версионная СУБД, обладающая хорошим функционалом, при том, весьма шустрая, позволяет одновременно проводить запись, чтение. Слабость – требовательность к RAM .

    IBM DB2 Universal Database. Хорошо подходит для обработки крупных массивов. Имеет обширный функционал. К сожалению, в этой СУБД есть много лишнего для сохранения совместимости с устаревшими ЭВМ, что снижает действенность СУБД. К оперативной памяти нетребовательна, но потому, что временные таблицы ограничены. Максимальное число поддерживаемых ядер - 16, что накладывает некоторые ограничения.

Наиболее эффективные по тестам СУБД - MS SQL Server, Oracle. Если в бюджете есть ограничения, то выбор стоит остановить на PostgreSQL, она является бесплатной СУБД, но учтите, работает только та версия, что сделана именно для целевого программного обеспечения. IBM DB2 Universal Database используется редко, ведь есть более продуктивные аналоги, но в поддержке устаревшего оборудования и сборок от IBM – лучшая.

Приходим к выводу, что реализовать в клиент-серверном исполнении гораздо эффективнее . В противном случае получаем тормоза и серьезные ограничения. Надеюсь, с выбором СУБД определились, но по факту скажу, что наиболее удобная и популярная - MS SQL Server. Она лучше всего поддерживается программным комплексом, о котором идет речь.

И сразу отвечу еще на один вопрос. Другие интерпретаторы SQL не поддерживаются. По крайней мере официально.

Соответственно, она будет усложняться. Одиночные машины превращаются в кластеры, состав сотрудников расширяется, делится на группы. Но, основа выглядит примерно так, как на схеме. Для численности юзеров свыше 50 точно придется использовать два устройства. Одно для баз данных, второе, в качестве терминального сервера. Иначе мощностей не хватит.

Терминальный узел нужен для предоставления мощности тонкому клиенту. В роли тонкого клиента может выступать специализированное устройство, ПК, даже смартфон. Соответственно, все операции выполняются централизовано, на одной машине. Что делает мощные аппараты в роли ТК ненужными. Достаточно непроизводительных устройств, которые отвечают за вывод результатов выполнения инструкций на экран.

Для баз данных требуется оборудование, способное обрабатывать весь объем единовременно и передавать информацию в терминальный узел, который должен быть очень мощным, так как отвечает за виртуализацию приложений и предоставление технических ресурсов.

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

Аппаратура

Итак, какое же железо нам требуется, чтобы реализовать сервер для 1С ? Хороший вопрос, сначала нужно определиться с параметрами, в соответствии с которыми будем выставлять требования:

    количество пользователей;

    объем DB ;

    требующаяся отказоустойчивость;

    тип реализации.

Подставьте к каждому пункту знак вопроса. Отвечайте на них. Фактически, таким образом формируется задача. Теперь попробуем помочь сориентироваться. Начнем с любимых юзеров.

Численность запросов к SQL – ключевой момент при подготовке технической задачи. Каждый человек или программа способна генерировать определенное количество запросов, занимает часть ресурсов аппаратуры. Так что сборка для 5 пользователей может не подойти для 10, для 50 требования будут выглядеть также иначе. Про 100, 200 тоже самое. Конечно, ПО, которое будет автоматически работать с 1С - отдельная тема, требующая более подробного рассмотрения.

Теперь пункт второй. Есть база данных, соответственно, ее где-то надобно разместить, дать нужное для функционирования количество ресурсов. Задача только с виду легкая. Придется подбирать целесообразные накопители, способные обеспечить скорость и нужный объем. Рекомендуется спрогнозировать потенциальный размер БД, тогда будет проще сформировать требования.

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

Тип реализации - фактически, каким образом будем использовать, для каких целей. Ничего сложного. Если только бухгалтерия, то мощность будет менее принципиальна, а вот если используется весь инструментарий, то требуется техника помощнее.

Пройдемся по комплектующим.

Процессор

ЦП с производительностью минимум 1700 МГц, хоть в требованиях значение ниже, но следует ориентироваться на него, и в итоге купить процессор даже помощнее. Идеально подойдет Intel Cor e i3-8100, Xeon E3-1220 v6 либо AMD Ryzen 3 1200. Конечно, наиболь ш ую производительность даст Xeon, но он дороже всех. Это для 5-10 человек . Если планируется увеличение поголовья «юзеров» , то однозначно стоит выбрать Xeon.

На 10-20 человек уже пригодится Intel Xeon E3-1230 v6, в отличие от более младшего собрата он имеет более высокую тактовую частоту и многопоточность. Хоть она не столь принципиальна, но CPU получается на порядок мощнее. Из менее дорогих подойдут Core i5-8500 и AMD Ryzen 5 1500X. Но последние не смогут показать той же производительности, что и Xeon. Так что остановите выбор на последнем.

Если сервер для 1С планируется на 20-50 человек. То сборка нужна производительная. Про процессоры пользовательского сегмента лучше уже забыть и смотреть на серверный сегмент. Итак. Здесь уже понадобятся минимум Intel Xeon E5-1650 v4 с 6 ядрами 12 потоками и базовой частотой 3,6 ГГц вполне хорош. От AMD подойдет ЦП EPYC 7261 с 8 ядрами, 16 потоками и базовой частотой 2,5 ГГц. Конечно, он покажет меньшую производительность, зато чуть дешевле. Но ненамного.

Для 50-100 юзеров стоит взглянуть уже на Xeon E5-1680 v4 от компании Интел, он заметно мощнее, чем предыдущий CPU . Имеет 8 ядер, 16 потоков и 3,4 ГГц частоты. Можно использовать и AMD EPYC 7351 с 16 ядрами, 32 потоками, базовой частотой 2,4 ГГц. Но он значительно хуже Intel. Но и заметно дешевле.

Для более серьезных решений можно использовать даже двухпроцессорные системы, либо сегментировать устройства. Например, для двухпроцессорной системы идеально подойдет Xeon E5-2643 v4. Но сегментировать устройства гораздо целесообразнее. То бишь, реализовать решение сразу на двух аппаратах.

В целом, надо отметить, что количество ядер в сервере для 1С решающей роли не играют. Больший упор нужно делать на тактовую частоту и производительность в последовательных операциях. Потому, многоядерные ЦП смело отбрасывайте. В обозреваемом программном комплексе поддержка многопоточности и многопроцессорности реализована очень плохо. Многочисленные ядра весомых преимуществ не дают.

Накопители

Бутылочное горлышко в системе традиционно HDD. Начнем с интерфейсов. SATA подходит только для последовательных запросов. Какую-либо параллелизацию можно сделать только в RAID- массиве. Интерфейс SAS получше, до 10 единовременных запросов, но пропускная способность жестких дисков все равно оставляет желать лучшего. Наиболее адекватный выбор - SSD. Подойдут твердотельные накопители с SAS, от SATA рекомендуем отказаться, но тоже вариант и они чуть дешевле. В идеале - SSD NVMe. Они наиболее быстродейственный из предложенных . Но, к сожалению, очень дороги. Отталкивайтесь от бюджета, но выбирать рекомендуем SSD, тогда будет реализована более эффективная система.

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

Ну, всякие мелочи вроде материнской платы (ха-ха, мелочь), дополнительных приводов лучше выбирать в зависимости от остальных комплектующих. Но блоку питания стоит уделить особое внимание, стоит брать дорогие версии с метками Bronze, Silver, Gold, Platinum. Последний самый хороший и надежный, первый, менее хорошо, но лучше обычных дешевок.

Обязательно сделайте RAID 1 либо RAID 10 (1+0), второй вариант заметно производительнее. Они обеспечивают дублирующуюся запись памяти. То есть, одно и то же пишется на несколько дисков одновременно. Но учтите, для создания RAID 10 необходимо 4 накопителя.

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

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

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

Защита. Резервное копирование тоже отнимает ресурсы, потому, чтобы оно не срывало работу, на него должны быть выделены дополнительные ресурсы. Фаерволы, антивирусы и другие средства защиты также требуют некоторого количества мощностей.

Отказоустойчивость. Возможность горячей замены дисков или блоков питания, дублирование систем. Возможность быстрой замены комплектующих. Чем выше отказоустойчивость, тем ниже шанс, что будет простой в работе. Наибольшая отказоустойчивость достигается в кластере. Сервер для 1С по численности пользователей

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

Сервер 1С на 5 пользователей

Для 5 человек не требуется высоких мощностей, подойдут конфигурации для малого бизнеса. Если офис небольшой и нужно компактное размещение, то можно использовать мини-сервер. Такой вариант позволит компактно разместить оборудование, и будет удобен при перевозке.

Стоимость такого устройства составить от 30 000 рублей. Конфигурация, как правило, изысками не отличается. Используется процессор начального уровня из серии Intel Xeon E3, либо AMD Opteron. Есть множество готовых сборок под данную задачу. Но в случае дешевых устройств, нет твердотельных накопителей и запаса под пиковые нагрузки.

Сервер 1С на 10 пользователей

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

Здесь также можно обойтись процессором из линейки Intel Xeon E3, например модель 1240. Оперативной памяти хватит и 8 ГБ, но лучше 16, а также стоит использовать SSD для размещения приложения и DB.

Сервер 1С на 20 пользователей

Здесь нужно оборудование мощнее, чем в предыдущем варианте. Вариант для среднего бизнеса оптимален. SSD в такой системе должен присутствовать по умолчанию, а процессор использовать рекомендуется не ниже Intel Xeon E3-1280 v6. В противном случае не останется запас под пиковую мощность.

Сервер 1С на 50 пользователей

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

Обычно для данной задачи собирается двухпроцессорная система на базе процессоров Intel Xeon E5-2643 v4. 2 таких CPU способны закрыть потребности приложения и даже базы данных. Но, в идеале, создать сервер SQL стоит отдельно.

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

Сервер 1С на 100 пользователей

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

Но примерная конфигурация будет такова:

  1. Терминальный сервер приложения. 2 процессора Intel Xeon Silver 4215, для размещения приложения SSD с высоким TDW, два блока питания, дисковая подсистема для бэкапов состояния системы.

    Сервер SQL. Аналогичные процессоры, SSD с высоким DWPD, также два блока питания и дисковая подсистема с RAID 1 для хранения резервных копий.

Это условно, специфика будет зависеть от конечной технической инфраструктуры.

Сервер для 1С на 200 пользователей и более

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

Около двух лет назад мы публиковали материал о сервере 1С Предприятия на платформе Linux, интерес к этой теме велик до сих пор. В тоже время многое успело измениться, платформа 1С не стоит на месте и чаще всего внедрение выходит за рамки простого повторения инструкций. Это неудивительно, сервер 1С Предприятия сложный продукт, поэтому мы решили начать этот цикл статей, нацеленный на более глубокое изучение предмета.

Прежде чем брать в руки мышку и бежать в серверную, следует четко усвоить необходимый минимум знаний, а именно иметь представление о структуре сервера 1С Предприятия и назначении его отдельных компонентов. Большинство проблем при внедрении связано с тем, что сервер 1С Предприятия воспринимается в качестве некоего монолитного образования, в котором все компоненты связаны между собой хитрым, одному разработчику известным, способом. Однако это не так и сегодня мы разберемся из чего же состоит наш сервер и как это все между собой работает.

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

Клиент-серверная версия 1С Предприятия представляет собой трехуровневую структуру (т.н. "трехзвенка"), в которую входят: клиент, сервер 1С Предприятия и сервер СУБД. Это полностью независимые компоненты, которые могут сочетаться в любой допустимой комбинации для достижения наилучшего результата. Рассмотрим следующую схему:

Начнем с клиентов, текущая версия платформы (8.2) предусматривает использование трех типов клиентов. Разберем их подробнее.

Толстый клиент

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

Тонкий клиент

Его можно назвать основным видом клиентского приложения для платформы 8.2, в теории, на практике не все так гладко и мы еще к этому вернемся. Схема его работы кардинально иная: клиент запрашивает данные у сервера 1С, тот получает их из БД, обрабатывает и отдает клиенту результат вычислений. Основная вычислительная нагрузка при этом ложится на сервер, поэтому особых требований к клиентским ПК и каналу от клиента к серверу не предъявляется.

Также тонкий клиент может работать как по протоколу TCP/IP в локальной сети, так и через HTTP через интернет. Для этого требуется еще один посредник - веб-сервер, который передает запросы клиента серверу 1С, никакой обработки данных на веб-сервере не производится, он используется исключительно как транспорт. Преимущества тонкого клиента понятны, он позволяет, при наличии мощного сервера, значительно ускорить работу с программой, также значительно снижается сетевой трафик, что весьма актуально для офисных сетей.

Веб-клиент

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

Теперь о ложке дегтя в бочке меда. Для нормальной работы в режиме тонкого и веб-клиентов конфигурация должна работать в режиме управляемого приложения и поддерживать все функции в данном режиме. Режим управляемого приложения является основным для платформы 8.2 и довольно радикально отличается от того, что было раньше, в том числе и внешне. Визуально управляемое приложение можно отличить по новому интерфейсу, отличительными чертами которого являются вкладки и гиперссылки:

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

На сегодня в режиме управляемого приложения работает лишь часть типовых конфигураций, такие как: Управление небольшой фирмой, Управление торговлей 11, Розница 2 и Зарплата и управление персоналом. Эти решения могут использовать все преимущества новой платформы. Бухгалтерия предприятия 2.0 не использует режим управляемого приложения и в тонком и веб-клиентах работать не будет, это же относится и ко многим сторонним решениям, таким как "Камин" и т.п.

Выводы

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

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

Кластер серверов 1С

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

Также система не накладывает никаких требований к платформам. Вы можете совместно использовать как Windows так и Linux сервера, в качестве веб-сервера можно использовать Apache и IIS, из СУБД поддерживаются PostgreSQL, MS SQL Server, IBM DB2 и Oracle. Поэтому никто не мешает вам создать схему, в которой сервер 1С работающий на платформе Linux будет работать совместно с сервером БД под управлением Windows Server и IIS и наоборот. Кроме того вы можете использовать несколько серверов СУБД (как и веб-серверов) располагая разные базы на разных серверах.

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

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

Любой кластер состоит из Центрального сервера 1С Предприятие и рабочих серверов. В простейшей конфигурации это будет один и тот же физический сервер. Однако при необходимости мы можем добавить дополнительные рабочие сервера, нагрузку по которым будет балансировать центральный сервер. Это позволяет быстро и прозрачно для пользователей увеличить вычислительную мощь системы и увеличить отказоустойчивость. Кластер также не накладывает требований к однородности платформы, в его составе могут работать сервера как под управлением Windows, так и под управлением Linux.

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

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

И наоборот, при использовании управляемого приложения в режиме тонкого клиента сервер СУБД и кластер серверов лучше разнести по разным серверам, каждый из которых будет оптимизирован под свою задачу.