The matrix has you
Краткое содержание предыдущей серии //infostart.ru/1c/articles/1686720/
Тестирование виртуального кластера на VMWare схожей конфигурации с рабочим кластером - показало более низкую производительность с 1493 минут против 937 минут на «железном» рабочем кластере. Анализ показал высокие задержки на уровне Write log и повышенные задержки по сети.
Ликвидация задержек по сети улучшила результат, но не радикально до 1233 мин
Мозговой штурм задержек SQL Write log вывел нас на несоответствие виртуальных ядер \ Numa node физической структуре машин. Когда виртуальные машины выровняли с физическим – результат улучшился 1162 минуты против 937.
Поскольку победа не была достигнута, было решено добраться до сути такой разницы производительности. Стратегия была понятна, выявить все несоответствия отображения виртуальных машин в «железо».
Замечу что VMWare содержит много способов Вас «обмануть» – когда мы говорим Numa node
Мы понимаем под этим hardware Numa
https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms178144(v=sql.105), но VWWare предлагает администратору еще технологию vNuma в vSphere 6.5 https://blogs.vmware.com/performance/2017/03/virtual-machine-vcpu-and-vnuma-rightsizing-rules-of-thumb.html
Просто почитайте выдержку для понимания, какое бесконечное количество реальностей вам предлагают и как это будет реально работать с 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!
Поиск в сети вывел на статью http://performancebydesign.blogspot.com/2013/12/how-windows-performance-counters-are.html где подробно изложена проблема VMWare приводящая к “неточностям “ измерений в Windows. Не знаю, когда это исправят, но такие «неточности» приводят к логической проблеме
Исходные данные кривые & Алгоритм анализа верен = Результат анализа кривой
Поскольку данный факт не объяснял отставание производительности виртуального кластера от реального, исследования продолжили. Было ясно, что что-то еще душит связку процессор, память, взаимодействие с устройствами. Диски\Контроллеры пока можно было исключить.
Почему текст в Матрице зеленый?
Горизонтальное маштабирование //infostart.ru/1c/articles/1683197/ нашего решения на 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.
В общем из таких статей видно, что нет единства даже среди тех, кто сопровождает VMWare и я был интуитивно прав что нужно выравнивать виртуальную машину с физической. Наши администраторы пошли искать кто создает эту CPU latency … и на следующий день предложили повторить тест.
Результат превзошел ожидания 805 минут против 937 на рабочем кластере. Да, количество параллельных заданий на тесте было больше, но тот факт, что Матрица наконец-то прогнулась, вызывал бурю восторга
Waits & Spinlock улучшились по сравнению с //infostart.ru/1c/articles/1686720/
На вопрос, что же Вы нашли, ответ был неожиданным
Гензель и Грета – как в Европе борются за ограниченные ресурсы.
Да, это была зеленая повестка, когда добавляли железные сервера в кластер, ее просто забыли отключить. Производитель HP заботливо оставляет включенным соответствующие опции, причем формулировки опций двухсмысленные (Balanced). Вот пример, как в Европе с этим сталкиваются
https://helgeklein.com/blog/the-effects-of-power-savings-mode-on-vcpu-performance/
Вообще зеленая повестка сейчас повсюду и на всех уровнях. Это тот самый случай, когда благими намерениями выложена дорога в ад. Вроде благое дело экономия электроэнергии, и на офисных ПК это оправдано, поскольку у работников умственного труда больше работает мозг, чем ПК, хотя в эпоху перепроизводства контента часто бывает и наоборот.
Но сервер - он изначально предназначен быть разделяемым ресурсом, готовым принять нагрузку на 100%. А пока нам предлагают гоночный авто формулы 1 с принудительной зеленой повесткой J . Зелень приходится вырубать на всех уровнях.
- Операционная система
- VMWare https://blogs.vmware.com/performance/2014/09/custom-power-management-settings-power-savings-vsphere-5-5.html
- Драйвера
- И еще BIOS + на уровне процессора ( см C-states в Perfomance monitor)
И везде эта повестка включена в некий режим «Balanced» который по факту снижает производительность даже при высокой нагрузке. Скажете, ничего страшного - в каждой программе есть ошибка?
Нет, это не ошибка, это шиза, которая пронизывает всю систему:
У Вас на авто детали стали служить меньше потому, что уменьшены высота поршня, толщина колец, задраны температурные режимы для лучшего сгорания. Железная цепь не дотягивает до ресурса ремня, поскольку на обслуживании пресса экономят + делают ее тоньше. Между прочим - это выгодно и автопроизводителю, меньше металла, меньше ресурс = больше прибыль. Вот подробный отчет от BMWService по надежности новых технологий https://bmwservice.livejournal.com/270037.html https://bmwservice.livejournal.com/278784.html
Экономика разбалансирована, поскольку политики не просто играют в зелень, но и вводят экономические санкции тем, кто менее зелен https://www.rbc.ru/opinions/economics/20/09/2021/61489ee09a79479eafb96584?ysclid=l5m8lln9rj476073198 «Экономическими инструментами для перехода к низкоуглеродной экономике должны стать торговля эмиссионными квотами, углеродные налоги, государственные закупки экологичной продукции и инвестиции в экологическую инфраструктуру»
Классный инструмент для политического давления. Кстати цены на газ раскрутили вверх еще до Z – эпохи именно как следствие зеленой повестки и переход на спекулятивный фьючерсный рынок, а уже Z эпоха добавила ускорение.
Грустно, но слив Японией в 2021 более миллиона тонн радиактивной воды из Фукусимы, не вызывает санкций, культуры отрицания суши, или значимых протестов зеленых https://zvezdaweekly.ru/news/2021413120-PU2ea.html?ysclid=l5lg7fb0m6258832098
Все это следствие отсутствия сильных обратных связей на власть со стороны общества, как следствие в политике оказываются лучшие манипуляторы сознанием, а не те, кто осознают возможность сделать жизнь лучше.
Причем тут Гензель и Грета? Просто прочитайте краткое изложение сюжета https://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BD%D0%B7%D0%B5%D0%BB%D1%8C_%D0%B8_%D0%93%D1%80%D0%B5%D1%82%D0%B5%D0%BB%D1%8C
Если кратко, дети все время возвращаются к отцу, который их предал и решил от них избавиться под угрозой голода. Какая-то семейная шизофрения – как ни разбирай мотивы, все себе врут, а раз так цикл обязательно повторится, поскольку доверие выстраивается годами, а предав один раз, можно это делать сколько угодно.
Переводя на язык высоких технологий – Если Вам предлагают новые технологии, которые улучшат жизнь вашей компании - сразу ищите, где Вам врут, для кого Вы ресурс и кто Вас использует.
Игра в имитацию
Если сложить все с предыдущей частью //infostart.ru/1c/articles/1686720/ получается, что виртуализация только искажает данные о производительности. Она дает нам не аналог физического сервера, а его проекцию. Напр. проекция шара может выглядеть как круг или овал в зависимости от источника света. Но ведь проекцию круга может дать и другая фигура. И весь анализ подразумевает попытку восстановить исходный объект по проекции.
Дружественно настроенный администратор с гипервизором может помочь, но у него будут похожие проблемы. Если же администраторы доступны только по почте, то с такими облаками лучше вообще не связываться. Это не просто еще один слой, который скрыт от Вас. Например, слой драйверов изначально пишут для достижения максимальной производительности и там как правило настройки ограничены, а VMWare это слой, который конструирует Вам очередную версию Матрицы с новыми сюрпризами «оптимального распределения ресурсов».
Я надеюсь, что виртуализация это временный этап развития ИТ, и будущие операционные системы будут организовывать кластеры более прозрачным образом, а приложения будут написаны уже сразу под такие ОС. Мы ведь можем делать сейчас кластера на основе Windows в рамках одной организации. Кроме того, горизонтальное масштабирование приложений //infostart.ru/1c/articles/1683197/ выдвигает требования не только к архитектуре приложения, но и к возможностям операционной системы, поэтому совершенствование ОС в этом направлении неизбежно.
P. S. Поскольку ссылки на телеграмм канал выкладывать запрещено, интересующиеся подробностями пишите в личку.