Как оценить и оптимизировать производительность 1С на KVM, VMware, Hyper-V и аппаратном сервере?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

Производительность системы 1С является критически важным аспектом для эффективной работы любого предприятия. При планировании или модернизации инфраструктуры часто возникает вопрос: что выбрать – физический сервер или виртуальную среду? И если виртуальную, то какой из популярных гипервизоров покажет наилучшие результаты? В этой статье мы подробно разберем основные подходы к тестированию производительности 1С, сравним опыт использования различных платформ виртуализации (KVM, VMware ESXi, Hyper-V) и аппаратных серверов, а также предоставим практические рекомендации по их оптимизации.

Основные методологии тестирования производительности 1С

Для получения объективной и полной картины производительности 1С мы можем использовать различные методы. Каждый из них имеет свои особенности, преимущества и области применения. Рассмотрим наиболее популярные и эффективные из них.

  1. Тест Гилева (ТРС-1С)

    Тест Гилева, известный также как ТРС-1С (Тест Производительности и Стабильности), является широко признанным интегральным тестом, который помогает оценить скорость работы процессора и общую производительность системы 1С в однопоточном режиме. Он предоставляет обобщенный результат, который, как показывает практика, сильно зависит от множества факторов, таких как частота процессора, количество сокетов, настройки СУБД и операционной системы.

    Тест Гилева особенно ценен для диагностики узких мест в системе. Он способен выявить следующие потенциальные проблемы:

    • Неправильные схемы электропитания, установленные в операционной системе, которые могут ограничивать тактовую частоту процессора.
    • Активная служба Dynamic Fair Share Scheduling (DFSS) в Windows Server, замедляющая работу на терминальных серверах.
    • Проблемы с использованием Shared Memory для эффективного взаимодействия между сервером 1С и СУБД.
    • Некорректные настройки памяти и сокетов на сервере.
    • Ошибки в работе планок оперативной памяти, влияющие на общую стабильность и производительность.
    • Проблемы в работе кластера 1С, вызывающие задержки и снижение скорости.

    На практике многие специалисты отмечают тесную и прямую зависимость результатов Теста Гилева от показателей однопоточной производительности процессора, которую можно измерить с помощью CPU Benchmark singleThread, и скорости дисковой подсистемы, оцениваемой CrystalDiskMark. Используя эти три инструмента в комплексе, мы можем получить довольно точную и всестороннюю картину производительности системы.

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

  2. APDEX (Application Performance Index)

    APDEX – это международный стандарт для оценки уровня удовлетворенности пользователей производительностью информационных систем. Фирма 1С официально рекомендует этот стандарт для оценки производительности, поскольку он фокусируется на пользовательском восприятии времени отклика системы. Основная идея APDEX заключается в измерении времени отклика с точки зрения пользователя.

    Для эффективного использования APDEX нам необходимо выполнить следующие шаги:

    1. Мы должны выбрать ключевые операции, которые наиболее часто выполняются пользователями и имеют критическое значение для бизнес-процессов. Это могут быть, например, проведение документов, формирование объемных отчетов или выполнение сложных расчетов.
    2. Нам следует определить целевое время выполнения (T) для каждой из выбранных операций. Это время, которое считается полностью приемлемым для пользователя и не вызывает дискомфорта.
    3. Мы также должны рассчитать терпимое время (4T). Это время, в пределах которого пользователь готов ждать завершения операции, но уже с определенной степенью неудовлетворенности или раздражения.

    Оценка APDEX рассчитывается на основе общего количества выполнений операций, числа выполнений в допустимое время (меньше или равно T) и числа выполнений в терпимое время (от T до 4T). Итоговый результат APDEX варьируется от 0 до 1, где значение 1 означает замечательный результат (полную удовлетворенность пользователей), а 0 – неудовлетворительный. Этот подход позволяет формализовать требования заказчика к производительности и эффективно контролировать динамику производительности системы с течением времени.

    Важно отметить, что некоторые исследователи используют методику APDEX без явного указания целевых показателей (T и 4T), основываясь лишь на средних значениях времени выполнения операций. Однако такой подход может быть менее объективным, поскольку он теряет прямую связь с удовлетворенностью пользователей и не позволяет в полной мере учесть их восприятие скорости работы системы.

  3. Тест-Центр 1С ERP

    Для комплексного и масштабного нагрузочного тестирования сложных информационных систем на платформе 1С:Предприятие 8 мы можем эффективно использовать Тест-Центр, который входит в состав конфигурации 1С:ERP Управление предприятием. Этот мощный программный комплекс предоставляет широкие возможности для автоматизации тестирования:

    • Мы можем разрабатывать сложные сценарии тестирования, которые максимально точно имитируют реальную работу множества пользователей.
    • Нам доступен запуск этих сценариев как вручную, так и в автоматическом режиме, что позволяет проводить регулярные тесты.
    • Мы способны проверять работоспособность отдельных модулей, подсистем и компонентов системы под нагрузкой.
    • Тест-Центр позволяет нам исследовать производительность и масштабируемость всей системы под различными видами нагрузок и с изменяющимся количеством пользователей.
    • Особенно ценной является возможность имитации многопользовательской активности, что критически важно для крупных внедрений, где требуется поддержка сотен и даже тысяч пользователей (например, 100, 300, 500, 1000 одновременных пользователей).

    Проведение тестирования с помощью Тест-Центра ERP, особенно на крупной, реальной базе данных (например, терабайтной базе с нормальными оборотами) и с высоким количеством имитируемых пользователей, является наиболее репрезентативным способом оценки производительности в условиях, максимально приближенных к боевым.

