Как выбрать и настроить рабочую станцию в качестве сервера для 1С и SQL Server?

Системный администратор 1С v8.3 (Управляемые формы) Бухгалтерский учет Сфера услуг, туризм и социальный сектор
← На главную

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

Оценка требований к системе

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

  1. Количество пользователей: 6-8 пользователей 1С:Бухгалтерия государственного учреждения (БГУ) и 2 пользователя 1С:Зарплата и управление персоналом (ЗУП). Всего до 10 пользователей.
  2. Режим работы: клиент-серверный с использованием SQL Server.
  3. Объем баз данных: БГУ – 10 ГБ, ЗУП – 4 ГБ. Общий объем составляет 14 ГБ.
  4. Сеть: 1 Гбит/с.
  5. Время простоя: 2 часа считаются некритичными, что немного снижает требования к мгновенной отказоустойчивости, но не исключает ее совсем.

Эти параметры будут отправной точкой для выбора каждого компонента.

Выбор процессора (CPU)

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

Рассмотрим предложенные варианты и рекомендации:

  1. Intel Core i5-12500 (3.0/4.6GHz): Этот процессор с 6 ядрами и высокой тактовой частотой является хорошим выбором для начальной конфигурации. Он обладает достаточной производительностью на ядро и общим количеством ядер для обеспечения комфортной работы до 10 пользователей. Однако, как отмечалось на форуме, такие процессоры предназначены для игровых или обычных рабочих станций, а не для постоянных серверных нагрузок. Они не имеют таких функций надежности, как серверные процессоры (например, Intel Xeon или AMD EPYC). Объем кэш-памяти (особенно L3) также важен, поскольку больший кэш ускоряет обработку повторяющихся запросов к базе данных. У i5-12500 он составляет 18 МБ.
  2. Intel Core i3-12100 (3.3/4.3GHz): Этот процессор дешевле, но имеет только 4 ядра. Хотя его тактовая частота достаточно высока, для сервера SQL, который будет работать на той же машине, что и сервер 1С, количество ядер может оказаться недостаточным при росте нагрузки. Мы рекомендуем не экономить слишком сильно на процессоре, так как 10 тысяч рублей разницы за ощутимый перевес по ядрам и производительности на ядро — это не такие большие затраты.
  3. Альтернативы (сокет 1200): Рассматривался вариант на сокете 1200, например Intel Core i5-11500. У него 6 ядер, как у i5-12500, но кэш L3 составляет 12 МБ против 18 МБ. Разница в кэше может влиять на быстродействие, особенно при работе с большими объемами информации и сложными вычислениями в базе данных. Чем больше кэш, тем быстрее сервер обрабатывает повторяющиеся запросы.
  4. Серверные процессоры (например, Intel Xeon X-серии): Несмотря на их высокую стоимость (i9-10980XE за 120 тыс. руб. или 12980xe), эти процессоры специально разработаны для параллельных вычислений и имеют значительно больший объем кэша, а также поддержку памяти ECC (о которой мы поговорим ниже). Однако их цена выходит за рамки предложенного бюджета, и для указанной нагрузки они являются избыточными.

Для нашей конфигурации до 10 пользователей, Intel Core i5-12500 или i5-12400 (если он предложит лучшее соотношение цена/производительность) будет оптимальным выбором. Процессор с 4 ядрами может оказаться узким местом при одновременной работе 1С-сервера и SQL-сервера.

Оптимальный объем оперативной памяти (RAM)

Оперативная память — один из наиболее критичных компонентов для SQL Server. СУБД активно использует ОЗУ для кэширования данных, что значительно ускоряет выполнение запросов. При недостатке памяти SQL Server будет чаще обращаться к медленной дисковой подсистеме, что приведет к замедлению работы всей системы 1С.

  1. Рекомендации по объему: Специалисты рекомендуют для SQL Server выделять в два раза больше оперативной памяти, чем весят базы данных. В нашем случае это 14 ГБ * 2 = 28 ГБ. С учетом операционной системы и сервера 1С, мы приходим к минимальному объему в 32 ГБ RAM. Это позволит значительной части баз данных, а лучше — всем самым большим таблицам, размещаться в оперативной памяти.
  2. Двухканальный режим: Использование двух планок памяти вместо одной (например, 2х16 ГБ Kingston FURY Renegade 3200MHz) обеспечивает двухканальный режим работы. Это удваивает пропускную способность памяти, что крайне важно для производительности сервера. Экономия на второй планке приведет к потере производительности.
  3. Память ECC: Если материнская плата и процессор поддерживают, мы настоятельно рекомендуем использовать память с функцией коррекции ошибок (ECC - Error-Correcting Code). Память ECC значительно повышает надежность системы, предотвращая сбои и потерю данных, вызванные случайными ошибками в памяти. Это стандарт для серверного оборудования и критично для стабильной работы СУБД.

Таким образом, мы рекомендуем использовать 2х16 ГБ RAM. Если есть возможность, рассмотрите материнскую плату, которая поддерживает ECC, и соответствующую память, что, однако, обычно требует серверного процессора.

Дисковая подсистема: SSD или NVMe?

