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

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

С точки зрения процессорного времени терминальные сессии занимают не очень большую долю. По опыту внедрения терминальных решений в различных организациях, для поддержания комфортной работы 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 (зеркало).
Один или несколько серверов

Как сказано выше, у небольших организаций довольно велико желание разместить все сервисы на одном сервере.
К преимуществам использования одного сервера и виртуализации можно считать более низкое энергопотребление и более гибкое распределение ресурсов между виртуальными машинами. Ну и перенос виртуальных машин, в случае чего, гораздо удобнее, чем перенос физических ОС.
Однако два сервера имеют более широкие возможности по апгрейду. Например, в нашем варианте недорогой 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С. Тут очень многое зависит от текущей инфраструктуры, уровня нагрузки и её увеличения в будущем, а также бюджета. Поэтому всегда можно подобрать либо похожие модели серверов, либо более мощные и дорогие.
Как выбрать сервер для базы данных: обзор составляющих и главных характеристик выбора
С ростом бизнеса возникает необходимость в масштабировании информационной инфраструктуры, включая внедрение корпоративной базы данных (БД) и системы управления базами данных (СУБД), которые неразрывно связаны и в конечном итоге образуют общую структуру. Чтобы понять, что такое сервер базы данных и какой выбрать, необходимо детальнее рассмотреть современные технологии хранения цифровой информации.

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

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

На сегодняшний день практически все интернет-сервисы, веб-сайты, блоги, социальные сети и корпоративные IT-инфраструктуры так или иначе используют базы данных не только для хранения файлов, но и для контроля учетных записей. Как правило, все учетные данные пользователей на сайтах хранятся в защищенных БД в зашифрованном виде. Поэтому сами администраторы БД не имеют возможности получить к ним доступ.
Выбор сервера для базы данных
Сервер базы данных — это электронно-вычислительная машина, которая используется для развертывания программного обеспечения БД. Он является одним из наиболее важных компонентов в информационной инфраструктуре любого бизнеса. Большинство предпринимателей, занимающихся малым и среднем бизнесом, предпочитают инвестировать только в один сервер для хранения базы данных, так как это позволяет сэкономить бюджет на аппаратном оборудовании и его обслуживании.
Чтобы решить задачу максимально эффективно, нужно правильно выбрать необходимое оборудование в соответствии с поставленными задачами. На сегодняшний день существует большое количество разновидностей БД, которые отличаются своим типом, функционалом, диалектом и т.д. Вот некоторые из наиболее популярных вариантов:
Далее рассмотрим основные типы баз данных, их ключевые особенности, преимущества, недостатки и варианты использования.
Реляционные базы данных (SQL)
Предполагают распределенное хранение взаимосвязанной информации, организованной в виде таблиц. В каждой таблице предусматривается определенное количество строк и столбцов для упорядочивания и сортировки. Схематически это можно изобразить следующим образом:

К основным преимуществам класса относятся:
- высокий уровень безопасности в соответствии с требованиями ACID;
- целостность информации, несмотря на распределенное хранение;
- универсальный декларативный язык SQL для управления хранилищами, в большинстве случаев не зависящий от конкретной СУБД.
Основные недостатки включают в себя:
- сложность архитектуры и разработки больших баз;
- невысокий уровень оптимизации распределенных данных;
- сложности с выполнением одних и тех же запросов (N + 1).
Популярными примерами такой конфигурации являются следующие БД: PostgreSQL, SQLite, Microsoft SQL Server, MySQL и др.
Нереляционные базы данных (NoSQL)
Такие хранилища не предполагают наличия таких структур хранения, как таблицы со строками и столбцами. Основанные на этом принципе базы данных обеспечивают более тонкую оптимизацию информации под конкретные задачи и не имеют типизированной схемы. Нереляционные БД условно разделяют на иерархический и сетевой типы. Условно их можно представить следующим образом:

