-
Новая реальность — нагрузки нет, а интерфейс тормозит.
-
Как поднять Илью Муромца с печи?
-
Зеленый архитектурный просчет или архитектурное вредительство.
-
P-states
-
C-States
-
C1 Enhanced Mode
-
UPI Power Management
-
Energy Efficient Turbo
-
Memory Speed
-
-
Как администратора превращают в пилота с автопилотом, но без ручного управления
Новая реальность — нагрузки нет, а интерфейс тормозит.
Настройка кластера 1С на очередной виртуальной среде (Windows server 2022, Microsoft Hyper V) сопровождалась ощущениями лагов пользовательского интерфейса.
«Никогда такого не было и вот опять.» @Черномырдин.
Я не очень люблю виртуализацию, поскольку никогда не знаешь, что сегодня там под капотом и правильно художник администратор нарисовал процессор 1С + MS SQL против Матрицы виртуализации / SE7EN
Но здесь все честно — Core info показывает под капотом
INTEL(R) XEON(R) GOLD 6542Y
Intel64 Family 6 Model 207 Stepping 2, GenuineIntel
Вроде неплохо. Первое что бросается в глаза тактовая частота меньше гигагерца в состоянии низкой нагрузки
Throttling – понижение тактовой частоты из-за перегрева или наоборот отсутствия нагрузки, это уже старая новость для современных процессоров. А если нагрузка есть, но она небольшая? Заметит ли пользователь?
Вот простой код, открывающий в цикле формочки и заполняющий их данными из базы. Все это проходит по цепочке Тонкий клиент 1С -> Вебсервер (по Http) -> кластер 1С -> СУБД MSSQL
Замеры = Новый Массив;
ОбщееВремя = 0;
Для каждого ТекДок Из МассивДокументов Цикл
ПараметрыФормыДокумента = Новый Структура;
ПараметрыФормыДокумента.Вставить("Ключ", ТекДок);
ВремяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
ФормаДокумента = ОткрытьФорму("Документ.СУУ_СделкаСырье.Форма.ФормаДокумента", ПараметрыФормыДокумента);
ПараметрыФормыРегистра = Новый Структура;
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Регистратор", ТекДок);
ПараметрыФормыРегистра.Вставить("Отбор", СтруктураОтбора);
ОткрытьФорму("РегистрБухгалтерии.Хозрасчетный.ФормаСписка", ПараметрыФормыРегистра, ФормаДокумента, , ФормаДокумента.Окно, , , );//РежимОткрытияОкнаФормы.
ФормаДокумента.Закрыть();
ТекущийЗамер = ТекущаяУниверсальнаяДатаВМиллисекундах() - ВремяНачала;
ОбщееВремя = ОбщееВремя + ТекущийЗамер;
Замеры.Добавить(ТекущийЗамер);
КонецЦикла;
А вот результат (среднее время открытия формы)
Стоит заметить, что это время получено при работе с удаленным сервером, задержка до которого по ping составляет 150 мс. Это достаточно высокая задержка, но смысл теста таже был в проверке комфортности работы тонкого клиента. Время разное для TCP и HTTP поскольку при TCP трафик идет к кластеру без использования вебсервера. Плюсы и минусы TCP и HTTP это отдельная история, которая изложена тут Плохие линии связи для 1С — поможет ли Apache?
Заметьте – нагрузка в тесте смешная, а результаты плачевные, когда видишь, что происходит после полного и бескомпромиссного отключения зеленых настроек. Улучшение на 40% процентов слишком заметно.
Просто потому, что частота процессора стала с условного 1 гигагерца поднялась на 3.6 гигагерц после отключения зеленых настроек.
Если Вы еще не верите во влияние тактовой частоты — вот результаты сравнения на одинаковой базе, но разных кластерах с частотой 3.6 против 2.6 . Для исключения влияния интернета все запущено внутри кластера
Разница в два раза. Кстати, из сравнения двух показателей можно увидеть, что сетевая задержка ping 150мс на деле создает дополнительной 350мс задержки при открытии формы для частоты процессора 3.6 гигагерц.
На этом можно было закончить статью, если бы эти зеленые настройки отключались так просто. Чтение документации показывает, что в будущем нас ожидает зеленый кошмар системного администратора.
Как поднять Илью Муромца с печи?
«Мы продолжаем то, что мы уже много наделали» @Черномырди.
Адмистраторы подтвердили, что настройки Power management установлены по умолчанию, но быстро по разным причинам их выкрутить в Maximum performance, без перезагрузки кластера серверов нельзя. А он перегружается только в определенное время. Проверим как все работает при настройках по умолчанию «Efficiency – Favor Performance».
Давайте разоргеем кластер небольшой нагрузкой – параллельная запись с нескольких десятков фоновых заданий. Это те тесты которые я использую, например , тут Delayed durability поможет вашему ORM увеличить производительность на 50% и более, если Вы только будете использовать … / SE7EN
Зарядим простой тест, на открытие сложной формы интерфейса, в цикле опять
Нагрузка увеличилась, частота тоже. Но она не дотягивает даже до base speed
Показатели ожидаемо улучшились причем на 14-18% . Как минимум это заметный показатель, а ведь процессор даже не вышел на базовую скорость. Но спешу огорчить – повышение нагрузки не выводит процессор на Base speed, а очереди возникают и тест интерфейса уже не показывает улучшенного результата
Какие выводы можно сделать.
1) Тактовая частота по-прежнему критично влияет даже на не ресурсоемкие задачи, как открытие формы с получением данных с кластера.
2) Режим в BIOS выставленный по умолчанию душит производительность, во всем спектре нагрузки
3) При зеленых настройках Вы получите такое количество плавающих эффектов производительности, что пользователи начнут верить в приметы и колдовство.
Даже когда очевидна необходимость работы на все деньги — частота выглядит как на картинке. При этом уже и очереди на процессор в Windows скапливаются, но он еще не проснулся.
Зеленый архитектурный просчет или архитектурное вредительство.
«Надо контролировать, кому давать, а кому не давать. Почему мы вдруг решили, что каждый может иметь?» @Черномырдин
Главный вопрос, который возникает – а для каких таких применений нужен задушенный процессор, который не работает на все деньги?
Я понимаю, что когда процессору нет работы он может экономить, а если перегрелся нужно притормозить. Но я не понимаю зачем экономить, когда есть реальная работа. Если глубже посмотреть, что нам предлагают — это реальная архитектурная шизофрения.
Лучше почитать подлинник, я опишу лишь кратко на то нужно обратить внимание
https://lenovopress.lenovo.com/lp1836-tuning-uefi-settings-4th-gen-intel-xeon-scalable-processor Документ относится к 4-у поколению Xeon , у нас 5-е, но поверьте лучше не стало.
Итак по комбинации параметров у нас установлен режим по умолчанию «Efficiency – Favor Performance» , у других может называться сбалансированный. Нормальный человек поймет это как «Всегда готов». Но жизненный опыт подсказывает – если во фразе много слов, значит обманут ибо это маркетинг.
Обратите внимание на Category – там, где написано Recommended это текущая политика партии.
P-states –
управляет напряжением и частотой в зависимости от нагрузки. Причем по умолчанию режим стоит Autonomous . Это означает, что он игнорирует установки операционной системы. А влияние скромно описано ка.
«Autonomous mode is used for normal power savings and serves well for most typical business applications.»
Как это влияет на типичное бизнес-приложение, на элементарной операции мы видели.
C-States
По умолчанию активировано в Legacy
Этот параметр управляет уровнем погружения процессора в бездействие (Processor Idle states) . Это не надо путать с погружением в сон монитора через 10 минут, тут все идет мгновенно и вы можете это смотреть через счетчики Windows %Cх — Time. Если они проваливаются на нижние уровни значит процессор медленней активизируется.
C1 Enhanced Mode
По умолчанию Enabled
Позволяет переводить в бездействие отдельно ядра. При этом оговаривается, что C1E is not recommended for latency sensitive workloads.
У меня возникает вопрос – интерфейс это Latency sensitive или нет?
UPI Power Management
По умолчанию Enabled. Ultra path processor interconnect – для коммуникации процессоров между собой. Вред описан ка.
«It is recommended for power saving, however, UPI power management is not recommended for high frequency, low jitter, low latency, virtualization, or database workloads. For these workloads Lenovo recommends setting L1 to Disabled» .
Т.е. он не рекомендован для всего для чего используется сервер.
Energy Efficient Turbo
По умолчанию Enabled. То, что это НедоТурбо понятно из описания
«When Energy Efficient Turbo is enabled, the CPU’s optimal turbo frequency will be tuned dynamically based on CPU utilization. The actual turbo frequency the CPU is set to is proportionally adjusted based on the duration of the turbo request.».
Memory Speed
Пока он по умолчанию установлен в Max performance, но Вы уже понимаете, что будет в следующем поколении серверов — там тоже меняется в худшую сторону и частота и вольтаж
Из вышеперечисленного видно, что инженеры потратили много времени чтобы разработать планы экономии электричества. Проблема в том, что сам идеальный процессор в вакууме не может знать какая работа требует выкладываться по полной, а какая нет. Та же операционная система имеет массу сервисных процессов, рапределяет ресурсы по ядрам и Numa Nodes. А СУБД действуют еще умнее – сами работают с Numa Nodes . И как процессор сам решит кого душить, а кого нет? А как видно выше, уже по умолчанию идет игнорирование операционной системы. Даже если управлять отдельными ядрами по засыпанию, там можно такие бутылочные горлышки получить 1C MSSQL Против Матрицы виртуализации – Перезагрузка / SE7ENс плавающими проблемами, ни один администратор не поймает. Т.е. все эти режимы без управления операционной системой можно спустить в унитаз.
Как администратора превращают в пилота с автопилотом, но без ручного управления
«Знаю, что можно, и знаю опять, как можно. А зачастую и как нужно» @Черномырдин
Как было изложено выше, режимы по умолчанию игнорируют установки операционной системы. Даже если Вы установите все правильно тут
Или сделаете жестко через групповые политики
И даже если на уровне процессов
Поможет только прямое отключение в BIOS
1. Operating mode = Maximum Perfomance
2. CPU P-state control = None
3. C- States = Disabled
4. C1E Enchaced mode = Disabled
5. UPI Power management = Disabled
6. Energy Efficient Turbo = Disabled
В общем все то, что указано в таблице выше в колонке Maximum performance .
В противном случае автопилот решит все за Вас – помните, что многие режимы уже игнорируют установки ОС. Это кстати, очень усложняет общение с администраторами – поскольку «включите на максимальную производительность» не подразумевает выключение одного пункта меню, надо разбираться в BIOS каждого. К борьбе за оптимальные алгоритмы добавляется борьба с зелеными настройками, видимо все другие проблемы решены и больше делать нечего.
Какие установки для клиентов ставят в облаках?
Конечно, самые лучшие, тут даже сомневаться нечего — можете сами посчитать сколько провайдер экономит за счет Вашего времени. Энергия возобновляемый ресурс, а вот жизнь нет придется задавать прямые вопросы.
В целом можно сказать, что закон Мура кончился, и мы вошли в эру зеленого декаданса. Если Вы решили покупать новый сервер, поизучайте вопрос как процессор будет вести в режиме малых нагрузок и можно ли выключить зеленые настройки.
Вы думаете, что все это делают для того, чтобы Вы просто это отключили? Это просто подготовка к новой нормальности – когда выбор в BIOS будет между зеленым и очень зеленым. Кто не верит — смотрите дальше.
В учете как правило долго запрягают (вводят данные, импортируют и т.д.) но потом должны быстро пересчитать месяц, неделю, день в зависимости от объемов данных. И ни на каком этапе производительность страдать не должна.
Но производители оборудования уже начинают нас убеждать, что нужно смотреть не на производительность, а на ( производительность(количество операций в сек)/на ватт) и как эффективно используется тактовая частота в зависимости от нагрузки. Если явно не попросить проверить зеленые настройки будет вот такой график
Understanding P-State Control on Intel Xeon Scalable Processors to Maximize Energy Efficiency
На нем видно, что все делается для снижения частоты, когда нагрузка невелика (обратите на зону IDLE), а ведь польователю, когда он открывает формочки, листает списки или делает поиски по справочникам, тоже хочется что бы все летало.
«Мы еще так будем жить, что нам внуки и правнуки завидовать будут» @Черномырдин
Сейчас много говорят о ИИ и сколько он будет потреблять энергии. На зеленых настройках он точно будет тупить, без вариантов. Что растет в головах у инженеров по процессорам – Вы видите. Они считают, что мало работы означает ее отсутствие и пользователю можно включить процессор десятилетней давности. Вообще архитектура требует взгляда с множества точек зрения Сколько точек зрения у архитектора ИТ? Упустите важный угол зрения и получите проблемы. Пример выше показателен.
Кто думает, что это отдельные просчеты инженеров на западе – посмотрите на их общую зеленую политику, когда они слив воды из реактора в Фукусиме не замечают, а за CO вводят квоты и налоги. В общей картине такие технологические решения в процессорах не выглядят удивительными.
С другой стороны, санкционные войны дают возможность выбора и импортозамещения – просто нужно понимать тренды.
До новых встреч на нашем канале t.me/Chat1CUnlimited