Подбор сервера для 1с. Решения. Покупать брендовый сервер или собрать самим, или заказать сборку поставщикам

Сервер под «1С:Предприятие 8» для малого офиса

Данный материал может быть интересен для небольших организаций или филиалов на 3-25 пользователей системы «1С:Предприятие 8». Автор исходит из предположения, что читать его будут не только IT-специалисты, но и руководители или бухгалтера небольших предприятий, потому материал в техническом плане несколько упрощенный. Его базовые принципы вполне применимы и для систем с большим количеством пользователей. Для организаций на 25+ пользователей «1С:Предприятие 8» позже будет опубликовано два других материала, описывающих многолетний опыт подбора серверного оборудования и построения IT-инфраструктур для средних и крупных внедрений «1С:Предприятие 8».

Кому следует задуматься, нужно ли ему покупать сервер?

Вначале давайте опишем условия, когда сервер под «1С:Предприятие 8» не является необходимостью.
Это, как правило, организации, максимально близко подходящие под два критерия:
а) небольшая организация на 1-5 пользователей,
б) Для поддержки бизнес-процессов компании вполне достаточно возможностей типового решения от 1С (т.е. нет необходимости делать доработки типовой конфигурации, максимум изменения некоторых печатных форм, отчетов и обработок).
По статистике, в зависимости от региона, организаций, использующих типовые конфигурации от 1С, может быть до 60-80%.
Если компания удовлетворяет перечисленным выше критериям, то, возможно, вместо покупки набора, состоящего из:
- «1С:Предприятие 8»,
- Windows Server и клиентских лицензий,
- аппаратного сервера,
- услуг по настройке оборудования и ПО,
- поддержки и обслуживания данного комплекса,
имеет смысл рассмотреть возможность аренды «1С:Предприятие 8» у сервис-провайдера в формате «Программное обеспечение как Сервис» (SaaS).
Сервис-провайдеры подобных услуг предлагают полнофункциональные типовые конфигурации «1С:Предприятие 8», представленные в виде удаленного Web-сайта. Печать документов выполняется на свой локальный принтер, сохранять документы в электронном виде также можно на свой локальный компьютер. Конечно, предусмотрена возможность в любой момент выполнить сохранение локальной резервной копии своей базы данных 1С. Причем располагать резервную копию можно и на диске компьютера, и на съемном накопителе USB, и где-то на удаленном «облачном» диске (таком, как DropBox или Яндекс.Диск).
Арендовать одну из типовых конфигураций «1С:Предприятие 8» можно у самой компании 1С на ресурсе 1cFresh.com , а также у ее партнеров, например 1С:Бухобслуживание .
Из технологических удобств - это работа везде, где есть Интернет и практически с любого устройства, в том числе с планшета и даже смартфона, отсутствие необходимости в привлечении IT-специалиста. Из финансовых преимуществ - организация вместо аккумуляции средств, инвестирования в покупку физического сервера, операционной системы Windows Server и самого ПО «1С:Предприятие 8», организация просто оплачивает доступ к «1С:Предприятие 8» как к услуге, сразу списывая затраты на текущие расходы. По сути - как за коммунальную услугу. Если понадобилось увеличить или уменьшить количество сотрудников - это можно сделать практически моментально, тем самым гибко управляя своими затратами в зависимости от текущих потребностей. А работать в таком сервисе смогут и сотни пользователей одновременно.

«Сдаем анализы», или что желательно зафиксировать на текущем оборудовании?

Если у вас уже имеется в эксплуатации сервер с «1С:Предприятие 8», идеальным вариантом было бы запустить стандартную утилиту Windows - Performance Monitor (Perfmon), и записать данные о нагрузке за одни рабочие сутки. Это будет отправной точкой, которая позволит затем сравнить, насколько эффективнее новый сервер, и стоит ли он потраченных денег.
С помощью Perfmon достаточно снять нагрузку на процессор (CPU) в виде % загрузки по ядрам, оперативную память (RAM) в % использования, и физические (а не логические) диски: на которых расположены 1С и OS Windows (это может быть один, но обычно это различные диски). По нагрузке на диск самые важные параметры:
- “Avg. Disk sec/Transfer” (среднее время обращения к диску) - идеально до 10 мс (миллисекунд), хорошо до 25 мс, предельное значение для комфортной работы 40 мс;
- “Current Disk Queue Length” (текущая длина очереди диска) - идеально наличие узких пиков (на графике) и как можно меньшее значение очереди, длины очереди в 70-100 запросов и более, график в виде «горки» говорит о недостаточной производительности дисковой подсистемы;
- “Disk Transfers/sec” (обращение к диску/сек) - здесь важно зафиксировать предельные цифры и их длительность, как правило, это от 80 IOPS и до нескольких сотен, а то и тысяч.
Имея эту информацию, будет проще сформулировать требования к аппаратным подсистемам сервера для поставщика оборудования, и затем сверить их с расчётными значениями.

Методология расчета оборудования

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

Далее рассмотрим методологию расчета требуемых ресурсов для «1С:Предприятие 8» в зависимости от:
- используемой версии - файловая или SQL,
- типа доступа - по локальной сети, через удаленный рабочий стол “Remote Desktop”, или Web-/тонкий клиент,
- количества пользователей,
- количества и объема баз данных,
- иных задач, возложенных на сервер.
Представленный подход относительно универсальный, и одинаково подходит и для запуска «1С:Предприятие 8» на физическом сервере (с включённым Intel Hyper-Threading), и для запуска на виртуализированном сервере с Microsoft Hyper-V или VMware vSphere, и для расчета арендованных ресурсов у облачных сервис-провайдеров.

Для наглядности расчетов мы возьмем три достаточно типичных примера :
а) 5 пользователей «1С:Предприятие 8», файловая версия , пользователи подключенные по локальной сети (ЛВС) через «толстый» клиент 1С. В таком режиме сервер выполняет только роль файл-сервера, а вся вычислительная нагрузка ложится на рабочие места пользователей.
б) 10 пользователей , база данных SQL , запущен «1С:Предприятие 8. Сервер приложений », пользователи работают через «толстый» клиент по ЛВС, база данных объемом в 4 ГБ, за 2 года. Сервер выполняет роль хранилища данных, SQL-сервера, «Сервера приложений 1С».
в) 20 пользователей , база данных SQL , запущен «1С:Предприятие 8. Сервер приложений », пользователи работают в режиме «Удалённого рабочего стола » (RDP), одна конфигурация, база данных размером 9 ГБ за 3 года. Сервер выполняет роль хранилища данных, SQL-сервера, «Сервера приложений 1С», сервера терминалов.

Расчет потребностей в процессорной мощности (CPU ) : Для начала необходимо подсчитать, какое количество «ядер» процессора нам необходимо. Расчет будем вести в «логических ядрах CPU», где одно логическое ядро соответствует на физическом сервере одному ядру в «Диспетчере задач» при включенном Hyper-Threading (т.е. каждое физическое ядро процессора представлено как два логических).
- Под нужды операционной системы (OS) резервируем 1-2 ядра, для SQL-версии обычно достаточно одного, для файловой - лучше два.
- Если используется SQL-версия, то одно ядро на 20-25 пользователей «1С:Предприятие 8» под нужды MS SQL (больше пользователей - больше ядер);
- Также для SQL-версии резервируем одно ядро под нужды «1С:Предприятие 8. Сервер приложений х64» (процесс rphost) на 15-20 пользователей (больше пользователей - больше процессов rphost, больше ядер);
- В варианте работы пользователей в режиме «Удалённого рабочего стола» (Remote Desktop) - резервируем одно логическое ядро на 8 терминальных пользователей (больше пользователей - больше ядер).
- Для работы в режиме Web-сервиса через браузер или «Тонкий клиент» - также резервируем одно логическое ядро на 8 удаленных пользователей. На самом деле для конфигураций на «Управляемых формах» нагрузка смещается на «1С:Предприятие 8. Сервер приложений х64», а в случае Web-сервиса она еще добавляется и по Web-серверу Internet Information Server (IIS), но для расчетов нам это не важно.

Примеры расчета :
а) для 5 пользователей в файловой версии, подключенных по локальной сети через «толстый» клиент необходимо 2 логических ядра под OS (выполняющую в том числе роль файлового сервера) - итого одно физическое ядро процессора;
б) для 10 пользователей в SQL и через «толстый» клиент необходимо одно ядро под OS, одно ядро под MS SQL Server, одно ядро под «1С:Предприятие 8. Сервер приложений х64» (rphost) - итого 3 логических ядра, или 2 физических;
в) для 20 пользователей в SQL и в режиме «Удалённого рабочего стола» необходимо одно ядро под OS, одно ядро под MS SQL Server, одно ядро под «1С:Предприятие 8. Сервер приложений х64» (rphost), 2,5 ядра на обслуживание терминальных сессий пользователей (20:8) - итого 5,5 логических ядра, или 3 физических.
Сервер с самым младшим процессором Intel Xeon E3 12хx содержит 4 физических ядра, или 8 логических. Таким образом, даже минимальный вариант серверного процессора по ядрам вполне покрывает потребности небольшой организации в 25 пользователей «1С:Предприятие 8». А, к примеру, однопроцессорный сервер на основании более мощного Intel Xeon E5 16хx , содержащего 8 физических, или 16 логических ядер, вполне может справиться с нагрузкой в 50-75 пользователей «1С:Предприятие 8» в режиме «Удалённого рабочего стола» или Web-сервиса/«Тонкого клиента».