Основное отличие заключается в их архитектуре. Структура иерархических БД напоминает дерево с основными узлами и ветвями, в то время как сетевые — это распределенная взаимосвязь между всеми элементами системы без конкретных узлов.
Использование такого типа БД наиболее эффективно для хранения распределенных данных, не имеющих общей взаимосвязи. К основным преимуществам относятся:
- возможность работы с любым типом неструктурированной информации;
- высокая скорость обработки запросов;
- децентрализованная система хранения информации;
- упрощение совместного использования и репликации;
- гибкость и простая масштабируемость.
Основные недостатки включают в себя:
- ограниченное API и языки для администрирования;
- жесткая привязка к СУБД;
- сложность миграции;
- рандомно возникающие ошибки в процессе разработки БД из-за отсутствия конкретной схемы.
Наиболее популярными примерами являются: GetFire, MongoDB, Cassandra, CouchDB.
Описанные выше разновидности баз данных призваны решать разные задачи, поэтому, как правило, трудностей при выборе у опытных пользователей не возникает. Нельзя однозначно сказать какая база данных лучше. Остановиться на выборе SQL-таблиц следует в том случае, если планируется работать со структурированными данными. В противном случае целесообразно выбрать вариант NoSQL. Вот лишь некоторые примеры использования разных типов в конкретных сферах деятельности:

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

Дисковая подсистема
Дисковая подсистема сервера состоит из следующих основных элементов:
- Твердотельный накопитель SSD или стандартный жесткий диск. Определяют общий объем памяти для хранения информации и скорость обработки данных.

- Дисковые контроллеры RAID или JBOD. Функция контроллеров заключается в управлении всеми установленными накопителями. Кроме того, они являются инструментами проверки неисправностей и наличия дисков в системе. От правильного выбора контроллеров зависит скорость чтения/записи, стабильная работы всей системы и безопасность данных.
- Дисковые корзины. Устройство, позволяющее компактно размещать накопители внутри корпуса. Существуют различные модели и форматы корзин, например, 2.5-дюймовые для хранения дисков небольшого размера, 3.5-дюймовые для установки бо́льших накопителей и т.д. От правильного выбора корзины зависит тип и конечный объем памяти.

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

Выбор сервера для 1С или базы данных также зависит от сетевых интерфейсов, основная функция которых заключается в предоставлении возможности внутренней связи с сервером. Возможности современных моделей серверов позволяют полностью решить задачи SBM. Но некоторые модели комплектуются сетевыми картами, которые дают недостаточно возможностей. Карта 10G способна удовлетворить практически любые требования.
Оперативная память ОЗУ
Количество установленной на сервере оперативной памяти оказывает прямое влияние на быстродействие системы. Современные машины могут работать с последними поколениями ОЗУ, обеспечивающими максимальную производительность. Стоит отметить, что правильный выбор виртуального сервера с определенным объемом оперативной памяти зависит от архитектуры и характера нагрузки.

Чтобы принять решение, касательно необходимого объема RAM, необходимо произвести подробный системный анализ, который включает в себя количество пользователей БД и максимальное количество запросов в единицу времени в период наивысшей нагрузки. Чтобы гарантировать максимальную производительность, рекомендуется выбирать память последних поколений и материнские платы с поддержкой нескольких карт ОЗУ для обеспечения масштабируемости.
Процессор
Рынок серверных процессоров постоянно расширяется. С каждым годом появляются новые, более производительные модели. Поэтому для стабильной и эффективной работы всей системы рекомендуется выбирать CPU нового поколения. В качестве примера рассмотрим центральный процессор от компании Intel 14-нанометрового семейства Cooper Lake Intel Xeon Scalable 3, вышедший на рынок несколько лет назад. По сравнению с предшествующими моделями он обеспечивает следующие преимущества:
- объем памяти увеличивается до 2.66х;
- пропускная способность памяти увеличивается до 1.6х;
- линий PCIe на процессор больше;
- средний прирост производительности до 1.46х.

Важно отметить, что на определенные материнские платы можно установить одновременно несколько процессоров. Такая возможность обеспечивает эффективное выполнение ресурсоемких задач и высокий уровень масштабирования.
Выводы
Для создания и администрирования баз данных используется специальное программное обеспечение — СУБД. Вместе они образуют единую систему, от которой зависит производительность бизнес-процессов и корпоративных приложений. Проектирование БД — далеко не тривиальный процесс, который может вызывать сложности при больших объемах информации, особенно, если речь идет о реляционных базах данных.
Основным вариантом для предпринимателей является SQL или NoSQL БД. Некоторые крупные корпорации используют сложную гибридную систему хранения информации, которая включает в себя как реляционные схемы, так и нереляционные модели.
Выбор сервера для базы данных напрямую зависит от конкретных задач. Технические характеристики сервера баз данных могут сильно отличаться от машины к машине, однако при выборе необходимо обращать внимание на основные из них: процессор, дисковая подсистема, поколение и объем оперативной памяти, возможности подключения (сетевая плата и другие периферийные порты).
Выбираем сервер под базы данных и экономим до 80% на покупке

