The matrix has you

Краткое содержание предыдущей серии 1С + MS SQL против Матрицы виртуализации 

Тестирование виртуального кластера на VMWare схожей конфигурации с рабочим кластером - показало более низкую производительность с 1493 минут против 937 минут на «железном» рабочем кластере. Анализ показал высокие задержки на уровне Write log и повышенные задержки по сети.

Ликвидация задержек по сети улучшила результат, но не радикально  до 1233 мин

Мозговой штурм задержек SQL Write log вывел нас на несоответствие  виртуальных ядер \ Numa node физической структуре машин. Когда виртуальные машины выровняли с физическим – результат улучшился 1162 минуты против 937.

Поскольку победа не была достигнута, было решено добраться до сути такой разницы производительности. Стратегия была понятна, выявить все несоответствия отображения виртуальных машин в «железо».

Замечу что VMWare содержит много способов Вас «обмануть» – когда мы говорим Numa node

Мы понимаем под этим hardware Numa

Understanding Non-uniform Memory Access

,но VWWare предлагает администратору еще технологию vNuma в vSphere 6.5 Virtual Machine vCPU and vNUMA Rightsizing – Guidelines

Просто почитайте выдержку для понимания какое бесконечное количество реальностей вам предлагают и как это будет реально работать с SQL Server или другим ПО одному архитектору Матрицы будет известно

«When a vNUMA topology is calculated, it only considers the compute dimension. It does not take into account the amount of memory configured to the virtual machine or the amount of memory available within each pNUMA node when a topology is calculated. So, this needs to be accounted for manually.

Example: An ESXi host has 2 pSockets, each with 10 Cores per Socket, and has 128GB RAM per pNUMA node, totalling 256GB per host.

If you create a virtual machine with 128GB of RAM and 1 Socket x 10 Cores per Socket, vSphere will create a single vNUMA node. The virtual machine will fit into a single pNUMA node.

If you create a virtual machine with 192GB RAM and 1 Socket x 10 Cores per Socket, vSphere will still only create a single vNUMA node even though the requirements of the virtual machine will cross 2 pNUMA nodes resulting in remote memory access. This is because only the compute dimension in considered.

 

The optimal configuration for this virtual machine would be 2 Sockets x 5 Cores per Socket, for which vSphere will create 2 vNUMA nodes and distribute 96GB of RAM to each of them.»

Это только то что вскрылось при тестировании, я думаю специалисты по VMWare расскажут больше точек, где может потеряться производительность

Не думай о миллисекундах с высока

Поскольку все были озадачены такими результатами, были подключены администраторы СУБД по другим системам. Две головы как говорится лучше двух и была найдено еще одно противоречие с реальностью.

Странно, Avg Disk sec \ Transfer сильно отличалось от Service Time которое регистрирует VMWare при обращениях к диску

Ниже Вы видите 2 мс Service time против 20 мс Avg Disk sec / transfer в счетчиках Windows over VMWare!

Поиск в сети вывел на статью

 How Windows performance counters are affected by running under VMware ESX где подробно изложена проблема VMWare приводящая к “неточностям “ измерений в  Windows.  Не знаю когда это исправят, но такие «неточности»  приводят к логической проблеме

Исходные данные кривые & Алгоритм анализа верен = Результат анализа кривой

Поскольку данный факт не объяснял отставание производительности виртуального кластера от реального, исследования продолжили. Было ясно что, что-то еще душит связку процессор, память , взаимодействие с устройствами. Диски\Контроллеры пока можно было исключить

 

 

Почему текст в Матрице зеленый?

Горизонтальное маштабирование Язык мой – враг мой нашего решения  на 1С позволяло еще увеличить давление на кластер, что и сделали

Со стороны Windows картина показала очереди на процессор Processor Queue Length и много переключений контекста

Результат вычислений улучшился но несущественно, видимо упирался в ту самую причину

Зато гипервизор показал

·         Readiness: 1-2 %.

·         Co-stop: 0,5 %

·         А вот CPU latency выросло до 30%, многовато. ( CPU latency - % of time the VM is unable to run because it is contending for access to the physical CPU. )

Судя по всему мы не первые которые сталкиваются с подобными проблемами – вот статья из Хабр https://habr.com/ru/company/dataline/blog/452884/  . Там же объяснение терминов, и некоторые утверждения вызывают сомнения.

Напр

«если не хотите углубляться и у вас нет лицензионных ограничений по ОС, установленной на ВМ, делайте на ВМ много виртуальных сокетов по одному ядру. Много не потеряете»

Хотя как заметили в комментариях