При этом одной из важнейших характеристик для процессора является его штатная частота (не путать с Turbo Boost), о чем подробнее поговорим чуть ниже. Если говорить упрощенно - комфорт работы пользователей с «1С:Предприятие 8» в режиме SQL, и особенно при работе через «Удаленный рабочий стол» (RDP) почти линейно растет с частотой процессора.

Расчет потребностей в оперативной памяти (RAM ) : Как и при расчете потребности в процессорных ядрах, наша задача - аккуратно учесть потребности всех сервисов.
- Под нужны операционной системы (OS) резервируем 4 ГБ;
- Если используется SQL-версия, то, как минимум, необходимо разместить в SQL RAM Cache 20-30% объема таблиц базы данных (DB). Если баз данных несколько - то 20-30% от объема таблиц данных каждой из баз данных. Либо же, как критерий расчета потребностей SQL RAM Cache, можно использовать объем данных за 1 год. Так как у небольших организаций обычно и базы данных 1С не слишком большие, то очень часто в SQL RAM Cache можно поместить всю базу данных, т.е. 100% объема таблиц базы данных (это идеальный вариант). Минимальный объем - от 2 ГБ.
- Под нужды «1С:Предприятие 8. Сервер приложений х64» объем RAM рассчитывается исходя из количества запущенных процессов rphost, где-то по 1 ГБ на каждый rphost. Обычно это 1-2 ГБ для 10-25 пользователей.
- При работе пользователей в режиме «Удалённого рабочего стола» (Remote Desktop) всё несколько сложнее. В первую очередь необходимо уточнить используемые конфигурации, а еще лучше физически посмотреть, сколько каждая из конфигураций потребляет RAM на одного пользователя в режиме работы по локальной сети или в терминальном режиме. Причем смотреть нужно не сразу после старта, а где-то через 20-30 мин интенсивной работы. Для примера, «Бухгалтерский учет» в среднем потребляет 250-300 МБ RAM на каждую запущенную сессию, «Управление торговлей» в среднем потребляет 300-350 МБ RAM на каждую запущенную сессию. Далее подсчитываем, сколько пользователей будет одновременно использовать каждую конфигурацию, умножаем их количество на необходимый объем RAM для конфигурации «1С:Предприятие 8», и суммируем по конфигурациям для получения общего объема. Как правило, для одной конфигурации и 10 пользователей это 3-4 ГБ RAM.
- В режиме «Удалённого рабочего стола» (Remote Desktop) также необходимо учитывать и другую вероятную нагрузку. К примеру, из 1С очень часто делается выгрузка в формат MS Excel для дальнейшей обработки печатных форм или отчетов. Или пользователям открывают доступ к использованию Интернет, других приложений MS Office и прочих программ. Соответственно, необходимо посчитать потребляемые ими ресурсы RAM. Для MS Word и MS Excel это приблизительно по 100 МБ, для MS Outlook порядка 150 МБ, Internet Explorer порядка 200 МБ на каждый запущенный экземпляр у каждого пользователя. По иным программам оптимально посмотреть их реальное потребление RAM на ПК и точно так же учесть.
- Для работы в режиме Web-сервиса через браузер или «Тонкий клиент» рассчитать потребление RAM можно по тем же принципам, как и для различных конфигураций «1С:Предприятие 8» в режиме «Удалённого рабочего стола», подсчитав пользователей каждой из конфирмаций, умножив на соответствующее потребление RAM в режиме «толстого клиента», и просуммировав. Эти дополнительные ресурсы на самом деле пойдут «1С:Предприятие 8. Сервер приложений х64» и IIS, но для предварительных расчетов вполне подходит.
Примеры расчета :
а) для 5 пользователей в файловой версии, подключенных по локальной сети через «толстый» клиент минимально необходимо 4 ГБ RAM под OS, а лучше 8 ГБ RAM;
б) для 10 пользователей в SQL и через «толстый» клиент с базой данных в 4 ГБ за 2 года необходимо 4 ГБ под OS, 1 ГБ (это 25% объема) или 2 ГБ (данные за год) под MS SQL Server, а лучше 4 ГБ, чтобы все 100% БД помещалось в RAM, 1 ГБ под «1С:Предприятие 8. Сервер приложений х64» (один поток rphost), итого от 6 ГБ до 9 ГБ RAM;
в) для 20 пользователей «Управления торговлей» в SQL с базой данных в 9 ГБ за 3 года и в режиме «Удалённого рабочего стола» необходимо 4 ГБ под OS, 3 ГБ под MS SQL Server (а лучше 9 ГБ, чтобы все 100% БД помещалось в RAM), 1-2 ГБ под «1С:Предприятие 8. Сервер приложений х64» (1-2 потока rphost), 6-7 ГБ на обслуживание терминальных сессий пользователей, итого от 14 ГБ до 22 ГБ RAM.
После подсчета необходимого объема RAM правильно добавить 20-30% запаса на рост нагрузки (увеличения числа пользователей, к примеру, или рост БД). Благо, RAM нынче стоит недорого, а современные процессоры ее поддерживают много - Intel Xeon E3 16xx до 64 ГБ RAM, а Intel Xeon E5 16xx до 1540 ГБ RAM. В сервере много оперативной памяти не бывает;-).

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

Дисковая подсистема состоит из двух компонентов:
- подсистема ввода/вывода в виде контроллеров вода/вывода (HBA) и RAID-контроллеров;
- устройства хранения данных, или в нашем случае - дисков SSD и HDD.

Подсистема ввода/вывода ( RAID ).
Так как мы обсуждаем сервер, задача которого надежно хранить информацию, абсолютно необходимым является резервирование аппаратных ресурсов для хранения данных, т.е. дисков.
Для небольших предприятий, как правило, используется RAID1, или «зеркало», когда данные записываются на два диска одновременно. В таком режиме, даже если один из дисков физически выходит из строя, данные сохраняются.
Есть сразу несколько вариантов построения RAID 1 в небольшом сервере.

1. К примеру, может быть создан полностью программный RAID (Soft RAID) средствами Windows Server. Этот вариант для системного диска, на котором находится операционная система (OS), не применим. Для диска с базой данных - можно попробовать, используя технологию Windows Storage Spaces. В реальной жизни применяется крайне редко, рекомендовать не будем.

2. Можно использовать аппаратно-программный, построенный на основе чипсета от Intel и технологии Intel® Rapid Storage Technology (Intel RST ). Суть его в том, что все операции по вводу-выводу на аппаратном уровне выполняет чипсет материнской платы, практически не загружая ресурсы CPU. А вот управление этим массивом осуществляется на программном уровне, за счет драйверов под Windows.
Это самый распространенный , и на данный момент самый высокопроизводительный вариант построения RAID1 для не очень нагруженного сервера на 2 или 4 диска.
Правда, как любое компромиссное решение, у него есть некоторое недостатки.
а) Его работа зависит от драйверов, загружаемых в операционную систему. А это несет некоторый потенциальный риск, что при обновлении драйверов или OS может возникнуть ситуация, что диск RAID будет недоступен. Она чрезвычайно маловероятна, т.к. компании Intel и Microsoft весьма дружны и очень качественно тестируют свое ПО, но не исключена. Справедливости ради нужно отметить, что за последние лет 8 автор со случаями подобных сбоев не сталкивался.
б) Исходя из результатов экспериментов в тестовой лаборатории компании Entry, по косвенным признакам можно предположить, что драйверная модель Intel RST для кэширования на запись использует ресурсы RAM. Это дает прирост производительности, но при этом несет некоторые риски потери данных при незапланированном отключении электропитания сервера. В предыдущей «реинкарнации» этой технологии, Intel Matrix RAID, на уровне команд кэширование на запись можно было явно отключить. В современной версии Intel RST как-либо повлиять на этот параметр, или даже узнать его состояние, у пользователя возможности нет. Купируется этот вопрос просто - установкой относительно «умного» источника бесперебойного питания (Smart UPS), который умеет отслеживать состояние своих батарей и при их разряде дает команду на выключение сервера. По сути, ИБП к серверу в любом случае необходимо ставить, так что это не является проблемой, главное не полениться выполнить настройки. Есть некоторый вопрос с переносимостью в случае выхода из строя материнской платы. В гарантийный период этот вопрос наверняка сможет закрыть поставщик оборудования, а вот в пост-гарантийный может потребоваться поиск аналогичной материнской платы.
Стоимость такого решения в большинстве случаев уже включена в стоимость материнской платы и, по сути, пользователю достается «бесплатно».