15 апреля 2021
Сервер баз данных (или сервер БД) — это важный сегмент в жизни любой компании, который должен обеспечивать целостность, сохранность и доступность данных в режиме 24/7. Что же это за серверы, какие типы БД бывают и какое железо под них необходимо читайте далее.
На серверах БД обычно хранится различная корпоративная информация, а также обрабатываются базы данных клиент-серверных программ. К выбору сервера предъявляются высокие требования — чем надежней, быстрее и отказоустойчивей будет оборудование, тем выше будет производительность и сохранность баз данных.
Существует много самых разнообразных современных серверов, повышающих рабочие показатели БД, однако существует большое множество типов баз данных, и какой же сервер нужен для каждого типа?
Виды баз данных
Самыми популярными БД на сегодняшний день признаны реляционные базы данных (SQL-базы данных), информация в которых хранится в табличном формате, а таблицы имеют четкую структуру и связаны друг с другом. Каждая таблица делится на строки, содержащие отдельные записи, и столбцы, в которых указаны назначенные типы данных. Информация в каждой ячейке записывается по шаблону.
Базы данных SQL делятся на несколько видов:
- MySQL — реляционные open source базы данных, предназначенные для небольших и средних проектов и представляющие собой недорогие и надежные инструменты. MySQL-БД поддерживают большое количество таблиц, имеют множество расширений и плагинов, упрощающих работу с системами. Они просты в установке, могут быть интегрированы в другие БД, и подходят для работы в любых CMS, фреймворки и языках программирования. В основном они используются локальными или удаленными клиентами, позволяя им работать с таблицами разных типов, поддерживающих полнотекстовый поиск или выполняющих транзакции на уровне отдельных записей;
- PostgreSQL — занимает второе место по востребованности среди open source SQL-БД. Обладает большим числом встроенных функций и дополнений, в том числе для масштабирования в кластер и шардинга таблиц. Используется для работы со сложными данными при высоких требованиях к их сохранности, поскольку стабильна и практически не «ломается». Позволяет работать со структурированными данными, но поддерживает JSON/BSON, что дает некоторую гибкость в схеме данных. Также PostgreSQL предназначена для создания, хранения и извлечения сложных структур данных. Она поддерживает самые различные типы данных (среди них — числовые, текстовые, булевы, денежные, бинарные данные, сетевые адреса, xml и другие);
- MSSQL — многопользовательский программный продукт, разработанный компанией Microsoft, обладающий высокой производительностью и отказоустойчивостью, тесно интегрированный с ОС Windows. Этот сервер поддерживает удаленные подключения, работает с многими популярными типами данных, дает возможность создавать триггеры и хранимые данные, имеет практичные и удобные утилиты для настройки. В основе языка запросов этой СУБД используется Transact-SQL (совместная разработка Microsoft и Sybase). При этом Transact-SQL — это реализация стандарта ANSI/ISO по SQL (структурированному языку запросов), но имеющая некоторые расширения. MSSQL широко применяется не только в веб-проектах, но и в desktop-программах. Ее используют при работе с реляционными БД различных размеров, начиная от персональных и заканчивая крупными базами данных в масштабе предприятия. Она задействуется в случаях, когда функционала MySQL оказывается недостаточно;
- Oracle Database — это многомодельная объектно-реляционная СУБД, обычно используемая при выполнении задач по оперативной обработке транзакций (OLTP), обслуживанию хранилищ данных (DW) и для рабочих нагрузок по смешанным (OLTP и DW) базам данных. Она включает в себя табличные пространства, управляющие файлы, журналы и архивные журналы, файлы трассировки изменения блоков, ретроспективные журналы, файлы резервных копий (RMAN). Используя эту БД, можно как автоматизировать обычные бизнес-операции, так и выполнять динамический многомерный анализ данных (OLAP), проводить операции с документами xml-формата и управлять разделенной и локальной информацией.
При этом, несмотря на откровенные различия в функционале и архитектуре, все перечисленные базы данных имеют схожие требования к «железу».
Как подобрать сервер под базу данных?
Специфика работы серверов БД состоит в том, что обработка данных, как правило, происходит транзакционно, то есть СУБД запрашивает информацию небольшими порциями, проводит над ней операции и затем сохраняет. Такая специфика работы определяет ряд требований к серверному оборудованию:
- для кэширования наиболее интенсивно используемых участков базы данных задействуется большой объем оперативной памяти;
- дисковая подсистема должна характеризоваться высокой производительностью, то есть способностью обрабатывать большое количество небольших запросов в единицу времени — IOPS (input/output per second);
- для обработки запросов и операций над данными необходима высокая вычислительная мощность.
На выбор сервера под базу данных также влияют нагрузка на оборудование, зависящая от размеров файлов БД, количество одновременно подключенных к серверу пользователей, интенсивности и особенности работы пользователей (ввод и редактирование, просмотр, формирование «тяжелых» запросов), наличие резидентного ПО, характер задач, выполняемых сервером.
Сервера под базу данных должны соответствовать аппаратным требованиям, зависящим от числа пользователей:
- для 10 пользователей требуется сервер с частотой процессора не менее 2,2 ГГц, не менее двух ядер на каждый процессор, не менее 4 Гб оперативной памяти типа DDR3, не менее 3 SAS/SATA дисков, имеющими скорость вращения 7200 об/мин.;
- для 20 пользователей требуется сервер с частотой процессора не менее 2,3 ГГц, не менее четырех ядер на каждый процессор, не менее 6 Гб оперативной памяти типа DDR3, не менее 3 SAS/SATA дисков, имеющими скорость вращения 7200 об/мин.;
- для 50 пользователей требуется сервер с частотой процессора не менее 2,5 ГГц, не менее восьми ядер на каждый процессор, не менее 16 Гб оперативной памяти типа DDR3, не менее 6 SAS/SATA дисков, имеющими скорость вращения 7200 об/мин.;
- для 100 пользователей требуется сервер с двумя процессорами частотой не менее 2,8 ГГц, не менее десяти ядер на каждый процессор, не менее 16 Гб оперативной памяти типа DDR4, не менее 10 SAS дисков, имеющими скорость вращения 10000 об/мин.;
- для 200 пользователей требуется сервер с четыремя процессорами частотой не менее 2,8 ГГц, не менее 8 ядер на каждый процессор, не менее 64 Гб оперативной памяти типа DDR4, не менее 16 SAS дисков, имеющими скорость вращения 10000 об/мин.;
- для 500 пользователей требуется сервер с четыремя процессорами частотой процессора не менее 3 ГГц, не менее 16 ядер на каждый процессор, не менее 128 Гб оперативной памяти типа DDR4, не менее 24 SAS дисков, имеющими скорость вращения 10000 об/мин.;
Чтобы обеспечить отказоустойчивый доступ к данным, стоит организовать кластер серверов БД с использованием программного обеспечения, предназначенного для конкретной СУБД и с соблюдением всех рекомендаций ее производителя.
Требования к каналам связи серверов зависят от специфики проекта и предполагаемого количества одновременно работающих пользователей. Эти показатели определяются по результатам нагрузочного тестирования проекта.
Например, при одновременной работе с типовым проектом 100 пользователей необходимая ширина канала сервера баз данных:
- минимальная: 100 Мбит/сек;
- рекомендуемая: 1 Гбит/сек.
Ширина канала при этом находится в линейной зависимости от количества пользователей.
Что выбрать: SSD или HDD? А может NVMe?
Один из самых важных критериев выбора сервера под БД — это подбор накопителя. Определиться, что лучше, твердотельный SSD или жесткий HDD, довольно сложно.
HDD на текущий момент используются только в качестве хранилищ или в системах, где скорость дисковой подсистемы не особо принципиальна. Но даже в таких серверах БД предпочтительней операционную систему и основные приложения размещать на твердотельных накопителях, чтобы ускорить загрузку и запуск приложений.
В современных серверах баз данных чаще всего используются SSD-накопители типа NAND, имеющие высокую плотность записи, возможность быстрого стирания памяти в блоках и низкий уровень энергопотребления. Кстати, про то как выбрать SSD мы уже писали в этой статье.
Главное преимущество SSD перед HDD состоит в том, что «твердотельники» существенно ускоряют работу сервера. Если классический накопитель осиливает чтение данных на скорости до 230 Мб/с, SSD могут прочитать до 700 Мб/с и более. Разница в скорости записи также существенна — SSD записывают 500 Мб/с и более, а HDD, в лучшем случае — 90 Мб/с. Если необходимо быстрое решение задач при большой загрузке оборудования — то стоит остановить свой выбор на SSD.

