Мы сталкиваемся с распространенной проблемой: мощное серверное оборудование, предназначенное для высокой производительности, по факту демонстрирует крайне низкие показатели в специализированных тестах, таких как тест Гилева для 1С. В данной ситуации речь идет о сервере Dell с двумя процессорами Xeon E5-2667v4, 192 ГБ оперативной памяти DDR4 и быстрой дисковой подсистемой на SSD, где был установлен Windows 2019 Standart, MS SQL Server 2019 и Сервер 1С предприятия. Несмотря на эти впечатляющие характеристики, тест Гилева изначально показывал всего 13 баллов, что, несомненно, является удручающим результатом. Давайте вместе разберем, как мы можем значительно поднять производительность такого сервера.
Первое, на что мы обращаем внимание при анализе этой ситуации, — это замер производительности контура 1С и поиск узких мест, а именно поведение процессоров во время нагрузочного теста. При запуске теста Гилева процессоры загружены всего на 1% и работают на крайне низкой частоте — 1.1-1.2 ГГц. Это происходит, даже если в операционной системе Windows включен режим высокой производительности и процессоры в других задачах могут нормально буститься до своих максимальных частот. Такая картина однозначно указывает на активные механизмы энергосбережения, которые мешают процессорам выйти на полную мощность. Мы видим, что сервер не использует свой потенциал, находясь в режиме ожидания или минимального потребления энергии.
Нагрузочный тест Гилева, как мы знаем, является преимущественно однопоточным тестом. Это означает, что для его результата наиболее значимой характеристикой процессора является не количество ядер, а его тактовая частота. Низкая частота процессора во время теста Гилева является прямым индикатором того, что активные режимы энергосбережения препятствуют процессору работать на полную мощность. Мы должны устранить эти барьеры, чтобы 1С мог использовать все доступные ресурсы CPU.
Как показал опыт, самые значительные улучшения производительности в данном случае были достигнуты именно через изменение настроек BIOS сервера. Мы обнаружили, что стандартные настройки электропитания операционной системы Windows практически не влияют на проблему, в то время как настройки BIOS имеют критическое значение. Мы будем целенаправленно отключать все режимы энергосбережения процессора, чтобы гарантировать его работу на максимальной частоте.
L1 Power Management эта шина может переходить в состояние пониженного энергопотребления. Мы должны перевести этот параметр в положение Disable. Отключение этого режима гарантирует, что QPI Link всегда будет работать на полной мощности, минимизируя задержки при обмене данными между компонентами системы.System Profile - Perfomance (или аналогичный, например, "Maximum Performance") предназначен для достижения максимальной производительности ценой повышенного энергопотребления. Этот профиль автоматически изменяет множество других параметров BIOS, таких как частоты шин, тайминги памяти и режимы работы процессора, чтобы обеспечить наилучшую производительность. Мы обязательно должны выбрать этот профиль.Помимо указанных выше параметров, мы рекомендуем дополнительно проверить и отключить все остальные режимы энергосбережения процессора, которые могут присутствовать в BIOS вашего сервера. К ним относятся:
Turbo Boost (или ее аналог для AMD) включена. Она позволяет процессору временно превышать свою базовую тактовую частоту при наличии достаточного запаса по тепловыделению и энергопотреблению, что крайне важно для однопоточных нагрузок 1С.Для серверов Dell PowerEdge, как и для нашего кейса, существуют также специальные профили, такие как Database Optimized Performance Profile. Мы можем исследовать эти профили, так как они автоматически настраивают множество параметров BIOS для оптимизации работы с базами данных, включая потенциальное отключение технологий виртуализации и x2APIC в некоторых случаях. Однако, если виртуализация или x2APIC необходимы для других задач, мы сможем включить их после применения профиля. Также мы рекомендуем отключить в BIOS все неиспользуемые интегрированные устройства (например, неиспользуемые сетевые карты, COM-порты, SATA-контроллеры), что может немного снизить накладные расходы на инициализацию и управление оборудованием.
Хотя мы выяснили, что настройки BIOS имеют первостепенное значение, мы все равно должны убедиться, что операционная система Windows Server также настроена на максимальную производительность. Мы проверим следующие параметры:
После того как мы обеспечили максимальную производительность аппаратной части, нам необходимо тонко настроить MS SQL Server, который является основой для работы 1С. Эти настройки помогут SQL Server более эффективно обрабатывать запросы от 1С:Предприятия.
Max Degree of Parallelism (MDOP). Для конфигураций 1С:Предприятия часто оптимальным значением является 1. Мы должны понимать, что платформа 1С не предназначена для распараллеливания запросов внутри СУБД в полной мере. Установка MDOP в 1 предотвращает SQL Server от попыток распараллелить выполнение одного запроса на несколько ядер, что в контексте 1С часто приводит к накладным расходам на синхронизацию, которые могут превысить любой потенциальный выигрыш от параллельной обработки. Таким образом, мы избегаем ненужных задержек и обеспечиваем более предсказуемую производительность для 1С-нагрузки.rphost (рабочий процесс сервера 1С). Таким образом, если на сервере 192 ГБ ОЗУ, а 1С использует, допустим, 8 rphost процессов, мы оставим 4 ГБ для ОС + 8 * 1.5 ГБ = 12 ГБ для 1С, итого 16 ГБ. Тогда для SQL Server мы установим лимит в 192 - 16 = 176 ГБ.Shared Memory включен в клиентских протоколах SQL Server Configuration Manager. Это самый быстрый способ подключения, так как данные передаются через оперативную память, минуя медленные сетевые интерфейсы и связанные с ними накладные расходы.Lock pages in memory в групповых политиках для учетной записи службы SQL Server..mdf, .ndf) и журналов транзакций (.ldf). Слишком малый размер (например, 1 МБ или 10% от текущего размера) приводит к частым операциям расширения, которые замедляют работу SQL Server, поэтому полезно использовать SQL Базомер для анализа дискового пространства. Рекомендуется устанавливать фиксированный размер, например, 200 МБ для файлов данных и 50 МБ для логов, или даже большие значения (от 512 МБ до 5 ГБ в зависимости от общего размера базы и скорости роста), чтобы минимизировать количество этих операций.REBUILD/REORGANIZE INDEX), обновление статистики (UPDATE STATISTICS), очистку кэша процедур (команда DBCC FREEPROCCACHE может быть полезной в некоторых случаях, но применять ее нужно осторожно) и, конечно же, регулярное резервное копирование. Эти задачи поддерживают базу данных в оптимальном состоянии.TempDB. Для максимальной производительности мы рекомендуем выделить TempDB на отдельный, максимально быстрый диск (если возможно). Кроме того, мы должны обеспечить достаточное количество файлов для TempDB – общая рекомендация составляет 1 файл на каждое логическое ядро процессора, но не более 8 файлов. Это помогает избежать узких мест (Latch Contention) при интенсивной работе с временными таблицами.ALLOW_SNAPSHOT_ISOLATION ON и READ_COMMITTED_SNAPSHOT ON для баз данных 1С. Эти режимы позволяют читающим запросам не блокировать пишущие запросы, что значительно уменьшает ожидания на блокировках чтения и повышает общую отзывчивость системы при высокой конкуренции.Помимо аппаратных и СУБД-специфичных настроек, мы должны учитывать и другие факторы, влияющие на производительность всей системы 1С:Предприятия.
Мы видим, что ускорение сервера 1С:Предприятия — это комплексная задача, требующая внимания к множеству аспектов. Однако, как показал наш опыт, ключевым фактором, который может дать немедленный и значительный прирост производительности, является правильная настройка BIOS сервера, направленная на отключение всех режимов энергосбережения процессора. После устранения этого основного препятствия, мы можем приступать к тонкой настройке операционной системы и MS SQL Server. Комплексный подход, начиная с "железа" и заканчивая настройками СУБД и самой конфигурации 1С, позволит нам добиться максимальной эффективности от вашей системы и значительно повысить комфорт работы пользователей.