3. Среди IT специалистов достаточно распространено желание иметь в сервере полностью аппаратный RAID. Удачным примером такого решения является использование SAS-контролера (SAS HBA) в режиме RAID1. К примеру, LSI HBA 9211 и его последователей. Для этого в SAS HBA устанавливается специальная прошивка BIOS, у LSI 9211 это “IR”-прошивка. Преимущества по производительности такая схема не несет. Теоретически, в случае выхода из строя материнской платы можно диски и контроллер оперативно подключить к другому серверу… но ведь с такой же вероятностью как материнская плата может сгореть и SAS-контроллер, так что с точки зрения автора преимущество это несколько призрачное, решающее больше проблемы психологические, чем технологические.
Стоимость LSI HBA 9211 находится на уровне $250-300, что заметно дороже предыдущего варианта на Intel RST. Такой прирост цены для бюджетного решения довольно существенный. С точки зрения автора, если уж есть желание сделать «аппаратный» RAID, то лучше выбрать чуть более дорогое решение на Intel® RAID Controller RS3WC080 . Данный SAS HBA также построен на чипе LSI, но уже следующего поколения, LSI SAS 3008, поддерживает стандарт SAS 3.0 (12-Gb/s), при цене около $300.

4. Иногда, в случае недобросовестности или недостаточной квалификации продавца, в серверы под 1С пытаются продавать недорогие RAID-контроллеры устаревших моделей. Например, Adaptec 6405E . Недостаток таких контроллеров в том, что встроенный в них чип по своей производительности рассчитан на поддержку некоторого количества HDD, и плохо справляется даже с нагрузкой в виде двух серверных SSD младших моделей. К примеру, современные SSD легко могут выдать на чтение 80 000 IOPS (обращений в секунду) каждый, а процессор RAID-контроллера, допустим, способен обработать всего 60 000 IOPS… Также при использовании RAID1 и SSD нет необходимости в кэше на запись на контроллере - запись что в RAM-кэш на контроллере, что напрямую в SSD происходит практически с одинаковой скоростью, как и чтение. Более того, современные RAID-контроллеры, даже имея по 1 ГБ RAM Cache на борту, при работе с SSD его не используют. Это не значит, что Adaptec 6405E плохой контроллер, просто данный инструмент предназначен для другого использования.
Стоимость Adaptec 6405E - порядка $250.

В качестве краткого завершения предлагаю посмотреть на график тестирования четырех SSD в RAID10 в трех вариантах построения RAID: Adaptec 6405E, LSI 9211, Intel RST (тестовая лаборатория Entry). Хорошо видно, что наиболее производительным получается вариант с Intel RST, наименее производительный - с Adaptec 6405E.

Устройства хранения данных ( SSD и HDD )

«1С:Предприятие 8» в своей работе кроме собственно места расположения таблиц Базы данных (папка для файловой версии, таблицы DB для версии SQL), может использовать системный диск “С:\”. Например, системную папку Tmp операционной системы Windows для хранения временных файлов. С ней может работать SQL версия - в частности хранить там tempDB. В режиме «Удалённого рабочего стола» может использоваться локальные tmp директории терминальных пользователей на сервере, которые также обычно находятся на диске “C:\”, в локальных профилях пользователей.
- Под нужны операционной системы (OS) резервируем не менее 120 ГБ;
- Для хранения базы данных в файловой версии желательно просто посмотреть объем папок, в которых хранятся базы данных. Обычно это до 1-2 ГБ, а то и 10-20 ГБ.
- Если используется SQL-версия, то у нас есть три типа данных - сами таблицы базы данных (DB), временные таблицы (tempDB) и SQL log. По умолчанию tempDB будут расположены на системном диске “C:\”. Он для небольших баз данных, как правило, маленький, порядка 100-300 МБ. Таблицы базы данных (DB) - как и писалось выше, редко превышают объем 10-20 ГБ для компаний в 5-25 пользователей, но здесь в первую очередь надо смотреть текущий объем плюс прирост за год. SQL log может быть очень большим, до десятков ГБ, особенно когда включен режим “Full SQL log”, но он же может быть безболезненно «обрезан» в конце каждого месяца и архивирован (или удален, если не нужен).
Итого, под нужды баз данных «1С:Предприятие 8» выходим на емкости 20-60 ГБ, что на самом деле меньше самых маленьких серверных дисков что HDD, что SSD.
- В варианте работы пользователей в режиме «Удалённого рабочего стола» (Remote Desktop) имеет смысл учесть по 3-4 ГБ RAM в личных папках пользователей под хранение различных файлов загрузки или выгрузки/данных в/из 1С. Если же сервер используется еще и как файловое хранилище - это нужно рассчитывать совершенно отдельно от потребностей для 1С, и желательно на других физических дисках.

Что нужно еще учесть для проектирования относительно подбора дисков.
1. Очень желательно разнести Операционную систему (OS) и данные 1С (таблицы данных) на различные физические устройства с точки зрения отказоустойчивости. Но если бюджет маленький - ну что ж, пусть все будет на одном хранилище, с подстраховкой за счет RAID и ежедневных Backup на внешний носитель (или сервис).
2. Не забываем, что для сервера обязательным является резервирование дисков и построение из них отказоустойчивого RAID1 (RAID5 и его аналоги для баз данных не применяются), т.е. нам нужно, как минимум, два одинаковых диска (если OS и база данных совмещены), либо дважды по два одинаковых диска для двух массивов RAID1 (если OS и База данных разнесены).

Примеры расчета :
а) для 5 пользователей в файловой версии, подключенных по локальной сети через «толстый» клиент минимально необходимо 120 ГБ под OS, а лучше 240 ГБ, и 10-20 ГБ под данные. По сути, с такой нагрузкой справится дисковая подсистема из двух дисков Intel SSD s3510 series на 240 ГБ в режиме RAID1.
б) для 10 пользователей в SQL и через «толстый» клиент с базой данных в 4 ГБ также технически будет достаточно дисковой подсистемы из двух дисков вроде Intel SSD s3510 series на 240 ГБ в режиме RAID1. Но, с учетом количества пользователей, уже имеет смысл рассмотреть разнесение на два раздельных тома - два диска в RAID1 по 120-240 ГБ под OS и два диска в RAID1 по 80 ГБ под Базу данных.
в) для 20 пользователей «Управления торговлей» в SQL с базой данных в 9 ГБ также технически будет достаточно дисковой подсистемы из двух дисков вроде Intel SSD s3500 series на 240 ГБ в режиме RAID1. Тем не менее, с учетом количества пользователей, настоятельно рекомендуется разнесение на два раздельных тома ОС и Базу данных - два диска в RAID1 по 120-240 ГБ под OS и два диска в RAID1 по 80-120 ГБ под базу данных.

Хотелось бы напомнить о «принципе разумной достаточности».
Как правило, объем баз данных у небольших компаний на 5-25 пользователей «1С:Предприятие 8» также небольшой. И тут очень важно не гнаться за объемом диска, он вам банально не нужен. Зато имеет смысл выбрать максимально надежный и производительный диск, пусть и меньшей емкости. Типичной ошибкой покупателей является желание «купить диск побольше, дёшево же», что приводит к использованию более дешевых и емких не серверных дисков, что с технической точки зрения недопустимо.

Обход узких мест

Сетевой интерфейс . С наименьшей вероятностью при работе с «1С:Предприятие 8» узким местом может оказаться сетевой интерфейс, т.к. большого объема данных не передается, то и особых требований для 5-25 пользователей нет. Тем более на большинстве серверов установлено сразу две сетевые карты Ethernet 1 Гбит/с, но тут имеются нюансы.
Сетевые карты бывают разные. Одни - предназначены для работы в ПК и ноутбуках, и в них существенная часть нагрузки ложится на CPU. К таким относятся, например, сетевые интерфейсы на чипе Realtek RTL8201N. Такие чипы используются и в серверах, но на специальных портах, предназначенных для управления сервером.
В то же время существуют серверные сетевые чипсеты, например Intel® i350-AM2 Dual Port Gigabit Ethernet. У них большая часть обработки происходит на самом чипе, без привлечения ресурсов CPU, что и быстрее, и эффективнее.
Собственно, рекомендации просты:
- не покупать ПК «а-ля сервер», т.к. скорее всего у него стоит сетевая карта Ethernet для ПК;
- если у сервера несколько портов Ethernet, не использовать для рабочей нагрузки порт, предназначенный для управления.