«Always configure the virtual machine vCPU count to be reflected as Cores per Socket, until you exceed the physical core count of a single physical NUMA node OR until you exceed the total memory available on a single physical NUMA node.

Virtual Machine vCPU and vNUMA Rightsizing – Guidelines »

В общем из таких статей видно, что нет единства даже среди тех, кто сопровождает VMWare и я был интуитивно прав что нужно выравнивать виртуальную машину с физической. Наши администраторы пошли искать кто создает эту CPU latency … и на следующий день предложили повторить тест.

Результат превзошел ожидания 805 минут против 937 на рабочем кластере. Да количество параллельных заданий на тесте было больше, но тот факт что Матрица наконец то прогнулась вызывал бурю восторга

Waits & Spinlock улучшились по сравнению 1С + MS SQL против Матрицы виртуализации

На вопрос что же Вы нашли? ответ был неожиданным

Гензель и Грета – как в Европе борются за ограниченные ресурсы.

Да это была  зеленая повестка, когда добавляли железные  сервера в кластер ее просто забыли отключить. Производитель HP заботливо оставляет включенным соответствующие опции , причем формулировки опций двухсмысленные (Balanced) . Вот пример как в Европе с этим сталкиваются

The Effects of HP’s Power Profile on vCPU Performance

Вообще зеленая повестка сейчас по всюду и на всех уровнях. Это тот самый случай, когда благими намерениями выложена дорога в ад. Вроде благое дело экономия электроэнергии, и на офисных ПК это оправдано, поскольку у работников умственного труда больше работает мозг чем ПК, хотя в эпоху перепроизводства контента часто бывает и наоборот.

Но сервер - он изначально предназначен быть разделяемым ресурсом, готовым принять нагрузку на 100%. А пока нам предлагают гоночный авто формулы 1 с принудительной зеленой повесткой J . Зелень приходится вырубать на всех уровнях.

1)      Операционная система

2)      VMWare Custom Power Management Settings for Power Savings in vSphere 5.5

3)      Драйвера

4)      И еще BIOS + на уровне процессора ( см C-states  в Perfomance monitor)

И везде эта повестка включена в некий режим «Balanced» который по факту снижает производительность даже при высокой нагрузке. Скажете  ничего страшного - в каждой программе есть ошибка?

Нет это не ошибка это шиза,  которая пронизывает всю систему:

У Вас на авто детали стали служить меньше потому, что уменьшены высота поршня, толщина колец, задраны температурные режимы для лучшего сгорания. Железная цепь не дотягивает до ресурса ремня, поскольку на обслуживании пресса экономят + делают ее тоньше. Между прочим - это выгодно и автопроизводителю, меньше металла, меньше ресурс = больше прибыль. Вот подробный отчет от BMWService по надежности новых технологий Фейлы автоиндустрии ч 1  Фейлы автоиндустрии ч 2

Экономика разбалансирована поскольку политики не просто играют в зелень, но и вводят экономические санкции тем, кто менее зелен Зеленый переход «Экономическими инструментами для перехода к низкоуглеродной экономике должны стать торговля эмиссионными квотами, углеродные налоги, государственные закупки экологичной продукции и инвестиции в экологическую инфраструктуру»

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

Грустно, но слив Японией в 2021 более миллиона тонн радиактивной воды из Фукусимы, не вызывает санкций , культуры отрицания суши, или значимых протестов зеленых Япония решила стерилизовать Тихий океан

Все это следствие отсутствия сильных обратных связей на власть со стороны общества, как следствие в политике оказываются лучшие манипуляторы сознанием, а не те, кто осознают возможность сделать жизнь лучше.

Причем тут Гензель и Грета?  Просто прочитайте краткое изложение сюжета Гензель и Грета Вики

Если кратко дети все время возвращаются к отцу, который их предал и решил от них избавится под угрозой голода. Какая-то семейная шизофрения – как ни разбирай мотивы все себе врут, а раз так цикл обязательно повторится, поскольку доверие выстраивается годами, а предав один раз, можно это делать сколько угодно.

Переводя на язык высоких технологий – Если Вам предлагают новые технологии,  которые улучшат жизнь вашей компании - сразу  ищите, где Вам врут, для кого Вы ресурс и кто Вас использует.

Игра в имитацию

Если сложить все с предыдущей частью 1С + MS SQL против Матрицы виртуализации получается что виртуализация только искажает данные о производительности. Она дает нам не аналог физического сервера, а его проекцию. Напр. проекция шара может выглядеть как круг или овал в зависимости от источника света. Но ведь проекцию круга может дать и другая фигура. И весь анализ подразумевает попытку восстановить исходный объект по проекции.