Сравниваем IOPS для наиболее популярных SSD.
Кроме того, SSD отличаются от HDD независимостью скорости чтения от фрагментации файлов, меньшими габаритами и весом (SSD могут быть конструктивно выполнены в корпусах гораздо меньших размеров, чем HDD). Однако число циклов перезаписи у твердотельных накопителей меньше, чем у жестких дисков, и стоят SSD дороже.
Также активно «наступает на пятки» HDD-дискам накопитель стандарта NVMe (Non-Volatile Memory Express). Этот стандарт был разработан для максимально полного использования потенциала технологии флэш-памяти. Современные накопители NVMe Gen3 на базе PCI повышают производительность серверов до 5000 Мб/с, то есть в десять раз больше аналогичного показателя для SSD SATA\SAS.
Фактически, NVMe – наиболее быстрый из существующих, ограничения предыдущих интерфейсов отсутствуют, можно обработать любую численность параллельных обращений к накопителю.
Но тотального перехода с HDD и SSD стандарта SATA\SAS на NVMe пока не предвидится, поскольку только на базе жестких и твердотельных накопителей возможна сборка аппаратных RAID-массивов, а RAID нужно строить обязательно, поскольку вероятность выхода из строя дисков очень высока, а время простоев сервера баз данных должно быть равна нулю, либо хотя бы к нему стремиться. Хотя стоит отметить, что компания DELL анонсировала поддержку аппаратного RAID на NVMe накопителях в своём новейшем поколении серверов Gen15. Увы, тестов и обзоров на момент написания статьи ещё нет.
А самый дешёвый SSD не быстрее будет?
Стоимость SSD выше, по сравнению с жесткими дисками, однако экономить на покупке твердотельника на стоит.
Если приобрести самый дешевый SSD, можно свести на нет производительность сервера: накопители перестанут справляться с растущим количеством операций записи, что может привести к задержкам в работе RAID-массивов и к выходу накопителей из строя. Потребительский SSD, на который взвалили такую огромную нагрузку, перейдет в режим чтения Read Only, то есть записать в него информацию станет невозможно.
Также в серверных SSD доступ к ячейкам памяти может производиться через 8-16 каналов, каждый из которых может иметь от 16 до 64 подканалов. В клиентских SSD имеются лишь 2-4 канала с 4-8 подканалами.
Кроме того, если выбрать вместо корпоративного SSD накопитель клиентского класса, то он окажется неподходящим для чтения или записи в условиях нагрузки 24/7. Цикл нагрузки клиентских SSD строится по схеме 20/80 (20% времени в активной работе, 80% — в режиме ожидания или в спящем режиме).
При оценке пригодности SSD для сервера базы данных следует обращать внимание значения IOPS, Latency и DPWD.
Наши рекомендации
Мы рекомендуем использовать кластеры баз данных из нескольких серверов, чтобы обеспечить отказоустойчивость. Надёжными представителями отказоустойчивости являются производители Hewlett Packard Enterprise и DELL. Новые серверы не всегда могут быть по карману, поэтому мы предлагаем нашим клиентам взять сервер на вторичном рынке, при этом в идеальном состоянии и с гарантией 2 года. Например:
Работа с базой данных
Модель базы данных «1С:Предприятия 8» имеет ряд особенностей, отличающих ее от классических моделей систем управления базами данных (например, основанных на реляционных таблицах), с которыми имеют дело разработчики в универсальных системах.
Основное отличие заключается в том, что разработчик «1С:Предприятия 8» не обращается к базе данных напрямую. Непосредственно он работает с платформой «1С:Предприятия 8». При этом он может:
- описывать структуры данных в конфигураторе,
- манипулировать данными с помощью объектов встроенного языка,
- составлять запросы к данным, используя язык запросов.
Платформа «1С:Предприятия 8» обеспечивает операции исполнения запросов, описания структур данных и манипулирования данными, транслируя их в соответствующие команды. Это могут быть команды системы управления базами данных, в случае клиент-серверного варианта работы, или команды собственного движка базы данных для файлового варианта.