RAM . Здесь всё просто. Как посчитать - описано выше. Оперативная память нынче стоит недорого. Потому посчитать, взять запас 20-50%, а можно и больше - и закрыть вопрос. Если ожидается существенный рост нагрузки в ближайшие год-два - проконтролировать, чтобы в сервере оставались свободные слоты для установки дополнительных модулей памяти.

CPU . После расчета количества необходимых физических ядер, остается вопрос с частотой.
И это очень важный вопрос.
1. Если ядер хватает, то производительность клиентской части, Сервера приложений «1С:Предприятие 8», а во многих ситуациях и SQL-сервера, напрямую зависит от частоты процессора. Причем - практически линейно. Очень многие отчеты, к примеру, при увеличении частоты процессора в 1,5 раза ровно во столько же раз выполняются быстрее.
Поэтому при прочих равных условиях имеет смысл отдавать предпочтение более высокочастотным процессорам.
2. Следующий момент - это не попасться на маркетинговую уловку некоторых продавцов, выдающих частоту процессора в режиме Turbo Boost за частоту процессора. Да, технология Intel® Turbo Boost Technology 2.0 довольно интересная штука, и в реалиях 1С, когда работает всего один поток (проведение документов или формирование сложного отчета) он позволяет поднять производительность одного ядра на 15-30%, а то и больше. Но нужно помнить, что в реальности в серверном чипе частота поднимется на краткий промежуток времени, на 30 сек, иногда на одну мин, а затем снижается до штатной. В итоге выигрыш - очень краткосрочный. А высокочастотный процессор всегда работает на высокой частоте, а значит быстрее. Поэтому он и стоит дороже.
Пример - ниже в таблице:

Табл. 1

3. Для малых предприятий на 3-10 пользователей иногда предлагают купить не сервер на Intel Xeon E3, а «мощный ПК» на Core-i7, ссылаясь на его большую производительность и надежность.
Но нужно учитывать следующие моменты.
а) Процессор Intel Xeon E3 и Core-i7 на самом деле в аппаратном плане близнецы-братья, и даже стоят одинаково. А вот внутренняя прошивка, отвечающая за расстановку приоритетов - разная. Очень упрощенно - у Xeon E3 приоритетом обладают операции ввода/вывода и другие серверные операции, а у Core-i7, заточенного под игровой сегмент и обработку видеопотоков - в приоритете обслуживание видеокарты. Цена же, еще раз подчеркну - одинаковая (при одинаковых параметрах).
б) Есть большая разница между десктопной и серверной материнской платой. Десктопная рассчитана работать 8 часов в день, 5 дней в неделю, два или три года. Соответственно, компоненты для нее выбираются, чтобы выдержать именно заложенные сроки эксплуатации. Серверные материнские платы рассчитаны работать 24 часа в сутки, 365 дней в году три или пять лет. И компоненты там несколько иные. А вот разница в цене - опять-таки минимальна, зачастую на уровне $10-20.
в) В «продвинутом» ПК с высокой долей вероятности сетевая карта будет стоять отнюдь не серверная.
Имеет ли смысл вместо сервера как специализированного устройства с заданными параметрами эксплуатации пытаться покупать некий «навороченный ПК» на роль сервера, да еще и не факт что дешевле - каждый теперь может сделать осознанный выбор.

Диски . Это, наверное, самая больная тема на момент написания статьи.
К сожалению, все еще есть и пользователи, и продавцы, слегка застрявшие в прошлом веке. И абсолютно уверенные, что HDD SAS 15 000 rpm - это пример надежности и производительности.
На самом деле это давно уже не так.

а) Для начала давайте разберемся с надежностью SSD и HDD.
Чаще всего теоретическую надежность дисков оценивают по параметру «Non-recoverable Read Errors per Bits Read», что можно перевести «Вероятность появления невосстановимой ошибки чтения на количество считанных бит». Он показывает, какой объем данных нужно считать с диска, чтобы появилась высокая вероятность появления невосстановимой ошибки.
Еще одни важный параметр, показывающий вероятность отказа диска - AFR (annual failure rate), или «Годовая интенсивность отказов».
Далее в таблице приведены данные для типовых дисков SATA Desktop HDD 7200 prm , SATA Enterprise HDD 7200 prm (SATA Raid Edition) , SAS HDD Enterprise 15 000 prm , SATA SSD Enterprise (данные взяты из официальных документов производителей, можно проверить цифры по ссылкам).

Параметр

Тип дисков

Desktop SATA 7200 rpm

Enterprise SAS 15 000 rpm
(10 000 rpm)

Enterprise SATA SSD

Non-recoverable Read Errors per Bits Read

Объем, при чтении которого статистически ожидается невосстановимая ошибка

Как хорошо видно из таблицы, по параметру «Годовая интенсивность отказа» диск для применения в обычном ПК в среднем в два раза менее надежен, чем серверный.
По поводу вероятности появления невосстановимых ошибок теория нам явно говорит, что у Enterprise SATA SSD, в качестве примера которого был взят Intel® SSD DC S3510 Series , в 10 раз ниже вероятность ошибки, чем у SAS HDD Enterprise 15 000 rpm, в 100 раз ниже, чем у SATA Enterprise HDD 7200 rpm, и в 1000 раз ниже, чем у SATA Desktop HDD 7200 rpm.
При этом цена SATA Desktop HDD 7200 rpm и Enterprise SATA SSD за объем, достаточный и для размещения и операционной системы, и баз данных 1С, отличается отнюдь не в 1000 раз, и даже не в 10.
Отдельно обращу внимание на «Объем, при чтении которого статистически ожидается невосстановимая ошибка». Для SATA Desktop HDD этот показатель 12,5 ТБ. А уже есть диски и на 8 ТБ, и на 10 ТБ… таким образом, поставив, к примеру, 8 ТБ десктопный диск, записав его и прочитав два раза, мы по теории столкнемся как минимум с одной невосстановимой ошибкой!

Краткое резюме:
- применяйте в сервере SSD Enterprise-класса, они, по крайней мере, не хуже, а теоретически и более надежны, чем любые HDD.

б) Далее оценим производительность SSD и HDD.
С точки зрения баз данных, которой, по сути, является 1С, наиболее важными являются всего три параметра диска
- латентность (Latency), или время отклика диска, измеряется в микросекундах (меньше - лучше);
- количество операций чтения в секунду (Disk Reads/sec) , измеряемой в IOPS (больше - лучше);
- количество операций записи в секунду (Disk Writes/sec), измеряемой в IOPS (больше - лучше).
Давайте сведем эти три параметра в одну таблицу для тех же самых дисков, что и в примере про надежность.

Параметр

Тип дисков

Desktop SATA 7200 rpm

Enterprise SATA \ SAS NL 7200 rpm

Enterprise SAS 15 000 rpm
(10 000 rpm)

Enterprise SATA SSD

Latency (время отклика диска на чтение/запись), микросекунды

Disk Reads/sec (количество операций чтения в секунду), IOPS

Disk Writes/sec (количество операций записи в секунду), IOPS

Как хорошо заметно из таблицы, SSD по параметру время отклика превосходит HDD в 40-80 раз , а по количеству операций ввода-вывода в секунду в 100-400 раз (!!!).
При этом, если подходить к выбору разумно, и покупать только ту емкость хранения, которая реально востребована - то разница в стоимости Enterprise SATA SSD и Enterprise SATA \ SAS NL HDD окажется очень незначительной.
Разумно ли при этом использовать для размещения баз данных HDD? С точки зрения автора - только если Вы купили на склад неликвид, вам очень надо его продать, и дальнейшие взаимоотношения с покупателем вас мало волнуют. Потому как и соотношение цена/производительность, и цена/надежность явно в пользу Enterprise SSD.

А теперь самое время вернуться к тому моменту, когда были измерены реальные показатели нагрузки на дисковую подсистему (если их удалость сделать).
Если говорить о «средней температуре по больнице», то приблизительные пиковые нагрузки по IOPS могут быть такими (количество пользователей, объем БД 1С; в нижней строке Disk Transfers/sec)

Зная количество пользователей и объем баз данных 1С, вполне можно приблизительно оценить потребность дисковой подсистемы в IOPS по Disk Transfers/sec (=Disk Reads/sec + Disk Writes/sec), либо же взять свои реальные измерения, и сформулировать требования к вашей дисковой подсистеме в операциях ввода/вывода в секунду (IOPS). И вооружившись цифрами выбрать те диски, которые им будут удовлетворять.

