При решении задачи по развертыванию сервера 1С и SQL Server, особенно когда бюджет ограничен, а время простоя является критичным, многие администраторы рассматривают вариант использования рабочей станции. Это обусловлено высокой стоимостью специализированных серверов, доступностью запчастей для обычных ПК и относительно невысокой начальной нагрузкой. Давайте подробно рассмотрим, как подойти к выбору и настройке такой системы, учитывая все нюансы, которые обсуждались на форуме.
Прежде чем выбирать конкретные компоненты, нам необходимо четко определить текущие и потенциальные требования к серверу. В нашем случае мы имеем:
Эти параметры будут отправной точкой для выбора каждого компонента.
Для связки 1С и SQL Server критичен баланс между высокой тактовой частотой ядра и достаточным количеством ядер. Многие операции в 1С носят последовательный характер и выигрывают от высокой частоты одного ядра, в то время как СУБД может эффективно использовать параллелизм нескольких ядер.
Рассмотрим предложенные варианты и рекомендации:
Intel Xeon или AMD EPYC). Объем кэш-памяти (особенно L3) также важен, поскольку больший кэш ускоряет обработку повторяющихся запросов к базе данных. У i5-12500 он составляет 18 МБ.Intel Core i5-11500. У него 6 ядер, как у i5-12500, но кэш L3 составляет 12 МБ против 18 МБ. Разница в кэше может влиять на быстродействие, особенно при работе с большими объемами информации и сложными вычислениями в базе данных. Чем больше кэш, тем быстрее сервер обрабатывает повторяющиеся запросы.i9-10980XE за 120 тыс. руб. или 12980xe), эти процессоры специально разработаны для параллельных вычислений и имеют значительно больший объем кэша, а также поддержку памяти ECC (о которой мы поговорим ниже). Однако их цена выходит за рамки предложенного бюджета, и для указанной нагрузки они являются избыточными.Для нашей конфигурации до 10 пользователей, Intel Core i5-12500 или i5-12400 (если он предложит лучшее соотношение цена/производительность) будет оптимальным выбором. Процессор с 4 ядрами может оказаться узким местом при одновременной работе 1С-сервера и SQL-сервера.
Оперативная память — один из наиболее критичных компонентов для SQL Server. СУБД активно использует ОЗУ для кэширования данных, что значительно ускоряет выполнение запросов. При недостатке памяти SQL Server будет чаще обращаться к медленной дисковой подсистеме, что приведет к замедлению работы всей системы 1С.
ECC - Error-Correcting Code). Память ECC значительно повышает надежность системы, предотвращая сбои и потерю данных, вызванные случайными ошибками в памяти. Это стандарт для серверного оборудования и критично для стабильной работы СУБД.Таким образом, мы рекомендуем использовать 2х16 ГБ RAM. Если есть возможность, рассмотрите материнскую плату, которая поддерживает ECC, и соответствующую память, что, однако, обычно требует серверного процессора.
Дисковая подсистема является одним из ключевых узких мест для производительности 1С и SQL Server. Скорость доступа к данным и количество операций ввода-вывода в секунду (IOPS) напрямую влияют на скорость формирования отчетов и проведения документов.
NVMe-накопители значительно превосходят SATA SSD по скорости работы (в 3-7 раз) и IOPS. Они подключаются напрямую к шине PCIe, минуя контроллер SATA, что критично для работы с базами данных. Для баз данных от 50 ГБ и более разница в производительности NVMe становится особенно ощутимой, но даже для 14 ГБ она будет заметна.Samsung 870 EVO 250Гб в RAID 1 (2 под ОС, 2 под SQL и БД). Однако использование RAID-массивов на потребительских SSD может привести к потере функции TRIM. TRIM необходим для поддержания производительности SSD на оптимальном уровне, сообщая диску, какие блоки данных больше не используются и могут быть очищены. Без TRIM производительность SSD со временем деградирует. Аппаратные RAID-контроллеры не всегда корректно передают команды TRIM операционной системе. Для NVMe-дисков RAID-массивы в большинстве случаев не являются необходимыми ни для ускорения, ни для повышения надёжности, поскольку сами по себе они обладают высокой производительностью и надёжностью.Samsung 970 PRO или 980 PRO, как было предложено на форуме. Они обеспечивают высокую производительность и надежность. Если материнская плата имеет несколько слотов M.2 NVMe, это упрощает установку. В случае, если слотов недостаточно, существуют платы PCI-Ex4(x8-x16) для размещения NVMe дисков в количестве 2-х или 4-х штук.WD Blue или WD Red (для большей надежности), будет достаточен для хранения локальных резервных копий.NVMe SSD гораздо полезнее для повышения отказоустойчивости использовать копирование локальных бэкапов на внешние ресурсы или настроить онлайн-реплику базы данных. В MS SQL есть возможность настроить инкрементальный бэкап каждые 10 минут или непрерывный бэкап журнала транзакций. Это обеспечит высокую степень защиты данных без проблем с TRIM и сложности с RAID на потребительских SSD.Исходя из этого, вместо четырех SATA SSD в RAID 1, мы бы рекомендовали один или два NVMe SSD для системы и БД, а также отдельный HDD для бэкапов. Если есть желание повысить отказоустойчивость дисковой подсистемы, то лучше использовать два NVMe SSD и настроить на них программный RAID 1 на уровне операционной системы, который обычно поддерживает TRIM, или использовать аппаратный контроллер, который гарантированно поддерживает TRIM для NVMe.
Резервное копирование — это фундамент надежности любой серверной системы. Хранение резервных копий только локально является крайне рискованным.
SQL Server Management Studio для настройки полного и разностного копирования баз данных по расписанию. Сохраняйте их на отдельный жесткий диск (тот самый WD Blue 2 ТБ).UPS защитит от перебоев в электросети, которые могут привести к повреждению данных и аппаратного обеспечения.Как было справедливо отмечено на форуме, если 2 часа простоя не критичны, то RAID может быть и не нужен, а вот надежный бэкап и UPS критически важны.
Использование рабочей станции в качестве сервера — это компромисс. Мы должны четко понимать ограничения и учитывать их.
ECC, специализированные контроллеры и более надежные блоки питания. Это повышает риск сбоев и потери данных в долгосрочной перспективе. Серверные компоненты обеспечивают более высокий уровень надежности и отказоустойчивости.Gigabyte Z690 UD DDR4 (или GIGABYTE Z590 D) должна поддерживать необходимое количество слотов M.2 NVMe для дисков, а также быть совместимой с выбранным процессором и типом памяти. Убедитесь, что она имеет достаточно PCIe линий для всех необходимых устройств, включая потенциальные NVMe-адаптеры.Microsoft SQL Server и Windows Server лицензируются "на ядро", что может значительно увеличить стоимость владения. Внимательно изучите лицензионные требования для вашей версии SQL Server.SQL Server рекомендуется ряд настроек:
SQL Server, чтобы оставить достаточно RAM для операционной системы и сервера 1С.MAXDOP в значение "1". 1С не рассчитана на распараллеливание запросов внутри СУБД, и это значение часто помогает избежать проблем с производительностью.SQL Server Management Studio или сторонние утилиты) позволяет своевременно выявлять "узкие места", оптимизировать запросы и предотвращать проблемы.SQL Server и платформы 1С, так как в них исправляют ошибки, оптимизируют механизмы и улучшают производительность.Несмотря на то, что для малого и среднего бизнеса с небольшим количеством пользователей один сервер, совмещающий сервер приложений 1С и сервер СУБД, является оптимальным решением, при росте нагрузки мы всегда рассматриваем разделение ролей на отдельные физические или виртуальные серверы.
Таким образом, мы видим, что подход с рабочей станцией в качестве сервера для 1С и SQL при определенных условиях вполне жизнеспособен, но требует тщательного подбора компонентов и правильной настройки, чтобы обеспечить достаточную производительность и, главное, надежность данных.