Общая система типов
Важной особенностью работы с базой данных является то, что в «1С:Предприятии 8» реализована общая система типов языка и полей баз данных. Иными словами, разработчик одинаковым образом определяет поля базы данных и переменные встроенного языка и одинаковым образом работает с ними.
Этим система «1С:Предприятие 8» выгодно отличается от универсальных инструментальных средств. Обычно, при создании бизнес-приложений с использованием универсальных сред разработки, используются отдельно поставляемые системы управления базами данных. А это значит, что разработчику приходится постоянно заботиться о преобразованиях между типами данных, поддерживаемыми той или иной системы управления базами данных, и типами, поддерживаемыми языком программирования.
Хранение ссылок на объекты
При манипулировании данными, хранящимися в базе данных «1С:Предприятия 8», зачастую используется объектный подход. Это значит, что обращение (чтение и запись) к некоторой совокупности данных, хранящихся в базе, происходит как к единому целому. Например, используя объектную технику, можно манипулировать данными справочников, документов, планов видов характеристик, планов счетов и т.д.
Характерной особенностью объектного манипулирования данными является то, что на каждый объект, как совокупность данных, существует уникальная ссылка, позволяющая однозначно идентифицировать этот объект в базе данных.
Эта ссылка также хранится в поле базы данных, вместе с остальными данными объекта. Кроме того, ссылка может быть использована как значение какого-либо поля другого объекта. Например, ссылка на объект справочника Контрагенты может быть использована как значение соответствующего реквизита документа Приходная накладная.
Составные типы
Существенной возможностью модели данных, которая поддерживается «1С:Предприятием 8», является то, что для поля базы данных можно определить сразу несколько типов данных, значения которых могут храниться в этом поле. При этом значение в каждый момент времени будет храниться одно, но оно может быть разных типов — как ссылочных, так и примитивных — число, строка, дата и т.п.:

Такая возможность очень важна для экономических задач — например, в расходной накладной в качестве покупателя может быть указано либо юридическое лицо из справочника организаций, либо физическое лицо из справочника частных лиц. Соответственно, при проектировании базы данных разработчик может определить поле, которое будет хранить значение любого из этих типов.
Хранение любых данных как Хранилище значения
Идеология создания прикладных решений в «1С:Предприятии 8» предполагает, что все файлы, имеющие отношение к данному прикладному решению, нужно хранить в самой базе данных.
Для этого введен специальный тип данных — ХранилищеЗначения. Поля базы данных могут хранить значения такого типа, а встроенный язык содержит специальный одноименный объект, позволяющий преобразовывать значения других типов к специальному формату Хранилища значений.
Благодаря этому разработчик имеет возможность сохранять в базе данных значения, тип которых не может быть выбран в качестве типа поля базы данных, например, графические изображения.
Создание и обновление структур данных на основе метаданных
В процессе создания или модификации прикладного решения разработчик избавлен от необходимости каких-либо действий по непосредственному изменению структуры полей базы данных прикладного решения.
Разработчику достаточно путем визуального конструирования описать структуру используемых объектов прикладного решения, состав их реквизитов, табличных частей, форм и пр.
Все действия по созданию или изменению структуры таблиц базы данных платформа выполнит самостоятельно, на основании состава объектов прикладного решения и их характеристик.
Например, для того, чтобы в справочнике сотрудников появилась возможность хранить сведения о составе семьи сотрудника, разработчику «1С:Предприятия 8» не нужно создавать в базе данных специальную новую таблицу, задавать правила, по которым данные, хранящиеся в этой таблице, будут связаны с данными из основной таблицы, программировать алгоритмы совместного доступа к данным этих таблиц, создавать алгоритмы проверки прав доступа к данным, находящимся в подчиненной таблице и пр.
Все, что требуется сделать разработчику — щелчком мыши добавить к справочнику табличную часть и задать два ее строковых реквизита: Имя и Родство. При сохранении или обновлении конфигурации платформа самостоятельно выполнит реорганизацию структуры базы данных, создаст необходимые таблицы и т.д.
Объектный / табличный доступ к данным
Штатной возможностью «1С:Предприятия 8» является поддержка двух способов доступа к данным — объектного (для чтения и записи) и табличного (для чтения).
В объектной модели разработчик оперирует объектами встроенного языка. В этой модели обращения к объекту, например документу, происходят как к единому целому — он полностью загружается в память, вместе с вложенными таблицами, к которым можно обращаться средствами встроенного языка как к коллекциям записей и т.д.

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

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