|
Исследование падения производительности связки 1С-Предприятие 8.3 + SQL-Server при виртуализации
На текущий момент процесс виртуализации серверов идет, как говорили незабвенные классики, «стремительным домкратом». И на первый взгляд все выглядит очень даже в радужном свете. Куда ни посмотри, везде сплошные плюсы:
- Экономия на стоимости оборудования (нет необходимости покупать отдельное железо для каждого сервера, если все сервера можно разместить в компактном кластере серверов).
- Экономия объема серверного помещения, потребляемого электричества и снижение тепловыделения.
- Улучшения с точки зрения безопасности серверов.
- Простота администрирования и обслуживания.
- Моментальное восстановление в случае сбоя.
Тем не менее следует заметить, что функционирование виртуальной машины представляет собой «машину в машине», а значит априори имеет место более длительная очередь команд, чем в обычном случае и можно высказать предположение, что функционал, работающий внутри виртуальной машины будет работать несколько медленнее, чем непосредственно на физическом оборудовании машины, являющейся хост-системой. По крайней мере обычная логика убеждает нас в этом.
Вопрос заключается в том, насколько медленнее происходит работа алгоритма «при прочих равных условиях». При такой поставке вопроса большинство специалистов по виртуализации не могут дать точного ответа на вопрос. Звучат встречные вопросы:
- а какая система будет работать?
- а какая будет загрузка?
- сколько будет виртуальных машин?
И много-много других. Но данные вопросы лишь усложняют сравнение. Нельзя провести сравнение серверов, если они отличаются по множеству параметров. Ответом на вопрос будет результат сравнения, действительный только для этих двух серверов с оглядкой на конкретно эти условия тестирования.
Если задавать более точный вопрос: «Сколько ресурсов потребляет сама виртуальная среда, сколько от производительности виртуальной машины она отнимает», то в данном случае обычно звучит ответ, что не более 5-10%. На чем основываются такие показатели не ясно, так как никаких статей более или менее подробно раскрывающих данный вопрос мне найти не удалось. Предполагаю, что эти цифры взяты из рекламных буклетов продуктов виртуализации. В некоторых случаях даже оказывается, что виртуальная машина работает даже быстрее своего физического прототипа, что звучит по меньшей мере спорно.
Не пытаясь объять необъятное и впихнуть невпихуемое, попытаюсь найти ответ на конкретный вопрос: какова будет разница в длительности выполнения операций в связке 1С-Предприятие 8.3 (толстый клиент) + MS SQL-Server 2014 .
Ну и поскольку у нас есть еще одна вызывающая множество вопросов технология, а именно гипертрединг (Hyper Threading ), решено было количество тестов увеличить в два раза и провести замеры в каждом из режимов вкл/выкл как на физической, так и на виртуальной машине. Посмотрим будет ли какая-то разница, и в какую сторону.
Список тестовых условий следующий:
- Сравнивается физическая машина с виртуальной машиной, развернутой на этой же физической машине.
- Виртуальная машина взята одна из многообразия существующих: «
VMWare Workstation 12 ». Выбрана, так как системы этого бренда, пожалуй, наиболее на слуху. Одна, потому что и так объем работы очень большой, кто может – пусть сделает больше.
- Используется тест, имитирующий работу связки
1С+SQL в однопоточном режиме (один пользователь), выполняющий пять последовательных действий с базой данных:
- Создание большого (200 000) количества элементов справочников сложной структуры без транзакции
- То же самое, но в транзакции
- Создание большого (15 000) количества документов и их проведение (неоперативное)
- Перепроведение всех созданных документов
- Выполнение запросов к существующим данным.
Данный тест уже проводился мной ранее и подробнее описан в статье. В отличие от предыдущего, где тест выполнялся на платформе 8.2, данный тест проводился на платформе 8.3. Конфигурация была конвертирована, при этом алгоритмы не поменялись. Железо в этом тесте будет другое, поэтому прямое сравнение не работает.
- Для обеспечения максимальной идентичности систем и в целях обеспечения независимости тестирования каждая тестовая среда будет одинаковым образом настроена.
Требования к функционалу тестов по памяти системы выбраны таким образом, чтобы к моменту окончания тестов свободная память в диспетчере задач была не менее 2 Гб.
Аппаратное обеспечение:
- Процессор Core i5-3317U (ноутбук).
- Память 16 Гб.
- SSD диск.
Настройки Windows:
- Отключен антивирус и фаерволл.
- Тестирование производится при отключенных сетевых интерфейсах (физически выдернут кабель, поскольку всем известна любовь Windows-10 к внезапному скачиванию и установке обновлений.
- В системе включен режим максимальной производительности.
Настройки 1С :
- Кластер серверов без дополнительных настроек.
- В главном меню «Администрирование базы» в настройках журнала регистрации выбран уровень «не регистрировать».
Настройки SQL :
- В свойствах базы данных выбран режим логирования «Simple».
Настройки VMWare Workstation :
- Включены и используются технологии виртуализации
Intel VT-X , Intel VT-D , EPT .
- Используется статическое резервирование дискового пространства для виртуальной машины.
Порядок выполнения тестирования:
Тест физической машины | Тест виртуальной машины |
Включить физическую машину |
X | Включить виртуальную машину |
Загрузить базу данных из файла DT |
Выполнить в SQL «shrink database» |
Выполнить оптимизацию SSD |
Ждать 30 минут |
X | Выключить виртуальную машину |
Перезагрузка |
Ждать 30 минут |
X | Включить виртуальную машину |
Ждать 30 минут |
Открыть 1С-Предприятие |
Ждать 5 минут |
Запустить тест |
Свернуть все окна и дождаться завершения |
Сохранить результаты в текстовый файл |
X | Выключить виртуальную машину |
Выключить физическую машину |
Как можно видеть из таблицы, порядок тестирования предполагает полностью равные начальные условия для тестов. Учтено электропитание, отложенный запуск программ в Windows, одинаковые стартовые условия с точки зрения температурного режима системы, время для самостоятельного восстановления производительности SSD и принудительная оптимизация SSD.
Всего было выполнено по три теста, результаты тестов усреднены. Полученные результаты сведены в общую таблицу:
№ действия теста |
Физический сервер |
Виртуальный сервер |
Без гипертрединга |
С гипертредингом |
Без гипертрединга |
С гипертредингом |
1 |
2 |
3 |
Среднее |
1 |
2 |
3 |
Среднее |
1 |
2 |
3 |
Среднее |
1 |
2 |
3 |
Среднее |
|
Итого: |
2:46:46 |
|
2:50:01 |
|
3:44:23 |
|
3:48:46 |
1 |
0:35:01 |
0:35:01 |
0:35:08 |
0:35:03 |
0:38:17 |
0:38:59 |
0:37:36 |
0:38:17 |
0:55:23 |
0:49:03 |
0:50:00 |
0:51:29 |
0:55:44 |
0:57:49 |
0:56:59 |
0:56:51 |
2 |
0:17:17 |
0:17:21 |
0:17:25 |
0:17:21 |
0:18:45 |
0:18:08 |
0:18:11 |
0:18:21 |
0:28:42 |
0:25:44 |
0:25:55 |
0:26:47 |
0:27:48 |
0:29:59 |
0:30:27 |
0:29:25 |
3 |
0:36:54 |
0:36:55 |
0:36:49 |
0:36:53 |
0:37:02 |
0:37:25 |
0:36:50 |
0:37:06 |
0:50:55 |
0:57:07 |
0:55:25 |
0:54:29 |
0:49:14 |
0:51:39 |
0:49:52 |
0:50:15 |
4 |
0:08:26 |
0:08:11 |
0:08:08 |
0:08:15 |
0:08:27 |
0:08:26 |
0:08:14 |
0:08:22 |
0:11:22 |
0:10:02 |
0:10:36 |
0:10:40 |
0:10:28 |
0:10:53 |
0:10:52 |
0:10:44 |
5 |
1:11:08 |
1:08:32 |
1:08:03 |
1:09:14 |
1:08:39 |
1:07:49 |
1:07:16 |
1:07:55 |
1:24:02 |
1:19:41 |
1:19:13 |
1:20:59 |
1:21:07 |
1:22:54 |
1:20:34 |
1:21:32 |
Как можно видеть из таблицы, результаты получились достаточно интересные.
Во-первых, гипертрединг. При включенной технологии гипертрединга наблюдалось стабильное незначительное замедление времени прохождения теста. Среднее общее время как в режиме физической машины, так и в режиме виртуальной, с включенным гипертредингом всегда больше, чем с отключенным.
Во вторую очередь рассмотрим замедление на виртуальной машине. Как можно видеть в таблице, оно не укладывается в рамки 5-15%, как любят указывать в рекламных буклетах. В реальности произошло замедление выполнения тестов на виртуальной машине на 34,5%.
Выводы можно сделать самостоятельно.
|