Сравнение и оптимизация производительности 1С на виртуальных и аппаратных серверах

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

Проблемы с производительностью в виртуальных средах чаще всего возникают из-за нехватки ключевых ресурсов: процессора (CPU), оперативной памяти (RAM) или дискового ввода-вывода (IOPS). Также могут возникать сложности из-за ошибок в работе самого гипервизора, например, при некорректной работе с CPU-шедулером.

Общие рекомендации по оптимизации производительности 1С на виртуальных машинах:

  1. Оптимизация Процессора (CPU):

    • Частота важнее ядер: Мы должны помнить, что 1С сильно зависит от скорости процессора, поскольку многие операции в системе выполняются последовательно и не всегда эффективно распределяются на множество ядер. Таким образом, высокая тактовая частота процессора является одним из самых критичных параметров для производительности 1С.
    • Количество сокетов: Наилучшие результаты обычно достигаются при использовании одного сокета. Увеличение числа сокетов может приводить к снижению общих показателей производительности из-за дополнительных накладных расходов, связанных с архитектурой NUMA и межпроцессорным взаимодействием.
    • NUMA: Если на сервере виртуализации все виртуальные машины по числу ядер процессора и объему оперативной памяти умещаются в одну NUMA-ноду, то правильные настройки NUMA могут быть применимы и способствовать дополнительной оптимизации производительности.
  2. Оптимизация Оперативной Памяти (RAM):

    • Приоритет ресурсов: Мы рекомендуем увеличивать приоритет выделяемых ресурсов оперативной памяти для виртуальных машин, на которых работает 1С. Например, в VMware ESXi это достигается установкой опции "Вес памяти" на значение "Высокая".
    • Отключение динамической памяти: Для критически важных систем 1С, где стабильная производительность имеет первостепенное значение, рекомендуется отключать функцию динамической памяти и выделять фиксированный объем RAM. Это предотвратит колебания производительности.
    • Избегаем лимитов: Мы не должны устанавливать жесткие лимиты на выделяемые ресурсы RAM, чтобы не ограничивать работу 1С и СУБД, которые могут требовать значительных объемов памяти.
  3. Оптимизация Дисковой Подсистемы (IOPS):

    • SSD-накопители: Использование высокопроизводительных SSD-накопителей является абсолютным требованием для современных и высокопроизводительных систем 1С. Они значительно увеличивают скорость операций ввода-вывода, что критично для баз данных.
    • Блочное устройство вместо файловых образов: Для виртуальных машин, особенно в крупных организациях, имеющих отдельные стораджи, предпочтительнее подключать блочное устройство (например, по iSCSI или напрямую через Fibre Channel), а не использовать файловые образы дисков (такие как qcow2). Это позволяет избежать дополнительных накладных расходов файловой системы гипервизора и повысить стабильность.
    • Управление кэшированием диска:
      • Для виртуальных дисков в Proxmox VE и аналогичных KVM-системах можно использовать формат qcow2 для динамического расширения. Кэширование диска в режиме write back может повысить производительность, однако мы должны быть осведомлены, что это связано с высоким риском потери данных при внезапном сбое гипервизора.
      • Критически важно: Мы настоятельно рекомендуем отключать кэширование на томах, где расположены базы данных 1С и журналы транзакций SQL. Хотя журналы SQL по своей природе пишутся без кэширования на уровне СУБД, гипервизор может иметь свой собственный кэш, что ставит под угрозу целостность базы данных при сбоях питания или авариях гипервизора.
  4. Настройки Операционной Системы (Windows):

    • План электропитания: В Windows Server мы должны выбрать план электропитания "Высокая производительность" и установить минимальное состояние процессора на 100%. Это гарантирует, что процессор всегда работает на максимальной частоте.
    • Dynamic Fair Share Scheduling (DFSS): Мы должны отключить службу DFSS в Windows Server. Эта служба может негативно влиять на производительность, особенно на терминальных серверах, замедляя работу 1С.
    • Служба Hyper-V: Мы должны убедиться, что служба Hyper-V не установлена на гостевой Windows ВМ, чтобы избежать потенциальных конфликтов и снижения производительности.
    • Антивирусное ПО: Мы рекомендуем полностью отключать антивирусное ПО или, как минимум, настраивать исключения для всех папок, где расположены файлы базы 1С, файлы СУБД и временные файлы, используемые 1С.
    • Файл подкачки: При достаточном объеме оперативной памяти (например, 64 ГБ и более) файл подкачки можно отключить. В противном случае мы рекомендуем устанавливать его фиксированный размер в 1.5 объема RAM.
  5. Настройки BIOS/UEFI:

    • Технологии ускорения: Мы должны убедиться, что технологии Turbo Boost (для Intel) или Turbo Core (для AMD) включены в BIOS/UEFI. Это позволит процессору работать на максимальных частотах при пиковых нагрузках.
    • Энергосберегающие функции: Мы рекомендуем отключать энергосберегающие функции, такие как Intel SpeedStep/AMD Cool'n'Quiet и C-States/C1E. Хотя они экономят электроэнергию, они могут приводить к снижению производительности процессора в моменты пиковой нагрузки.
  6. Разделение ролей:

    Для достижения максимальной производительности в клиент-серверной архитектуре мы настоятельно рекомендуем разделять серверные роли по отдельным виртуальным машинам или физическим серверам:

    • Сервер базы данных (MS SQL Server, PostgreSQL).
    • Сервер приложений 1С.
    • Терминальный сервер для пользователей.
    • Отдельная машина для выполнения фоновых задач и регламентных операций.

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