Дружественно настроенный администратор с гипервизором может помочь, но у него будут похожие проблемы. Если же  администраторы доступны только по почте, то с такими облаками лучше вообще не связываться. Это не просто еще один слой, который скрыт от Вас. Напр слой драйверов изначально пишут для достижения максимальной производительности и там как правило настройки ограничены, а VMWare это слой, который конструирует Вам очередную версию Матрицы с новыми сюрпризами «оптимального распределения ресурсов».

Я надеюсь, что виртуализация это временный этап развития ИТ и будущие операционные системы будут организовывать кластеры более прозрачным образом, а приложения будут написаны уже сразу под такие ОС. Мы ведь можем делать сейчас кластера на основе Windows в рамках одной организации. Кроме того, горизонтальное маштабирование   приложений Язык мой Враг мой выдвигает требования не только к архитектуре приложения, но и к возможностям операционной системы, поэтому совершенствование ОС в этом направлении неизбежно. Буду рад видеть интересующихся данными темами на нашем канале t.me/Chat1CUnlimited

Комментарии (8)


  1. Sergey-S-Kovalev
    16.07.2022 00:02
    +6

    Объем работы большой, это заслуживает уважения. Но просто пара замечаний по обеим статьям сразу, поскольку ну прям видно что проблему решал специалист по 1С:

    • Много мокрой и влажной воды и не нужных заумных ссылок.

    • Нет чистых исходных данных, тобишь что было в железе и что дали. Любой последующий анализ без этой информации просто не имеет смысла.

    • Из версий ПО увидел упоминание давно снятой с поддержки vSphere 5.5, что вызывает много неудобных вопросов ко всей статье, вы там на hpe gen 6 все это творите что ли?

    • Бесконечно много вопросов к DBA, администраторам виртуализации и администратором ОС.

    Полезность выхлопа статьи равна нулю, но канал порекламирован.


    1. 1CUnlimited Автор
      16.07.2022 14:20

      Нет чистых исходных данных, тобишь что было в железе и что дали. Любой последующий анализ без этой информации просто не имеет смысл

      Ссылки на версии ОС, SQL , VMWare и железо серверов могу приложить. В статье упор сделан не на добавление в faq "101 ошибка неверной настройки vmware под 1С +MS SQL ", а на демонстрацию методики выявления проблем со стороны специалиста по 1С + СУБД (последнее важно, поскольку 1С не имеет достаточных средств диагностики кроме техжурнала, и по сути генератор запросов). Мне до сих пор помогает пройденная 15 лет назад сертификация Oracle DBA.

      Из версий ПО увидел упоминание давно снятой с поддержки vSphere 5.5, что вызывает много

      Там всего лишь нагугленный пример опций Power savings в VMWare

      Бесконечно много вопросов к DBA, администраторам виртуализации и администратором ОС

      По поводу DBA - я DBA задавайте. К администраторам виртуализации у меня тоже бесконечно много вопросов. Казалось бы я могу им показать что на железном сервере быстро, на VMWare медленно при одинаковых версиях 1С + MSQL + ОС. Но ждать от них выявления причин, как показывает практика, можно бесконечно долго. Результат можно получить если обрисовать область куда смотреть + иметь возможность сильно нагрузить кластер. Правильное взаимодействие с администраторами тянет на отдельную статью, поскольку они не знают деталей работы приложения, а я не знаю VMWare

      101 способ ошибок и лучшие практики при настроке vmware для 1С хорошо изложен у Гилева в конце ссылки (внимание там реклама) Производительность «1С» в виртуальной машине | Gilev.ru | Ускоряем 1С:Предприятие


  1. Naves
    16.07.2022 01:12
    +1

    Однажды перезжали из виртуалки AWS на виртуалку на dedicated server у обычного хостера. Заметили, что некоторые unit-тесты стали выполняться до двух раз дольше по времени. В качестве гипервизора был Proxmox KVM. Начали копать, включили numa, unsafe writeback дисков, mitigations=off. Часть тестов ускорилось, но в целом все в пределах погрешностей. Пока от безысходности не залезли в BIOS сервера и не переключили Performance Per Watt (DAPC) to Performance. Сразу суммарное время тестов стало плюс-минус пару секунд как в AWS

    Дополнительные ссылки

    https://infohub.delltechnologies.com/l/day-three-best-practices-6/poweredge-r740-database-optimized-performance-workload-profile-1

    https://yourcmc.ru/wiki/Производительность_Ceph#.D0.9F.D1.80.D0.BE.D1.86.D0.B5.D1.81.D1.81.D0.BE.D1.80.D1.8B


  1. Chatter_A
    16.07.2022 01:33
    +3

    Напр. проекция шара может выглядеть как круг или овал


  1. nick-for-habr
    16.07.2022 09:32
    +1

    В целом прилично информации, но по сути результат можно свести к 2м постулатам:
    — устанавливайте профиль электропитания на «Производительный». Это вообще первое, что нужно делать на сервере, а уж для сервера 1С — это вообще «маст хэв #1»;
    — выравнивайте ВМ по аппаратной архитектуре.
    И будет вам счастье… )

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


    1. 1CUnlimited Автор
      18.07.2022 12:18

      Эти постулаты работают если среда неизменна.

      Напр Выравнивание vm по аппаратной архитектуре оно помогает если виртуальная машина сделана неперемещаемой. А как правило делают перемещаемой , VMWare может ее переместить по своим соображениям кудато еще. Администраторы могут переместить машину куда хотят, они ведь смотрят на ландшафт в целом и ваше счастье у них будет на последнем месте. В ЦОД редко бывает ситуация когда все сервера с одинаковым количеством ядер, и любое перемещение исказит первоначальную картину

      Потом нужно помнить, что VM ware архитектурно создает узкие места :

      напр "количество потоков данных от виртуального сервера к дисковой системе (регулируется в определенных пределах)"

      Сетевые интерфейсы которые тоже под контролем Virtual Networking Made Easy with VMware VMXNET3 Driver | VMware , я в первой статье упоминал о задержках в сети которая была обнаружена 1С + MS SQL против Матрицы виртуализации / Хабр (habr.com) , у Гилева есть рекомендации на эту тему.

      Я не вижу в среде виртуализации возможности зафиксировать гарантированную производительность среды. Когда у Вас свой железный кластер со своей дисковой подсистемой, вы можете быть уверены что кроме вирусов его больше никто не использует. Похожий опыт см у Гилева Про виртуализацию и 1С | Gilev.ru | Ускоряем 1С:Предприятие


      1. nick-for-habr
        18.07.2022 13:50
        +1

        Ну если у вас ВМ в «публичном облаке» — т.е. на гипервизоре, который вы не контролируете: нет доступа администратора к «железке», то о стабильной производительности можно забыть. Тут особо не о чём рассуждать, это уже все наверное знаю. Ну кроме маркетологов этих «облаков», которые расписывают продают «чудеса прогресса».
        Можно сколько угодно собирать картинки с Гретой и красивые графики — но физику не обманешь. Облака дают дёшево* некий средний уровень. А в рамках этого среднего параметры могут «гулять» очень широко. И если ваша нагрузка терпима к этим флуктуациям — то у вас всё Ок. Но 1С не из этой категории, это просто нужно держать в голове.
        Если у вас своё «частное облако» — в чём проблема доработать регламент для отдела системного администрирования, где будут прописаны эти требования к данной конкретной VM? Типа: «в обычной ситуации не перемещать на другие хосты, при перемещении (авария, обслуживание хоста) — предусмотреть выравнивание ВМ по NUMA нового хоста». Это уже административные процедуры в рамках поддержки ИС 1С.
        У вас сотни и тысячи юзеров в 1С, и требования к онлайну высокие? Разверните кластер ВМ 1С, желательно на разных кластерах гипервизора. Но за это и заплатить нужно будет — оборудование, услуги нормального администратора 1С (не бывшего разработчика)… А 10-50-100 юзеров и потерпят перезагрузку сервера, не проблема — клиенты почти всегда сильно переоценивают важность своих бизнес-процессов в плане непрерывности )))
        Остальное — это уже косяки админов, которые не утруждают себя настройкой гипервизор, оставляя всё «по дефолту». Особенно «порадовало» использование дефолтных параметров электропитания, это вот прям классика… Лечится легко волшебным пенделем от руководства компании, если оно заинтересовано в работе их 1С конечно же.

        * Про «дешевизну» облаков оффтоп: некоторое время анализировал для одного клиента стоимость аренды мощностей в облаке VS свой сервер. Результат предсказуемый: для зарубежных провайдеров свой сервер становится выгодней через примерно 3 года, для российских — 1-2 года: жадные они )))
        Плюс все «прелести» облаков разъяснил. Через неделю купили себе новый сервер, работают спокойно с тех пор.


        1. 1CUnlimited Автор
          18.07.2022 14:10

          "некоторое время анализировал для одного клиента стоимость аренды мощностей в облаке VS свой сервер. " Если будет возможность напишите об этом статью. Я такой анализ не проводил (не было необходимости) , но интуитивно понимаю что в диапазоне 5 лет разница будет незначительна с учетом инфляции, амортизации