в) И чтобы закрыть вопрос, какие именно SSD необходимо ставить, давайте разберемся, чем отличаются Enterprise SATA SSD и обычные десктопные SATA SSD .
1. Производительность скорости чтения данных в IOPS что десктопные, что серверные диски будут показывать очень похожую. А вот производительность скорости записи данных будет существенно отличаться, и с ростом заполнения пространства на диске у десктопных SSD она будет быстро деградировать. Да, в спецификациях на десктопные диски можно увидеть очень высокие показатели в IOPS на запись… при 5-8% заполнении диска данными. А при 100% - их даже не приводят, и неспроста - эти показатели часто не отличаются от таковых у HDD. Для серверных SSD тестирование производительности на запись выполняется как раз при 100% заполнении данными, и её величина - это, как правило, или усреднённый, или один из худших результатов. Вывод - не обращайте внимания на красивые и большие числа в спецификациях производителей для десктопных SSD, это маркетинг. Для сервера необходимо выбирать пусть самую младшую, но Enterprise модель SSD. Например, такие как Intel® SSD DC S3510 Series.
2. Следующий важный параметр, который хорошо демонстрирует кардинальные различия между серверными и десктопными SSD - гарантированный ресурс перезаписи . Большинство десктопных SSD нормально переносят перезапись до 0,1% своей емкости в день (без существенной деградации производительности и выхода из строя) все те же 7 дней в неделю 2-3 года, при не полном заполнении. Серверный диск рассчитан на перезапись 0,3% своего объема каждый день в течении 3-5 лет даже при полном заполнении.
Пункты 1 и 2 объясняются очень просто. В SSD записываются данные в ячейки по 4 КБ, а вот стираются… минимум блоками по 256 ячеек и более. А до стирания всего блока они просто помечаются как готовые к стиранию. Чтобы записать на место старых данных новые - старые необходимо стереть. Чтобы стереть даже одну ячейку в 4 КБ надо вначале все данные из столбца в 256 ячеек перенести в другое место, стереть весь столбец, и вернуть данные на место. Это - небыстрая операция.
Борются с этой ситуацией путем размещения на диске SSD скрытой области, которая не доступна для пользователя, и используется как раз для подмены ячеек, когда есть необходимость «собрать мусор», т.е. очистить неиспользуемые блоки. Такая область называется Over Provisioning, или «Резервная область». Так вот, у десктопных SSD она составляет обычно 4-8% от общей емкости микросхем flash-памяти на диске, а у серверных… достигает 42% от физической ёмкости микросхем . Если же проводить пример, то при условии, что в устройстве будет распаяно микросхем на 320 ГБ, то ёмкость «десктопный» SSD будет 300 ГБ, а в случае серверного пользователю будет доступно всего 180 ГБ. На самом деле все намного сложнее, в серверных дисках применяется еще масса технологий для повышения его «живучести» и обеспечения стабильной производительности, но для общего понимания разницы пример с «Резервной областью» вполне показателен.
3. Еще одно важное отличие серверных и десктопных SSD относится к сфере обеспечения сохранности данных. В любом SSD есть своя энергозависимая RAM, которая используется в т.ч. для операций чтения и записи. В десктопных SSD могут сложиться обстоятельства, когда данные записаны в RAM на SSD, файловая система и SQL-сервер получили подтверждение записи, а на самом деле данные еще не находятся в энергонезависимой памяти. Если в этот момент произойдет сбой по питанию - то очень высока вероятность потери данных, и восстановить, что потеряно, а что нет - очень сложно.
В то же время в серверных SSD имеется суперконденсатор , емкости которого достаточно для записи в энергонезависимую память SSD всех данных, находящихся в RAM внутри SSD. Таким образом, вероятность потери данных при сбое по питанию очень существенно снижается.
И опять-таки, разница в цене серверных и десктопных SATA SSD отличается вовсе не в разы.
Краткое резюме - для хранения важных данных, таких как базы данных 1С, в сервере должны использоваться исключительно серверные Enterprise SSD.

Корпус, блок питания и ИБП

Наиболее распространенным являются три типоразмера для небольших, однопроцессорных серверов:
- монтируемые в 19” стойку (Rack-mount),
- в обычном пьедестальном корпусе (Desktop),
- современные «кубики».
Если вы собираетесь размещать сервер на площадке хостинг-провайдера или специализированной серверной - оптимальным будет Rack-mount формат высотой 1U или 2U. И такой сервер категорически не рекомендуется размещать в том же помещении, где присутствуют люди ввиду его высокой шумности.
Исполнение в Desktop типоразмере корпуса применяется в случае, когда сервер будет стоять в одном помещении с людьми. Такие серверы относительно тихие, мало чем отличаются от ПК, и даже часто выполняют роль рабочей станции для одного из сотрудников.
Хорошим примером «Дружественного к пользователям» подходя являются специализированные корпуса-«кубики».

Кром того, что они приятно выглядят, они еще и тихие.


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

Также следует коснуться вечной темы - нужно или не нужно избыточное электропитание.
С точки зрения автора, при стоимости сервера от $1000 тратить сверху только на обеспечение избыточного электропитания (два блока питания в сервере) еще дополнительно порядка $400 действительно может быть необходимо, только если у вас нет возможности оперативно, за 2-4 часа отвезти сервер в ремонт.

Если сервер rack-mount, то он находится на площадке провайдера или в серверной, где, как правило, обеспечивается качественное электропитание. А если он в офисе - то в подавляющем большинстве случаев за 2-4 часа вполне можно съездить в сервис и заменить блок питания. Если же вы находитесь далеко от сервиса, то, как вариант, можно купить запасной блок питания и положить в шкаф как «ЗиП», а при поломке самостоятельно за 15-20 минут заменить вышедший из строя бок питания на запасной.

Говоря о блоке питания и вероятности выхода его из строя, необходимо вспомнить про источник бесперебойного питания (ИБП) для сервера. Он, как минимум, должен включать в себя возможности корректировки напряжения (AVR), а еще лучше быть класса Interactive. Для снижения рисков потери данных желательно, что бы ИБП имел возможность выключения сервера при низком уровне заряда батарей (и чтобы это все подключили и настроили). И он по своей мощности должен обеспечивать, как минимум, работу от батарей в течение 10-15 минут, чего в большинстве случаев достаточно для корректного выключения сервера.

Собираем сервер «под задачу»

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

а) Для пяти пользователей в файловой версии, подключенных по локальной сети через «толстый» клиент будет достаточно сервер в форм-факторе «кубика», с четырехъядерным процессором Intel Xeon E3 12хx, 8GB RAM, два SSD Intel s3510 240 ГБ в RAID1 на бортовом Intel Rapid Raid.

б) Для десяти пользователей в SQL и через «толстый» клиент будет достаточно сервера в форм-факторе «кубика», с четырехъядерным процессором Intel Xeon E3 12хx, 16 ГБ RAM, двумя SSD Intel s3510 240 ГБ в RAID1 на бортовом Intel Rapid Raid.

в) Для двадцати пользователей в SQL и в режиме «Удалённого рабочего стола» лучше взять сервер в типоразмере Desktop или Rack-mount, с шестиядерным процессором Intel Xeon E5 166x, 32 ГБ RAM, двумя SSD Intel s3510 120 ГБ в RAID1 для размещения баз данных 1С и двумя SATA HDD (RAID Edition) 2-4 ТБ в RAID1 для размещения OS, Backup и пользовательских данных, а также в роли файлового хранилища, и опять-таки на бортовом Intel Rapid Raid либо на Intel® RAID Controller RS3WC080.

И несколько абсолютно практических советов.
1. Не нужно «экономить на мелочи» и использовать неподходящие инструменты - в сервере лучше работает серверный процессор, серверная материнская плата и серверный SSD. Разница в цене с настольными компонентам и очень незначительна, а по функциональным возможностям может оказаться непропорционально большой.
2. Нет особого смысла планировать ресурсы более, чем на три года. Технологии меняются настолько быстро, что через год-два может оказаться эффективнее заменить диск или сервер, чем изначально закладывать ресурс на пять лет.
3. Принцип разумной достаточности применим и к выбору сервера. При объеме базы данных в 10 ГБ специализированный серверный объемом в 80 ГБ куда предпочтительнее «десктопного» в 200 ГБ.

Безусловно, все описанное выше не является догмой. Это эмпирически выведенные расчеты исходя из многолетнего опыта автора по оптимизации аппаратных средств под различные платформы компании 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С.

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

Сегодня мы рассмотрим выбор серверного «железа» для небольшой организации на 25-30 пользователей, с распределенной инфраструктурой (торговые точки, склад), которой требуются терминальный сервер и программа «1С: Предприятие». Этими сервисами будут пользоваться все сотрудники.

Большинство малых компаний, для удешевления стоимости оборудования, предпочитают минимизировать количество приобретаемой техники и просят администраторов «впихнуть» все запрошенные ими сервисы в один физический сервер. Желание понятное и простительное, но тут «есть нюансы».

