Краткое содержание предыдущей серии 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