Специфика гипервизоров: KVM, VMware ESXi, Hyper-V, Proxmox VE

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

Влияние версии платформы 1С и других факторов

Обновления платформы 1С могут оказывать существенное влияние на скорость работы системы, и нам важно отслеживать эти изменения и их последствия:

Работа с большими базами данных 1С

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

  1. Оптимизация структуры БД:

    • Мы должны активно использовать индексы для ускорения выполнения запросов к базе данных. Правильно построенные индексы могут значительно сократить время выполнения операций.
    • Мы можем рассмотреть возможность разделения базы данных на части (партиционирование) или архивирования старых, редко используемых данных. Это уменьшит объем активной базы и ускорит работу с актуальной информацией.
  2. Настройки 1С:

    • Если это возможно, мы можем использовать режим "Только чтение" для формирования объемных отчетов, чтобы снизить нагрузку на базу данных и избежать блокировок.
    • Мы должны тщательно настраивать механизмы кэширования данных в 1С, чтобы минимизировать количество обращений к СУБД.
    • Для фоновых и ресурсоемких задач мы можем применять механизмы распределенной обработки, чтобы они не мешали интерактивной работе пользователей.
  3. Серверные решения:

    • Мы должны понимать, что клиент-серверная архитектура с мощной СУБД (Microsoft SQL Server или PostgreSQL) является обязательной при работе с 4 и более пользователями или при больших объемах данных. Переход с файлового режима на клиент-серверный может ускорить работу в 5-10 раз.
  4. Мониторинг производительности:

    Регулярный и всесторонний мониторинг производительности критически важен. Мы должны отслеживать следующие параметры, чтобы оперативно выявлять узкие места:

    • Загрузка CPU, оперативной памяти и дисковой подсистемы.
    • Длительность выполнения SQL-запросов и выявление "медленных" запросов.
    • Количество и тип блокировок в СУБД, которые могут замедлять работу пользователей.

Заключение

Оценка и оптимизация производительности 1С на виртуальных и аппаратных серверах – это сложный, многогранный и непрерывный процесс. Мы видим, что нет единого "лучшего" гипервизора или "серебряной пули", и различия в производительности между хорошо настроенными виртуальными средами и физическим сервером часто выражаются в процентах, а не в порядках. Ключевыми факторами успеха, которые мы должны учитывать, являются:

  1. Правильно выбранная и тщательно настроенная методология тестирования, учитывающая реальные нагрузки и бизнес-процессы.
  2. Оптимальная настройка аппаратных ресурсов (CPU, RAM, дисковая подсистема) и параметров самого гипервизора.
  3. Тщательная настройка гостевой операционной системы и СУБД.
  4. Глубокое понимание влияния версии платформы 1С и особенностей конфигурации.

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

← На главную