Можно организовать терминальный сервер и использовать там файловую версию 1С, но при таком количестве пользователей компания-разработчик рекомендует переходить на клиент-серверный вариант. Поэтому нам потребуется еще сервер под «1С: Предприятие» и сервер баз данных. Уточним сразу, что организовать терминальный сервер, сервер SQL и сервер 1С на одной операционной системе возможно, но, с точки зрения безопасности и стабильности работы сервисов, это крайне не рекомендуется. А если всё-таки очень хочется использовать один физический сервер для всех трёх ролей, то рекомендуем использовать виртуализацию, например, VMWare ESXi или Hyper-V.
Таким образом, вырисовывается три варианта:

  1. Один сервер с файловой 1С. Плохой вариант, далее мы его рассматривать не будем.
  2. Один сервер с двумя виртуальными машинами.
  3. Два физических сервера, один терминальный, второй с БД и 1С.

Для решения этих задач можно предложить следующую конфигурацию серверов:

В случае с одним физическим сервером мы остановили выбор на Dell R710, с двумя шестиядерными процессорами Xeon X5650, 64 Гб оперативной памяти и шестью дисками: два SSD в RAID 1 и четыре SAS-диска в RAID 10.

В случае с двумя физическими серверами мы остановили выбор на таких конфигурациях:

  • Терминальный сервер: IBM x3550 M3 с одним процессором Xeon E5620, 32 Гб оперативной памяти и двумя SSD в RAID 1, с дополнительной сетевой картой на два гигабитных интерфейса. У этого сервера также есть богатые возможности для апгрейда, так как он двухпроцессорный, имеет 18 слотов под модули памяти и поддерживает до 288 Гб ОЗУ.
  • Сервер баз данных: IBM x3250 M5 с одним процессором Xeon E3-1220v3, 16 Гб ОЗУ, дополнительным RAID-контроллером SAS/SATA, четырьмя SAS-дисками в RAID 10, с дополнительной сетевой картой на 2 гигабитных интерфейса.
Почему мы выбрали именно такие конфигурации? Для ответа на этот вопрос давайте подсчитаем, что нам нужно для обеспечения комфортной работы пользователей в нашей небольшой организации на 25-30 сотрудников. Чтобы не было недопонимания: это лишь один из примеров недорогого внедрения 1С, и во многих случаях целесообразнее выбрать другие конфигурации.

Процессор

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

Для небольшой базы SQL-серверу понадобится одно ядро. Но мы будем ориентироваться на расширение базы в будущем (или увеличение количества баз) и возьмем два ядра на SQL.

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

Итого у нас получается:

  • для сервера с двумя виртуальными машинами нужно 12 физических ядер. Можно и меньше, но всегда должен оставаться запас по мощности. Сервер с двумя шестиядерными процессорами подходит для этого идеально.
  • для терминального сервера достаточно одного процессора Xeon E5620 с шестью ядрами, для сервера баз данных - процессора Xeon E3-1220v3 с четырьмя ядрами.

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

Сначала посмотрим, сколько нужно оперативной памяти под сервисы:
  • Операционная система Windows Server только под себя требует 2 Гб ОЗУ.
  • Для SQL и небольшой базы 1С достаточно будет 4-6 Гб ОЗУ.
  • Сервер «1С: Предприятие» требует еще 2-3 Гб ОЗУ.
  • Рассчитываем, что каждому пользователю потребуется 700 Мб ОЗУ в терминальной сессии, тогда на 30 пользователей потребуется 21 Гб.
Теперь применим это к нашим вариантам.
  • Для одного сервера с двумя виртуальными машинами нужно около 40 Гб ОЗУ.
  • Для терминального сервера достаточно будет 24 Гб или 32 Гб ОЗУ (возьмем с запасом, предполагая будущее расширение). Для сервера с базами данных нужно не менее 8 Гб, но это «впритык», поэтому 16 Гб с запасом. Память сейчас - один из самых дешевых компонентов сервера.

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

Это традиционное бутылочное горлышко многих систем. Правильный выбор жестких дисков очень важен для обеспечения быстродействия серверов. При работе 1С с базой SQL происходит множество операций чтения/записи в секунду (IOPS). Если пользователи работают на терминальном сервере с тонких клиентов (т.е. полноценно используют терминальный сервер как рабочую среду), это сильно нагружает дисковую систему сервера. Например, 30 пользователей терминального сервера на RAID 1, SATA 3 Гбит/с, с дисками WD Velociraptor чувствуют себя некомфортно при работе с почтой и активном сёрфинге в интернете. Для терминальных серверов мы рекомендуем использовать SSD-накопители. Для серверов баз данных - SAS-диски, собранные в отказоустойчивые массивы.

Помимо накопителей, следует уделить внимание и дисковому контроллеру. Современные серверы имеют на борту довольно хорошие контроллеры, например, HP SmartArray и DELL PERC. Однако некорректно будет использовать «набортные» решения при серьёзной нагрузке, когда требуется максимальная производительность. Немного сэкономив, вы легко можете получить мощный сервер, который совершенно не тянет нагрузку. Поэтому контроллер должен быть , со своей энергонезависимой памятью.

Рассмотрим варианты решения этой задачи.

  • Для одного сервера с двумя виртуальными машинами желательно использовать два RAID-массива: на одном будут располагаться файлы виртуальной машины терминального сервера, на втором - файлы виртуальной машины сервера баз данных и «1C: Предприятия». Для создания первого массива лучше всего использовать два SSD-накопителя в RAID 1 (зеркало).

    Второй массив лучше создать из четырёх SAS-диска в RAID 10 (зеркало + страйп), но можно и из двух SSD-накопителей в RAID 1. Выбор зависит только от стоимости дисков и модели сервера.

  • Для двух серверов всё то же самое, только массивы будут разнесены по серверам. На терминальном - RAID 1 из двух SSD, на сервере баз данных - RAID 10.

Один или несколько серверов

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

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

Однако два сервера имеют более широкие возможности по апгрейду. Например, в нашем варианте недорогой IBM x3550 M3 с добавлением еще одного процессора и ОЗУ превращается в элегантные шорты терминальный сервер на 50 и даже более пользователей.

Еще одно «узкое место» в нашем случае, которое необходимо учитывать при выборе двух физических серверов, это обмен данными между ними по сети. У виртуальных серверов обмен данными идёт через виртуальный коммутатор. Здесь же, для увеличения пропускной способности сети, можно установить в каждый сервер по сетевой карте с двумя гигабитными интерфейсами, которые можно агрегировать между собой и напрямую соединить оба сервера агрегированными 2-х гигабитными линками. Или же использовать сетевые карты с SPF+ 10GBASE, но это дорогое удовольствие.

Запас по мощности

При расчетах и выборе сервера необходимо принимать во внимание пиковые нагрузки. Также обязательно нужно помнить, что база данных будет только «пухнуть», объёмы данных на терминальном сервере будут расти, а количество пользователей может увеличиться. Многие предприятия экономят на запасе мощности и через полгода-год сталкиваются с перебоями в работе и жалобами пользователей. Это тот случай, когда чрезмерная экономия приводит к новым затратам в будущем - скупой платит дважды. Выбранные нами варианты рассчитаны с запасом мощности и возможностью апгрейда. Учтено, что в DELL R710 можно будет добавить еще два жестких диска и ОЗУ, а также заменить процессоры на более производительные.

Так что, если вам потребуется расширение, или количество сервисов увеличится, то тут есть большие перспективы, а существующие серверы еще долгое время будут эффективно выполнять свои задачи. Возможно, через год нам неожиданно потребуется увеличить количество пользователей в два раза, до 60 человек? Пожалуйста.

Если вы использовали один сервер DELL R710, то можно докупить недорогой IBM x3550 M3, поднять на нём гипервизор, перенести туда виртуальную машину с БД и 1С-сервером, а на DELL-е все ресурсы отдать виртуальной машине с терминалом. Это будет быстро, и не потребуется «всё выкинуть и купить новое».
Если же вы использовали два сервера IBM, то x3550 M3 с добавлением второго процессора и небольшого количества ОЗУ превращается из середнячка в довольно мощную машину. А в x3250 M5 можно обновить процессор с E3-1220v3 до E3-1285v3.

Выбирая, какой сервер нужен для 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С.

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

Для определенности, рассмотрим платформу «1С:Предприятие 8.2» в ее популярных базовых конфигурациях «Бухгалтерский учет», «Торговля и склад», «Зарплата и Управление Персоналом», «Управление Торговым Предприятием» и, отчасти, «Управление Производственным Предприятием». Исходим из того, что для предприятий с 10 и более сотрудниками, работающими в 1С, используется «1С:Предприятие 8.2. Сервер приложений». Учтем вариант работы в режиме удаленного рабочего стола (Remote Desktop), с количеством одновременных пользователей базы данных до 100-150. Рекомендации будут применимы и для более «тяжелых» БД 1С, но «тяжелые случаи» всегда требуют индивидуального подхода.