Дисковая подсистема является одним из ключевых узких мест для производительности 1С и SQL Server. Скорость доступа к данным и количество операций ввода-вывода в секунду (IOPS) напрямую влияют на скорость формирования отчетов и проведения документов.

  1. Преимущество NVMe: NVMe-накопители значительно превосходят SATA SSD по скорости работы (в 3-7 раз) и IOPS. Они подключаются напрямую к шине PCIe, минуя контроллер SATA, что критично для работы с базами данных. Для баз данных от 50 ГБ и более разница в производительности NVMe становится особенно ощутимой, но даже для 14 ГБ она будет заметна.
  2. RAID-массивы и TRIM: Первоначальное предложение автора — использовать 4 диска Samsung 870 EVO 250Гб в RAID 1 (2 под ОС, 2 под SQL и БД). Однако использование RAID-массивов на потребительских SSD может привести к потере функции TRIM. TRIM необходим для поддержания производительности SSD на оптимальном уровне, сообщая диску, какие блоки данных больше не используются и могут быть очищены. Без TRIM производительность SSD со временем деградирует. Аппаратные RAID-контроллеры не всегда корректно передают команды TRIM операционной системе. Для NVMe-дисков RAID-массивы в большинстве случаев не являются необходимыми ни для ускорения, ни для повышения надёжности, поскольку сами по себе они обладают высокой производительностью и надёжностью.
  3. Рекомендации по дисковой подсистеме:
    • Для системы и баз данных: мы рекомендуем использовать минимум один или два NVMe SSD диска объемом 500 ГБ - 1 ТБ. Например, Samsung 970 PRO или 980 PRO, как было предложено на форуме. Они обеспечивают высокую производительность и надежность. Если материнская плата имеет несколько слотов M.2 NVMe, это упрощает установку. В случае, если слотов недостаточно, существуют платы PCI-Ex4(x8-x16) для размещения NVMe дисков в количестве 2-х или 4-х штук.
    • Для бэкапов: Отдельный жесткий диск SATA-3 объемом 2-8 ТБ, например, WD Blue или WD Red (для большей надежности), будет достаточен для хранения локальных резервных копий.
    • Отказоустойчивость без RAID: Для NVMe SSD гораздо полезнее для повышения отказоустойчивости использовать копирование локальных бэкапов на внешние ресурсы или настроить онлайн-реплику базы данных. В MS SQL есть возможность настроить инкрементальный бэкап каждые 10 минут или непрерывный бэкап журнала транзакций. Это обеспечит высокую степень защиты данных без проблем с TRIM и сложности с RAID на потребительских SSD.

Исходя из этого, вместо четырех SATA SSD в RAID 1, мы бы рекомендовали один или два NVMe SSD для системы и БД, а также отдельный HDD для бэкапов. Если есть желание повысить отказоустойчивость дисковой подсистемы, то лучше использовать два NVMe SSD и настроить на них программный RAID 1 на уровне операционной системы, который обычно поддерживает TRIM, или использовать аппаратный контроллер, который гарантированно поддерживает TRIM для NVMe.

Стратегия резервного копирования

Резервное копирование — это фундамент надежности любой серверной системы. Хранение резервных копий только локально является крайне рискованным.

  1. Многоуровневая стратегия: Мы рекомендуем следующую стратегию:
    • Ежедневные автоматические бэкапы локально: Использование встроенных инструментов SQL Server Management Studio для настройки полного и разностного копирования баз данных по расписанию. Сохраняйте их на отдельный жесткий диск (тот самый WD Blue 2 ТБ).
    • Регулярное копирование на сетевой ресурс: Автоматизируйте процесс копирования локальных бэкапов по сети на другой компьютер или сетевое хранилище (NAS).
    • Ручные бэкапы на внешний жесткий диск: Раз в 2-3 дня выполняйте ручное копирование наиболее критичных бэкапов на внешний жесткий диск, который физически отключается от сервера. Это обеспечивает защиту от кибератак, вирусов-шифровальщиков и сбоев сервера.
  2. Источники питания: Не забывайте про источник бесперебойного питания (UPS) и качественный блок питания для сервера. UPS защитит от перебоев в электросети, которые могут привести к повреждению данных и аппаратного обеспечения.

Как было справедливо отмечено на форуме, если 2 часа простоя не критичны, то RAID может быть и не нужен, а вот надежный бэкап и UPS критически важны.

Надежность, масштабируемость и дополнительные факторы

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

  1. Надежность компонентов: Рабочие станции не предназначены для круглосуточной непрерывной работы (24/7) и не обладают такими компонентами серверного уровня, как серверные материнские платы, процессоры с поддержкой ECC, специализированные контроллеры и более надежные блоки питания. Это повышает риск сбоев и потери данных в долгосрочной перспективе. Серверные компоненты обеспечивают более высокий уровень надежности и отказоустойчивости.
  2. Материнская плата: Выбранная Gigabyte Z690 UD DDR4 (или GIGABYTE Z590 D) должна поддерживать необходимое количество слотов M.2 NVMe для дисков, а также быть совместимой с выбранным процессором и типом памяти. Убедитесь, что она имеет достаточно PCIe линий для всех необходимых устройств, включая потенциальные NVMe-адаптеры.
  3. Лицензирование: Помните, что Microsoft SQL Server и Windows Server лицензируются "на ядро", что может значительно увеличить стоимость владения. Внимательно изучите лицензионные требования для вашей версии SQL Server.
  4. Оптимизация SQL Server: Для производительной работы 1С с SQL Server рекомендуется ряд настроек:
    • Ограничение максимального объема памяти: Установите максимальный объем памяти, используемой SQL Server, чтобы оставить достаточно RAM для операционной системы и сервера 1С.
    • Max Degree of Parallelism (MAXDOP): Установите параметр MAXDOP в значение "1". 1С не рассчитана на распараллеливание запросов внутри СУБД, и это значение часто помогает избежать проблем с производительностью.
  5. Мониторинг: Регулярный мониторинг производительности сервера и базы данных (например, через SQL Server Management Studio или сторонние утилиты) позволяет своевременно выявлять "узкие места", оптимизировать запросы и предотвращать проблемы.
  6. Версии ПО: Рекомендуется использовать последние версии SQL Server и платформы 1С, так как в них исправляют ошибки, оптимизируют механизмы и улучшают производительность.

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

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

← На главную