Тест гилева как установить
Как мы проверяли производительность новых процессоров в облаке для 1С по тесту Гилёва
Америку не откроем, если скажем, что виртуальные машины на новых процессорах всегда производительнее оборудования на процессорах старого поколения. Интереснее другое: при анализе возможностей систем, казалось бы, очень близких по своим техническим характеристикам, результат может быть совершенно различным. Мы в этом убедились, когда протестировали процессоры Intel в нашем облаке, чтобы проверить, какие из них дают наибольшую отдачу при работе систем на 1С.
Спойлер: как показал наш тест, всё зависит от поставленной задачи. Нам удалось из всей линейки новых процессоров Intel выбрать тот продукт, который дал кратный прирост производительности благодаря тому, что в Intel Xeon Gold 6244 меньшее количество ядер, на каждое ядро приходится большее количество L3 кэш-памяти и назначена большая тактовая частота — как базовая, так и в режиме Turbo Boost. Иными словами, именно эти процессоры лучше справляются с ресурсоёмкими задачами в пересчёте на единицу производительности/рубль. Для 1С это подходит как нельзя лучше: с новыми процессорами приложения на 1С в нашем облаке начали буквально «дышать».
А теперь расскажем, как мы проводили тестирование. Ниже — результаты синтетических тестов Гилёва. На них можно ориентироваться, но в любом случае нужно проверять реальную утилизацию самостоятельно на своих задачах.
Условия теста
Важное замечание: мы делали сравнение без каких-либо дополнительных оптимизаций, а не бенчмарк. При дополнительной настройке систем в облаке результаты будут гарантированно лучше.
Дано: две виртуальные машины с 8 vCPU и 64 GB RAM с дисками FLASH 10.000 IOPS.
Первая виртуалка — с Windows Server 2016 и установленным 1С 8.3.10.2580, для второй образ виртуальной машины с базой данных (Centos + Postgresql) взяли на Gilev.ru.
База данных Postgresql — неслучайно, поскольку её эксплуатация наиболее приближена к реальным условиям использования 1С нашими заказчиками. Да-да, мы делали синтетические тесты, похожие на типовые инсталляции, то есть это не универсальный ответ на все вопросы Вселенной, а именно ориентир для вашего собственного анализа.
Важно то, что в случае использования файловой архитектуры вместо базы данных результаты тестов обычно бывают выше. Но в реальности такой тип архитектуры используется только для совсем маленьких инсталляций. Вот здесь RuVDS тестировал на файловой архитектуре. И вот что по этому поводу в комментарии сказал сам Вячеслав Гилёв:
Если речь идёт об аренде 1С в файловом режиме, то да, но то, что мне на глаза попадается, работает исключительно в клиент-серверном варианте. Есть смысл: 1) или в статью это уточнение внести; 2) или протестировать клиент-серверный вариант, потому что разница в архитектуре значительна, и файловый вариант не обладает полным функционалом.
Никаких дополнительных настроек операционной системы и продукта 1С не производили.
Процессоры
Результаты
Intel Xeon E5-2690 v2, 3,00 ГГц:
«Хорошо» для нас — минимальная отметка, которая гарантирует комфортный уровень работы заказчика с системами 1С.
Intel Xeon Gold 6254, 3,10 ГГц:
Процессор Intel Xeon Gold 6244, 3,60 ГГц:
Итого: даже если виртуальная машина на Intel Xeon Gold 6244 на 3,6 ГГц будет стоить на 60 % дороже по сравнению с E5-2690 v2 на 3 ГГц, то стоит выбирать именно её. При меньшей разнице в цене выгоды становится ещё больше. Но у нас разрыв в цене сильно меньше, поэтому такие ВМ заметно выгоднее.
Ядра процессоров Cascade Lake демонстрируют прирост производительности не только за счёт увеличенной частоты, но и более современной архитектуры. При этом разные модели процессоров из этой линейки дают разные результаты, что нужно обязательно учитывать при решении своей задачи.
В облаке мы планируем использовать эти процессоры в режиме Turbo Boost, при котором тактовая частота процессора достигает 4,40 ГГц, что увеличит его отрыв по производительности и сделает выбор в пользу этого продукта ещё более очевидным.
Что это значит для нас
Мы долгое время жили в старой парадигме, когда у одного процессора было не очень много ядер, и поэтому на один сервер помещалось не очень много виртуальных машин. Приходилось много приседать, чтобы добиться хоть какой-то оптимальности по плотной укладке ВМ в эти серверы. Теперь, когда на один сокет получаем по 28 или даже 56 ядер, проблема с плотностью укладки решается почти сама собой. И у нас появляются ресурсы, чтобы подумать о других плюшках для заказчиков нашего Облака КРОК. Например, мы запилили отдельный пул с процессорами 6244 под СУБД.
Дополнительный бонус — всё это оказалось очень подходящей архитектурой для 1С. Смысл в том, что если переходить от процессора частоты 3 ГГц к процессору 4 ГГц, то почти все тесты дают тебе не +30 %, а +15–20 %… А эта штука даёт тебе +45 %. То есть частота увеличивается на 30 %, а прирост растёт нелинейно к частоте. А процессоры дороже процентов на 40. В итоге новые процессоры дороже, но наконец 1С начинает работать нормально. Можно идти в облако, не беспокоясь, что там не те процессоры. Для многих наших клиентов сейчас это очень важно.
Виртуальные машины и тест Гилева
Тест Гилева – нагрузочный тест, с помощью которого можно сделать выводы о быстродействии платформы «1С:Предприятие». Многие ИТ-специалисты уделяют много внимания итогам данного теста. Причём в большей степени однопоточному тесту, так как считают его более наглядным и простым. Однако это не до конца верно.
Однако тест Гилева на деле не показывает быстродействие настоящей конфигурации с настоящей базой данных. Обычно его запускают на пустой платформе, так как изначально его придумали для проверки дискретных серверов. Однако тест можно запустить на настоящей рабочей системе.
В статье расскажем о том, как влияют те или иные варианты оптимизации виртуальной машины, гостевой ОС и различное ПО на показатели теста Гилева.
Начальные данные
Тест Гилева обычно применяется для того, чтобы сделать выводы о производительности при хранении баз данных 1С с использованием СУБД, но подойдёт и для файлового варианта хранения. Он идёт в формате файла конфигурации (*.cf), который можно загрузить в конфигураторе «1С:Предприятие».
Тест можно разделить на две части. Каждую из них можно запускать отдельно.
Часть 1 – однопоточный тест, который позволяет оценить производительность операций в один поток. Это характерная черта платформы «1С:Предприятие». По итогам теста выстраивается график в форме столбчатой диаграммы. Читать его следует слева направо. На графике показаны результаты настоящего теста, а также результаты, которые соответствуют условным оценкам «плохо» (10), «удовлетворительно» (15), «хорошо» (35) и «отлично» (60).
Часть 2 – многопоточный тест, который позволит оценить скорость, с которой осуществляется запись на диски при параллельном отправлении запросов к базе данных. Выходной результат представляет собой наибольшие скорости одного потока, наибольшую скорость записи и количества юзеров, рекомендованное для одновременной работы. Вторая часть теста недоступна, если используется файловая архитектура хранения баз.
Результаты можно также сохранить в облако, где их можно сравнить с результатами тестов, сделанных другими пользователями.
Среда тестирования
Чтобы провести тест в «стандартном» облаке Cloud4Y мы развернули ВМ с гостевой операционкой Windows Server 2019 из базового шаблона с паравиртуальным драйвером дисков.
В роли СУБД выступил Microsoft SQL Server 2019 версии Standard. Версия Express приведёт к аналогичным результатам тестирования, но её нельзя применять на реальных базах, так как в ней есть ограничения.
На ВМ инсталлировали сервер «1С:Предприятие» и выполнили настройку кластера серверов 1С. Инсталлировали добавочные средства администрирования серверов 1С. Конфигурация была только одна – сам тест Гилева.
Чтобы протестировать раздельную конфигурацию, при которой сервер 1С и СУБД помещены на различные ВМ, мы выполнили клонирование начальной виртуальной машины, а потом в гостевой операционной системе каждой из ВМ удалили ненужные компоненты и выполнили дополнительную настройку.
Сделанные оптимизации
Запуск теста
Теперь можно оценить, какое влияние оказывают разные настройки инфраструктуры
Виртуальные процессоры и сокеты
Изображение 1. Влияние количества сокетов
Изображение 2. Влияние количества сокетов
Изображение 3. Влияние количества сокетов
Изображения 1-3 показывают, как сильно влияют сокеты в случае совмещённой конфигурации. Наибольшие значения получаются, когда сокет всего один. Чем их больше, тем результаты теста ниже.
Изображение 4. Влияние виртуальных процессоров
Изображение 5. Влияние виртуальных процессоров
Изображения 4 и 5 показывают, как влияет увеличение числа виртуальных процессоров. Особого подъёма результатов от увеличения количества процессоров не наблюдается.
Примечание: однако важно учитывать, что в работе с настоящей базой данных, а также при подключении более одного юзера увеличение числа виртуальных процессоров ощутимо повлияет на производительность.
Объём RAM
Следующим шагом разберём влияние RAM
Изображение 6. Влияние RAM
Тест показывает, что увеличение объёма памяти не даёт заметного прироста.
Примечание: нужно учесть, что с настоящей базой данных и в случае, когда подключается более, чем один юзер, объём RAM ощутимо скажется на производительности.
Объём кластера файловой системы тома с базой данных
Изображение 7. Влияние объёма кластера файловой системы
Изображение 8. Влияние объёма кластера файловой системы
Изображение 9. Влияние объёма кластера файловой системы
На изображениях 7-9 видно, какое оказывает влияние на производительность размер кластера файловой системы тома, где расположена база данных. Это влияние настолько мало, что им можно пренебречь.
Примечание: Для настоящей базы данных размер кластера файловой системы заметно влияет на производительность. Так что стоит брать размер кластера, который рекомендуется для соответствующего размера тома.
Совместная или раздельная архитектура
Изображение 10. Раздельная архитектура
Изображение 10 отражает итоги тестирования для раздельной архитектуры (то есть используется отдельный сервер СУБД). Конфигурация СУБД в этом случае в расчёт не берётся, важна лишь конфигурация сервера, в рамках которого развёрнута платформа «1С:Предприятие». По итогам теста видно, что производительность у раздельной архитектуры ощутимо ниже, чем в случае совместной. Это обосновано тем, что применяется протокол tcp вместо shared memory, который является более быстрым.
Нагруженность кластера и выделение ресурсов
Изображение 11. Нагруженность кластера
Изображение 11 демонстрирует результаты теста на ВМ, которая находится на хосте, изолированном от основного кластера. Результаты ощутимо выше предыдущих, так как все ресурсы хоста гарантированно идут на нужды единственной ВМ.
Изображение 12. Выделение ресурсов
Изображение 12 демонстрирует итоговые значения теста в общем кластере, где активны политики гарантированного выделения ресурсов. Показатели ощутимо ниже, чем на изолированном хосте.
Выводы
Напоминаем, что не стоит принимать решения только на основе синтетических тестов. Cloud4Y проводил тест Гилева по 1С в виртуальной среде на не очень мощных процессорах. Возможно в будущем появится тест на новом «железе».
Виртуальные машины и тест Гилева
А давайте поговорим про синтетические тесты? Мы заметили, что часть клиентов использует их, оценивая «профпригодность» любого облачного решения. Иногда нас просят предоставить результаты какого-либо теста или сами проверяют систему во время бесплатного пробного периода. Причём то же нагрузочное тестирование проводят редко. В фаворитах — тест Гилева. Про него-то мы и расскажем. Ведь если и делать подобный тест, то делать его нужно правильно.
Введение
Стоит понимать, что тест Гилева никак не отражает быстродействие реальной конфигурации с реальной базой данных. Он запускается на пустой платформе без установки каких-либо конфигураций и тем более загрузки реальных баз 1С. А ведь многопоточный тест может быть запущен в качестве нагрузочного и на реальной системе с реальными данными.
Более того, тест в первую очередь разрабатывался для проверки дискретных серверов (поскольку именно их рекомендует использовать производитель платформы), а однопоточный тест изначально разрабатывался для проверки файловой архитектуры хранения баз 1С. И если по настройке дискретных серверов и операционных систем на сайте авторов имеются рекомендации, хотя и неполные и отчасти устаревшие, то по виртуальным и облачным технологиям присутствует только приглашение к заключению договора с авторами теста на проведение работ по оптимизации.
Тем не менее, многие технические специалисты считают результаты теста истиной в последней инстанции, придавая очень большое значение полученным результатам. При этом зачастую внимание обращают только на результаты однопоточного теста, как самые наглядные и простые. Это не совсем правильно, но стереотип весьма устойчив.
Данная статья описывает результаты исследования влияния различных оптимизаций виртуальной машины, её гостевой ОС и прикладного программного обеспечения на результаты прохождения теста Гилева.
Исходные данные
Тест Гилева – синтетический тест, позволяющий оценить быстродействие платформы «1С:Предприятие». В основном используется для оценки производительности при использовании СУБД для хранения баз данных 1С, но может использоваться и для файлового варианта хранения баз данных 1С. Поставляется в виде файла конфигурации (*.cf) для дальнейшей загрузки в конфигураторе «1С:Предприятие».
Тест состоит из двух частей, которые могут быть запущены независимо друг от друга.
Первая часть – однопоточный тест, оценивает производительность выполнения операций в один поток, что является характерной особенностью платформы «1С:Предприятие». По результатам теста строится график в виде столбчатой диаграммы, в котором слева направо представлены текущий результат теста и результаты, соответствующие оценкам «плохо», «удовлетворительно», «хорошо» и «отлично». «Оценочные» результаты имеют фиксированные значения (10, 15, 35 и 60 соответственно). Результат однопоточного теста предоставляется в неких условных единицах.
Вторая часть – многопоточный тест, позволяет оценить скорость записи на диски при одновременном обращении к базе данных нескольких запросов. В качестве результатов выводятся максимальные скорости записи отдельных строк, однопоточной записи, максимальной скорости записи и рекомендуемого числа пользователей. При использовании файловой архитектуры хранения баз 1С этот тест недоступен.
Дополнительно тест позволяет сохранить результаты в облако авторов теста и получать результаты других пользователей теста для сравнения.
Среда тестирования
Для тестирования в «обычном» облаке Cloud4Y мы создали виртуальную машину с гостевой ОС Windows Server 2019. ВМ развернули из стандартного шаблона в варианте с паравиртуальным драйвером дисков. Данный тип контроллера не даёт преимуществ по скорости работы в сравнении с LSI Logic SAS, но активно продвигается вендором и может стать типом контроллера по умолчанию в будущем.
В качестве СУБД использовали Microsoft SQL Server 2019 редакции Standard. Редакция Express даёт схожие результаты тестирования, однако неприменима на реальных базах из-за ограничений редакции. Следовательно, использовать её в шаблоне виртуальной машины не имеет смысла.
На виртуальной машине установили сервер «1С:Предприятие» и настроили кластер серверов 1С. Также установили дополнительные средства администрирования серверов 1С. В качестве единственной конфигурации использовался тест Гилева.
Для тестирования раздельной конфигурации, где сервер 1С и СУБД размещаются на отдельных ВМ, мы клонировали исходную ВМ, после чего в гостевой ОС каждой из получившихся виртуальных машин удалили лишние компоненты и провели дополнительную настройку.
Оптимизации
Оптимизировали виртуальную машину. На виртуальных машинах, использующихся в тестировании, отключили функции добавления на лету виртуальных процессоров и оперативной памяти, как потенциально снижающие производительность.
Оптимизировали гостевую ОС. Все оптимизации делались на основании рекомендаций с сайтов https://its.1c.ru и https://gilev.ru. Также учитывались данные с других тематических ресурсов. При внесении изменений в гостевую ОС мы проверяли актуальность рекомендаций, так как значительная их часть относится к устаревшим версиям операционных систем. В итоге мы а)полностью отключили все функции энергосбережения в гостевой ОС и включили режим максимальной производительности, б) отключили на уровне системы протокол IPv6, в реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters создали ключ DisabledComponents типа DWORD (32 бита) со значением 0xffffffff, что соответствует отключению всех компонент IP версии 6, кроме интерфейса замыкания на себя. При этом значении также будет использоваться в политиках префиксов протокол IP версии 4 вместо IPv6.
Оптимизировали СУБД. В частности, мы:
Установили минимально необходимый набор компонентов СУБД MSSQL
Установили лимит потребления памяти сервером СУБД: минимальное значение равное половине объёма оперативной памяти, максимальное – полный размер RAM, за вычетом 1 ГБ на каждые выделенные 16 ГБ оперативной памяти
Установили максимальную степень параллелизма равную 1
Базу tempdb, пользовательскую базу данных, лог базы данных разнесли на отдельные файловые системы на отдельных виртуальных дисках
Выполнили тонкую настройку параметров баз model и tempdb: значения начального размера базы от 1 ГБ до 10 ГБ, начальный размер журнала транзакций от 1 ГБ до 2 ГБ и авторасширение в 512 МБ
В СУБД разрешили операции по обслуживанию томов
Для раздельной архитектуры для пользователя, от имени которого запускался сервер СУБД, дополнительно установили политику «Блокировка страниц в памяти». Для совместной архитектуры эта политика не должна использоваться, что подтверждается результатами тестов
Для совместной архитектуры отключили все протоколы обмена данными, кроме shared memory, для раздельной – все, кроме tcp
Тестирование
Настройки сделаны, давайте посмотрим на то, какое влияние на результаты теста оказывают разные параметры инфраструктуры
Влияние виртуальных процессоров и сокетов
На рис. 1-3 приводятся результаты исследования влияния сокетов для совмещённой конфигурации. Как можно увидеть, максимальные значения достигаются при одном сокете, при увеличении их количества результаты теста снижаются.
Рис. 4
Рис. 5
На рис. 4 и 5 показано слияние увеличения количества виртуальных процессоров. Как можно увидеть, значительного выигрыша в результатах теста Гилева увеличение количества виртуальных процессоров не даёт.
Примечание: но при работе с реальной базой данных и при подключении более одного пользователя количество виртуальных процессоров будет существенно влиять на производительность, и это нужно учитывать.
Влияние объёма RAM
Теперь давайте оценим влияние объёма оперативной памяти на результаты теста
Рис. 6
Как можно увидеть, увеличение памяти не даёт ощутимого влияния на результаты теста.
Примечание: но при работе с реальной базой данных и при подключении более одного пользователя объём оперативной памяти будет существенно влиять на производительность, и это нужно учитывать.
Влияние размера кластера файловой системы тома с базой данных
На рис. 7-9 представлено влияние размера кластера файловой системы тома с базой данных. Как вы видите, размер кластера файловой системы не даёт ощутимого влияния на результаты теста.
Примечание: при работе с реальной базой данных размер кластера файловой системы может оказывать существенное влияние на производительность, и это нужно учитывать и использовать размер кластера, рекомендованный для имеющегося размера тома.
Влияние совместной или раздельной архитектуры
На рис.10 представлены результаты теста Гилева для раздельной архитектуры (отдельный сервер СУБД). Обратите внимание, тест никак не учитывает в однопоточном тесте конфигурацию сервера СУБД, учитывается только конфигурация сервера, где развёрнута платформа «1С:Предприятие». В целом, производительность в тесте Гилева у раздельной архитектуры несколько ниже, чем у совместной, поскольку используется протокол tcp вместо более быстрого протокола shared memory.
Влияние нагруженности кластера и выделения ресурсов
На рис. 11 представлены результаты теста Гилева на виртуальной машине, расположенной на изолированном от основного кластера хосте. Результаты существенно выше предыдущих, поскольку все ресурсы хоста гарантированно предоставляются единственной виртуальной машине.
Рис. 12
На рис. 12 представлены результаты теста в общем кластере с включенными политиками гарантированного предоставления ресурсов. Как вы видите, результат существенно ниже, чем на изолированном хосте.
Итоги исследований
На результаты теста наибольшее влияние имеют отключение всех возможных технологий энергосбережения в гостевой операционной системе и базовая частота виртуального процессора
Нагруженность кластера, в котором работает виртуальная машина, может существенно влиять на результат теста Гилева
Совмещённая архитектура даёт более высокие результаты по сравнению с раздельной за счёт использования более быстрого протокола shared memory. Однако, при использовании такой архитектуры нужно внимательно следить за ресурсами, потребляемыми отдельными компонентами системы, чтобы избежать конкуренции
Значительная часть рекомендаций, представленных на сайтах https://its.1c.ru и https://gilev.ru, неактуальна при использовании современных версий операционных систем и СУБД
Надеюсь, эта информация будет вам полезна. И помните, что одними лишь синтетическими тестами руководствоваться не стоит. Обращаем ваше внимание на тот факт, что мы проводили тест Гилева по 1С в виртуальной среде на не очень мощных процессорах. В будущем можно будет провести исследование на новом железе. Интересно?
Что ещё интересного есть в блоге Cloud4Y
Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.