Процессоры и оперативная память

Если компания совсем маленькая (2-7 пользователей в системе), база невелика (до 1GB), а «1С:Предприятие 8.2» работает в файловом режиме на пользовательском компьютере, то мы получаем классическую реализацию файл-сервера. С такой задачей по нагрузке на CPU справится даже Intel Core i3, тем более Intel Xeon E3-12xx. Объем необходимой оперативной памяти (RAM) считается совсем просто: 2GB под операционную систему и 2GB под системный файловый кеш.

Если в компании 5-25 пользователей 1С, размер базы данных до 4GB, то приложению «1С:Предприятие 8.2» должно хватить 4-х ядерного Intel Xeon E3-12xx либо AMD Opteron 4ххх. Кроме 2GB оперативной памяти под ОС, необходимо выделить 1-4GB под «1С:Предприятие 8.2. Сервер приложений» и еще столько же под MS SQL Server в качестве кеша - итого 8-12GB RAM. Для небольших БД желательно кешировать в оперативной памяти не менее 30% БД, а лучше все 100%.

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

В компаниях побольше пользователи 1С обычно работают через удаленный доступ к приложению (Remote Desktop) - то есть в терминальном режиме. Как правило, при10-100 пользователях 1С с базой данных от 1GB и выше, «1С:Предприятие 8.2. Сервер приложений» и пользовательское приложение «1С:Предприятие 8.2» запускается на одном и том же сервере.

Для определения необходимых процессорных ресурсов исходят из того, что одно физическое ядро может эффективно обрабатывать не более 8 пользовательских потоков - это связано с внутренней архитектурой процессоров. Как показывает практика, под задачи 1С + Remote Desktop не стоит брать серверные процессоры младших линеек с низкими частотами расчетных ядер и урезанной архитектурой. Если пользователей немного (до 15-20), хватит одного процессора из высокочастотных Intel Xeon E3-12xx. При этом минимум одно его физическое ядро (2 потока) уйдет под нужды SQL Server, еще одно (2 потока) - под «1С:Предприятие 8.2. Сервер приложений», а оставшиеся 2 физических ядра (4 потока) - под ОС и терминальных пользователей. При количестве пользователей 1С более 20 или при объемах БД более 4GB пора переходить к 2-х процессорным системам на Intel Xeon E5-26xx или AMD Opteron 62xx.

Расчет нужного объема оперативной памяти относительно прост: 2GB надо отдать ОС, 2GB и больше - MS SQL Server в качестве кеша (не менее 30% БД) , 1-4GB - под «1С:Предприятие 8.2. Сервер приложений», остальной памяти сервера должно хватать под терминальные сессии. Один терминальный пользователь, в зависимости от конфигурации, потребляет в приложениях «Бухгалтерский учет», «Торговля и склад» - 100-120MB, «Зарплата и Управление Персоналом», «Управление Торговым Предприятием» - 120-160MB, «Управление Производственным Предприятием» - 180-240MB. Если пользователь запускает дополнительно на сервере MS Word, MS Excel, MS Outlook, то на каждое приложение надо выделить еще порядка 100MB. Как правило, минимум для сервера терминалов - 12GB RAM.

К примеру, для сервера 1С со всем пакетом ПО, 50 терминальными пользователями в конфигурации «Управление Торговым Предприятием», и базой данных в 8GB оптимальной будет вычислительная мощность двух процессоров Intel Xeon E5-2650 (8 ядер, 16 потоков, 2.0 GHz). Оперативной памяти понадобится минимум 2 (ОС) + 4(SQL) + 4(1C-сервер) + 8 (160 «УТП» * 50 пользователей) = 18GB, а лучше 24-32GB(6-8 каналов DIMM по 4GB).

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

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

У 1С есть 5 потоков данных для дисковой подсистемы, с которыми она работает:

  • таблицы баз данных;
  • индексные файлы;
  • временные файлы tempDB;
  • log-файл SQL;
  • log-файл пользовательских приложений 1С.

Структура данных в 1С - объектно-ориентированная, со множеством объектов и связей между ними. Для работы с таблицами данных чрезвычайно важно количество операций чтения и записи, которые способна проделать дисковая подсистема за промежуток времени (Input Output Operation per Second, IOPS). При этом ее способность выдать высокую потоковую скорость передачи данных (в MBp/s) куда менее важна. Очень скромная база объемом 200-300MB с 3-5 пользователями может генерировать в пиках до 400-600 IOPS. База на 10-15 пользователей и объёмом в 400-800MB способна выдать 1500-2500 IOPS, 40-50 пользователей БД 2-4GB порождают5000-7500 IOPS, а базы под 80-100 пользователей легко достигают 12000-18000 IOPS.

Разумеется, средняя нагрузка на дисковую подсистему может составлять и 10-15%от пиковой. Только в реальности важна именно производительность в период пиковых нагрузок: автоматических загрузок данных из других систем, обмена данных распределённой системы или перепроведения периода.

Современные диски в операциях чтения и записи со случайным доступом (Random Read/Write) в одиночку справляются с такими нагрузками:

Intel 910 400 GB

2400 – 8600 IOPS

Хорошо видно, что:

  • узким местом и для HDD, и для SSD является запись;
  • традиционные HDD - не конкуренты SSD по скорости чтения в IOPS даже теоретически, разница превышает два порядка;
  • даже не самый современный десктопный SSD в 3-40 раз (в зависимости от конфигурирования) превосходит по скорости записи в IOPS любой HDD, серверный SSD - в 12-40 раз быстрее HDD;
  • максимальную производительность в IOPS дают PCIe SSD класса Intel 910 или LSI WarpDrive.

Одиночные диски в серверах БД не используются, только RAID-массивы. Для дальнейшего расчета реальной производительности дисковой подсистемы нужно учесть затраты («штраф») на запись в IOPS, которые несет дисковая группа в RAID:

Если собрать 6 дисков в RAID 10, то на каждую запись в 1 IOPS данных будет потрачено 2 IOPS физических дисков, а если в RAID 6 - то 6 IOPS дисков. Таким образом, при расчете нагрузочных возможностей дисковой группы на запись нужно вначале сложить IOPS всех дисков RAID-группы, а затем разделить их на «штраф».

Пример 1: 2 HDD SATA 7200 в RAID 1 обеспечат на запись: (100 IOPS *2) / 2 = 100 IOPS.

Пример 2: 4 SATA 7200 в RAID 5 обеспечат на запись: (100 IOPS *4) / 4 = 100 IOPS.

Пример 3: 4 SATA 7200 в RAID 10 обеспечат на запись: (100 IOPS *4) / 2 = 200 IOPS.

Примеры 2 и 3 наглядно демонстрируют, почему для хранения баз данных, у которых типовое распределение чтение/запись составляет 68/32, предпочтителен RAID 10.

Из данных трех таблиц понятно, по какой причине производительности типового «джентльменского набора» 2 HDD SATA 7200 в RAID 1 серверу недостаточно: при пиковых нагрузках растет очередь обращений к диску, пользователи ожидают ответа системы, иногда по многу часов.

Как увеличить производительность дисковой подсистемы на запись? Наращивают количество дисков в RAID-группе, переходят к дискам с большей скоростью вращения, выбирают уровень RAID c меньшим штрафом на запись. Хорошо помогает кеширование RAID-контроллером с включенным режимом отложенной записи Write back. Данные пишутся не напрямую на диски (как в режиме Write Through), а в кеш контроллера, и только затем, в пакетном режиме и упорядоченном виде - на диски. В зависимости от специфики задачи, производительность записи удается поднять на 30-100%.

Под слабо нагруженные или относительно небольшие БД (до 20GB) подойдет недорогой способ «добычи IOPS» - гибридный RAID из SSD/HDD . Большего и не нужно филиальной БД на 3-15 пользователей в распределённой структуре вроде сети кафе или СТО.

Для объемных (200GB и более) БД с длинным историческим шлейфом данных, либо для обслуживания нескольких объемных БД эффективным может оказаться SSD-кеширование (технологии LSI CacheCade 2.0 или Adaptec MaxCache 3.0). По опыту эксплуатации таких систем, именно в задачах 1С с их помощью можно относительно недорого и без существенных изменений в инфраструктуре хранения ускорить дисковые операции на 20-50%.

Чемпионом по быстродействию в IOPS предсказуемо являются RAID-массивы на серверных SSD - как традиционные, с использованием SAS RAID-контроллера, так и PCIe SSD. Мешают их популярности два ограничителя: технологический (производительность RAID- контроллеров или необходимость радикально ломать структуру хранения) и цена реализации.

Отдельно следует сказать о хранении индексных файлов и TempDB. Индексные файлы обновляются очень редко (обычно 1 раз в сутки), зато читаются очень и очень часто (IOPS). Таким данным просто необходимо храниться на SSD, c их показателями по чтению! TempDB, используемые для хранения временных данных, как правило, невелики по объему (1-4-12GB), зато очень требовательны к скорости записи. Индексные и временные файлы объединяет то, что их потеря не приводит к потере реальных данных. А значит, они могут размещаться на отдельном (еще лучше - на двух отдельных томах) SSD. Хотя бы и на бортовом контроллере SATA материнской платы. С точки зрения надежности и быстродействия, под TempDB желательно отдать зеркало (RAID1) из SSD, можно на бортовом контроллере, но с обязательным выключением всех кешей на запись. С этой ролью справятся и десктопные SSD - вроде Intel 520-серии, где аппаратная компрессия данных при записи в TempDB будет как раз уместной. Вынос этих задач с общей системы хранения на выделенную скоростную подсистему положительно сказывается на производительности системы в целом, особенно в моменты пиковых нагрузок.

В случаях, когда есть возможность обеспечить максимально быструю реакцию администраторов при сбоях, и когда имеются сложные расчетные задачи (складская или транспортная логистика, производство в УПП, объемные обмены в УРБД), TempDB выносят на RAMDrive. Такое решение позволяет выиграть иногда до 4-12% общей производительности системы. Некоторое неудобство возникает только в случае рестарта сервера: если автоматически RAMDrive не запустится, потребуется вмешательство администратора для ручного старта - иначе станет вся система.

Еще один важный компонент - log-файлы. Они имеют неприятную для любой дисковой подсистемы особенность - генерировать почти постоянный поток мелких обращений на запись. Это незаметно при средних нагрузках, но сильно ухудшает быстродействие сервера 1С при пиковых нагрузках. Разумно выносить log-файл (в особенности, log-файл SQL) на отдельный физический том, к которому нет высоких требований по IOPS, и на который будет идти практически линейная запись. Для спокойствия можно создать зеркало из недорогих и объемных SATA/NL SAS (для Full log), либо недорогих десктопных SSD все той же Intel 520-й серии (Simple log, или Full log, с ежедневным его Backup и очисткой).

В целом можно сказать, что приход SSD в серверы открыл новые возможности увеличения производительности массовых серверов - за счет многоуровневого хранения данных и разумного конфигурирования дискового ввода/вывода.

Дисковая подсистема «идеального сервера под 1С» выглядит так:

1. Таблицы базы данных размещены на RAID 10 (или RAID 1 для малых БД) из надежных серверных SSD с обязательным аппаратным RAID-контроллером. При высоких требованиях по IOPS можно рассмотреть вариант PCIe SSD. Для БД большого объема эффективно SSD-кеширование массивов HDD. Если используемая конфигурация 1С и структура данных не слишком требовательны к IOPS, а количество пользователей невелико - хватит традиционного массива из HDD SAS 15K rpm.

2. Индексные файлы вынесены на быстрый и недорогой одиночный SSD, TempDB - на 1-2 (RAID 1) SSD или RAMDrive.

3. Под log-файлы SQL (а желательно и 1С) отведен выделенный том (одиночный физический диск или RAID-1) на SATA/NL SAS HDD или недорогих SSD, либо логический диск на RAID-массиве, на котором расположена операционная система сервера и пользовательские файлы/папки.

4. Операционная система и пользовательские данные хранятся на RAID 1 из HDD или SSD.

Если IT-инфраструктура виртуализирована, крайне желательно, чтобы SQL Server был установлен не как виртуальная машина, а непосредственно на физический сервер, на «голое железо». Цена вопроса - от 15 до 35% производительности дисковой подсистемы (в зависимости от оборудования, драйверов, средств виртуализации и способов подключения тома). В виртуализированной среде SQL-сервера подключение томов с таблицами БД, индексными файлами и TempDB к VM обязательно в монопольном режиме по Direct Access.

Сетевые интерфейсы

При построении систем 1С:Предприятие 8 для малых и средних предприятий (до 100-150 активных пользователей одновременно) следует минимизировать потери на сетевых операциях через интерфейс Ethernet. В идеале - обслуживать и SQL Server, и «1С:Предприятие 8 Сервер приложений х64», и пользовательские сессии 1С в Remote Desktop одним физическим сервером. Спорная с точки зрения обеспечения отказоустойчивости, такая рекомендация позволяет выжать максимум из оборудования и ПО, а за счет применения виртуализации дает определенный уровень безопасности и «повторяемость среды» на другом оборудовании.

Зачем исключать Ethernet из цепочки SQL-сервер -> Сервер приложений 1С:Предприятие 8 -> пользовательская сессия 1С:Предприятие 8? Сетевой интерфейс Ethernet, с его упаковкой данных в относительно небольшие блоки для передачи, всегда будет создавать дополнительные задержки: и при упаковке/распаковке трафика, и при самой передаче (высокая латентность). В 1С:Предприятие 8 довольно большие массивы данных передаются для обработки и отображения по всей цепочке, в некоторых ситуациях - в обе стороны. При прямой же передаче данных от одного процесса другому в рамках оперативной памяти сервера (на одном сервере без виртуализации), или же через виртуальный сетевой интерфейс (в рамках все того же одного физического сервера, при хороших серверных сетевых адаптерах с переносом блоков RAM между VM) задержки намного ниже. Современные двухпроцессорные серверы с большой оперативной памятью и дисковой подсистемой на SSD позволяют комфортно обслужить БД 1С на 100-150 активных пользователей.

Если для нагруженных БД использование нескольких физических хостов неизбежно, желательно связать все серверы по 10Gb Ethernet. Или, как минимум, 2-4агрегированными соединениями 1Gb Ethernet с аппаратным ускорением TCP/IP (TCP/IP Offloader) и аппаратной поддержкой виртуализации.

Больше всего от потерь производительности на портах Ethernet страдают бюджетные решения. Не секрет, что сетевые адаптеры 1Gb, распаиваемые на большинстве серверных материнских плат, не предназначены для обслуживания интенсивного сетевого трафика. Даже если на плате есть 2 или 3 порта GbE, они, как правило, реализованы на десктопных чипах. Достаточные для управления, они порождают дополнительные накладные расходы по обслуживанию сетевых обменов, особенно в виртуализированной среде. Весь процесс передачи данных через такой чип обеспечивается за счет ресурсов процессора, оперативной памяти и нагрузки на внутренние шины. Никакого ускорения передачи IP-трафика такие чипы не дают, каждый принимаемый и передаваемый Ethernet-пакет требует отдельного прерывания на процессор. В виртуализированой среде потери производительности сетевого интерфейса могут достигать 25-30%. Самое неприятное, что перегрузки именно сетевого интерфейса средствами мониторинга можно и не заметить. За него отдувается центральный процессор, а если не работает, то простаивает в ожидании ответа от сетевой карты. Порты на десктопных чипах желательно исключить из потока данных в виртуализированных средах, оставив их под задачи управления сервером. Под интенсивный сетевой трафик стоит добавить дискретную сетевую карту на серверном чипсете.

Отказоустойчивость или допустимое время простоя?

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

Разумеется, для предприятий с относительно большим количеством одновременно подключенных пользователей (25-150) и размещением всех приложений на одном сервере обязательно применение источников бесперебойного энергоснабжения, избыточных блоков питания самих серверов, корзин горячей замены дисков и RAID-массивов с горячим резервированием. Но никакие аппаратные средства не заменят планового резервирования самих данных. Имея ежедневный (точнее, еженощный) backup и оперативный файл с Full SQL log, можно полностью восстановить БД 1С за относительно короткий промежуток.

Допустимое время простоя центральной системы 1С для малых и средних предприятий - 1-2 аварии в месяц, продолжительностью 1-4 часа. На самом деле, это огромный запас времени - если к восстановлению быть готовыми заранее. Необходимым условием быстрого рестарта является наличие образов всех виртуальных и физических серверов в виде VM на отдельном хранилище/томе - для восстановления самой инфраструктурной части на резервном сервере. Обязателен ежедневный backup (а также еженедельный и по закрытию периода) на другое физическое устройство и Full SQL log для случаев, когда потеря данных «с начала рабочего дня» критична и трудно восстановима вручную. При наличии подменного оборудования можно уложиться в 1-2 часа для восстановления работоспособности в целом, пусть и с меньшей производительностью. Ну а там, где требуется непрерывность работы 24×7, первоочередными задачами будут выбор соответствующей архитектуры, оборудования с минимальным количеством точек отказа и полноценных технологий кластеризации. Но это уже совсем другая история.

Оригинал статьи: http://ko.com.ua/proektirovanie_servera_pod_1s_66779

С разрешения редактора журнала "Компьютерное обозрение"