За счет чего в Формуле-1 увеличилось число обгонов — Лаборатория: Лаборатория — Motor

За счет чего в Формуле-1 увеличилось число обгонов — Лаборатория: Лаборатория — Motor Расшифровка

Почему мы решили разрабатывать свое решение для drs

Конечно, VMware DRS не единственный подобный продукт на современном IT-рынке. Наиболее известный аналог в мире OpenStack — Watcher. Однако очень часто облачные провайдеры разрабатывают свои решения. Почему так происходит? Причины могут быть разные.

В нашем случае все было проще: DRS стал развиваться как часть уже существующей внутренней утилиты по управлению ресурсами OpenStack. Изначально эта утилита была направлена на то, чтобы облегчить работу службы поддержки. В программе можно отследить количество и состояние всех сущностей облака, включая виртуальные машины, гипервизоры, роутеры, диски, файловые хранилища, кластеры K8s, балансировщики нагрузки (Load Balancer As A Service, LBaaS) и многое другое.

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

Так как всех данных, которые утилита уже извлекала для своей работы, было вполне достаточно для реализации DRS, на определенном этапе было принято решение добавить эти функции в утилиту. Это выглядело вполне логичным и обоснованным шагом, хотя сам процесс разработки оказался далеко не простым.

Что такое drs и для чего нужна балансировка в облаке

Термин DRS был впервые введен компанией VMware по названию одноименной утилиты VMware DRS, предназначенной для балансировки кластера виртуальных машин. Сбалансированным считается такой кластер, в котором хосты равномерно распределены между виртуальными машинами с точки зрения потребления ресурсов и не возникает ситуации, когда, например, один хост используется на 99%, а другой на 30%.

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

На некоторых хостах может остаться недостаточно ресурсов, в то время как другие будут простаивать. Задача DRS — вовремя обнаруживать такой дисбаланс и, в зависимости от выбранного уровня автоматизации, либо давать рекомендации по переносу ВМ, вызвавших дисбаланс, на менее загруженные хосты, либо выполнять эту миграцию автоматически.

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

За счет чего в Формуле-1 увеличилось число обгонов — Лаборатория: Лаборатория — Motor
Упрощенная схема работы DRS: при обнаружении дисбаланса в кластере выполняется миграция ВМ на более оптимальные серверы

Для чего необходим DRS? Дело в том, что при отсутствии автоматизированного контроля распределение ВМ между серверами может быть крайне неэффективным. Вот лишь несколько возможных рисков:

  1. Bin Packing Problem. Это риск «неравномерного» заполнения серверов виртуальными машинами и, соответственно, неоправданного увеличения используемых мощностей.

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

    За счет чего в Формуле-1 увеличилось число обгонов — Лаборатория: Лаборатория — Motor
    Bin Packing Problem. Примеры неоптимального и оптимального распределения ВМ по хостам

    На практике описанная проблема усложняется еще и тем, что далеко не всегда используемые физические серверы обладают одинаковой емкостью. Для построения кластеров всегда рекомендуется использовать однородное оборудование: это во многом облегчает распределение ресурсов. Но в реальной жизни конфигурации серверов, закупаемых в разное время, могут сильно различаться — по количеству ядер и мощности процессора, объему памяти, дисков и так далее. Условно говоря, в нашем примере capacity всех серверов будет не 1.4, а 1.7, 1.9, 1.5 и так далее. Кроме этого, нельзя допускать полной утилизации ресурсов на сервере: всегда должен оставаться некоторый «запас» — например, в нашем примере не подошли бы сервера с емкостью ресурсов 1. Все это еще больше усложняет ручное планирование.

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

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

Использование механизма DRS устраняет описанные риски и приносит провайдеру (а значит, и его клиентам) следующие преимущества:

«снял ногу с педали газа…»

Снятие ноги с педали газа гонщиком может означать две вещи: либо экономия топлива, либо отказ побороться за хорошее время на текущем круге, если событие происходит в квалификации. В речи инженеров и англоговорящих журналистов данное выражение встречается как lift and coast — в случаях когда гонщику надо дотянуть до финиша или избежать лишней остановки в боксах.

Must-have-функции drs и как они реализованы у нас

В хорошем решении DRS, я считаю, должны быть реализованы как минимум 5 основных функций:

  1. Возможность выбора уровня автоматизации (вручную или автоматически). В нашем облаке миграции по умолчанию выполняются автоматически. Тем не менее мы выбираем, в каких кластерах гипервизоров использовать DRS, на основании регулярно проводимого анализа потребления ресурсов, подробно описанного выше. Однако дополнительно существует возможность проверить сбалансированность кластера и выполнить необходимые миграции вручную — непосредственно из самой утилиты.

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

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

    Ручная миграция может быть выполнена на уровне конкретной ВМ или гипервизора в целом. В первом случае ВМ уже выбрана и остается описать желаемый уровень утилизации ресурсов (CPU, память) на целевых гипервизорах, на которые планируется перенести эту ВМ. Во втором случае дополнительно указывается желаемый уровень утилизации CPU на исходном гипервизоре — для определения ВМ, подлежащих переносу.

    Настройки для автоматической миграции указываются в отдельном конфигурационном файле. По своему составу они совпадают с параметрами ручной миграции на уровне гипервизора.

  3. Возможность применения индивидуальных правил к определенным ВМ. Иногда может понадобиться запускать некоторые ВМ только на определенных хостах или держать группу ВМ всегда вместе — например, для соблюдения правил лицензирования или во избежание проблем с переносом ВМ, на которых установлено определенное ПО. Для реализации подобных ограничений у нас предусмотрены следующие функции:

    • VIP-проекты для исключения определенных ВМ из автоматических миграций. Это специальная отметка, запрещающая автоматический перенос. При необходимости такие ВМ всегда можно перенести вручную, выполнив миграцию на уровне конкретной ВМ или, в случае миграции на уровне гипервизора, указав в параметрах необходимость включения VIP-проектов.

    • Возможность выбора конкретной кастомной зоны (Availability Zone, AZ) или агрегата для миграции. Под агрегатом у нас понимается группа физических серверов, объединенная для какой-либо цели, например для размещения ресурсоемких приложений конкретного заказчика. По сути, зона доступности — это тот же агрегат, только более высокого уровня. При выполнении миграции вручную есть возможность явно указать зону доступности или агрегат, куда разрешено перемещать выбранные ВМ.

  4. Получение сводки по использованию ЦП и памяти ВМ. Необходимость мониторинга, думаю, очевидна абсолютно для любой информационной системы. DRS в этом плане не исключение. В нашей утилите можно просматривать текущее потребление ресурсов (CPU и RAM) на уровне ВМ, физических серверов и агрегатов серверов.

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

    Дополнительно на графике строится прогноз роста запрашиваемых ресурсов в будущем — на основе аппроксимации полиномов третьей степени методом наименьших квадратов. Если вкратце: график, построенный на основе реальных данных, достраивается графиком прогноза — полиномом третьей степени, максимально приближенным к линии, проходящей между всеми точками исходного графика. Ориентируясь на прогноз, можно своевременно предсказывать дальнейший рост облака.

    Описанный график (включая прогноз) возможно построить и для других сущностей, не связанных с DRS, но отслеживаемых нашей утилитой: например, спрогнозировать рост количества дисков определенного типа, файловых хранилищ, роутеров, балансировщиков и так далее.

  5. Поддержка «живых» миграций (Live Migration). «Живые» миграции, которые реализованы и у нас, не требуют остановки ВМ. Пользователи продолжают работать с исходным экземпляром ВМ до тех пор, пока ее данные не будут полностью перенесены на новый физический сервер. После копирования последних изменений из оперативной памяти пользователь продолжит работу с той же ВМ, которая фактически будет размещена уже на другом хосте.

    Также в нашей утилите есть возможность просмотра состояния всех миграций в режиме реального времени: можно увидеть текущие и завершенные миграции, их статус, сведения о сервере-источнике и сервере-приемнике, о перенесенных ВМ и так далее.

Outperforming the car

Данный термин в русскоязычных СМИ обычно не используется, однако в англоязычных — вполне. Это словосочетание употребляется в ситуации, когда гонщик с помощью своего таланта вытаскивает слабую машину на более высокий уровень выступлений. Фактически, русскоязычным аналогом может считаться фраза «прыгнул выше головы».

Аутсайдер

По сути, аутсайдер — это тот гонщик, который с большой долей вероятности отстанет от лидера на один или более кругов по ходу дистанции гонки (в англоязычных СМИ встречается как backmarker).

Гранулирование/пузырение

С гранулированием или пузырением (blistering/graining) резины команды «Формулы-1» сталкиваются почти в каждом заезде каждого этапа, учитывая прихотливые современные гоночные покрышки. Данный процесс происходит из-за банального перегрева шин, происходящего вследствие большого износа или неправильной работы с ними. Зачастую данное понятие зритель может услышать в радиопереговорах гонщика команды «Мерседес» Льюиса Хэмилтона.

За счет чего в формуле-1 увеличилось число обгонов — лаборатория

Совсем по-другому дела обстояли на трассах в Малайзии и Китае, где широкие длинные прямые позволяли пилотам в полной мере воспользоваться преимуществами системы. Особенно зрелищной получилась гонка в Шанхае – по ее ходу было совершено 68 обгонов.

Впрочем, количество обгонов в сезоне 2022 года увеличилось не только из-за внедрения DRS – в значительной степени на ситуацию повлияла и смена поставщика резины, и возвращение системы рекуперации кинетической энергии KERS. Так или иначе, нынешняя кампания FIA по увеличению количества обгонов стала одной из самых успешных в истории Формулы-1.

##Воздуховоды

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

Появлению DRS в том виде, в котором она существует сейчас, Формула-1 отчасти обязана инженерам команды McLaren. Представленный в январе 2022 года автомобиль MP4-25 обратил на себя внимание хитрой конструкцией кожуха двигателя. Сложная система воздушных каналов внутри машины позволяла пилоту в определенные моменты гонки снижать эффективность заднего антикрыла, увеличивая таким образом скорость на прямых. По оценкам экспертов, система, получившая название f-duct, давала преимущество примерно в полсекунды с круга, и вскоре ее разработкой занялись практически все остальные команды.

Активировать f-duct пилоты McLaren могли самостоятельно. В передней части автомобиля находился дополнительный воздухозаборник, через который поток воздуха поступал прямо в кокпит в специальное отверстие. Зажимая его коленом, гонщик направлял поток по дополнительному каналу в заднюю часть машины. Над головой пилота был предусмотрен еще один воздухозаборник. В неактивном состоянии поток воздуха от него направлялся к коробке передач и не влиял на работу заднего антикрыла. Когда же пилот зажимал дыру в кокпите, два потока встречались, за счет чего воздух начинал поступать и в самый главный канал – тот, что вел к заднему антикрылу. Поступая в отверстие в верхнем элероне, поток воздуха из f-duct отсекал поток с нижней кромки заднего антикрыла, снижая эффективность его работы и позволяя развивать большую скорость на прямых.

В точности скопировать систему McLaren не удалось никому. Дженсон Баттон и Льюис Хэмилтон на прямых отрезках зажимали отверстие внутри кокпита коленом левой ноги. Это практически не отвлекало их от пилотирования автомобиля, потому как левой ногой гонщики Формулы-1 только тормозят.

Чтобы сохранить «коленный» принцип работы, инженерам остальных команд пришлось бы вносить изменения в конструкции монококов своих автомобилей, что запрещено регламентом. А потому пилотам тех конюшен, которые скопировали решение McLaren по ходу чемпионата, приходилось зажимать отверстие внутри кокпита локтем или запястьем левой руки. Чиновникам FIA эта идея показалась не слишком удачной – по сути, на прямых отрезках и в быстрых поворотах многие гонщики вынуждены были держать руль одной рукой, при этом еще и нажимая пальцами лепестки переключения передач.

В регламент на 2022 год из соображений безопасности были внесены поправки, запрещающие f-duct, однако идея инженеров McLaren фактически заставила специалистов рабочей группы FIA по проблеме обгонов задуматься о внедрении DRS. Пользоваться новой системой пилотам значительно проще, чем f-duct – заставить крыло раскрыться можно, просто нажав на кнопку – в большинстве автомобилей она вынесена на руль.

##Урок истории

Впрочем, подвижные антикрылья появились в Формуле-1 задолго до старта сезона 2009 года. Еще более сорока лет назад многие команды чемпионата использовали конструкции, подобные той, что ныне зовется DRS.

Собственно, первые антикрылья появились в Формуле-1 в начале сезона 1968 года, когда команды только начинали экспериментировать с аэродинамикой. На Гран-при Монако Lotus на 49B Грэма Хилла в передней части автомобиля появились закрылки, ставшие прообразом современных конструкций. Задняя часть машины была клиновидной формы, что также способствовало увеличению прижимной силы, но первое настоящее заднее антикрыло было представлено две недели спустя на этапе в Бельгии – Ferrari 312, оснащенную экспериментальной конструкцией, в Спа пилотировал Крис Эймон. Закрепленное на высоких стойках крыло позволяло новозеландцу значительно быстрее проходить повороты, и в квалификации он буквально разгромил соперников, проехав круг длиной в 14 километров почти на четыре секунды быстрее показавшего второе время Джеки Стюарта. Напарник по Ferrari Жаки Икс, выступавший на бескрылой 312, проиграл Эймону почти шесть секунд.

Преимущества новой конструкции стали очевидны сразу же, причем, инженеры команд быстро пришли к выводу, что для достижения максимального эффекта крылья должны быть подвижны. На Гран-при Германии на одной из машин Matra за изменение угла атаки антикрыла отвечала специальная электронная система – при нажатии на педаль тормоза крыло «вставало» в атакующее положение. На большинстве других автомобилей «первобытные» DRS были механическими – к приводам были подведены специальные тросы, степень натяжения которых, а вместе с ней и угол атаки крыла, гонщик мог менять самостоятельно.

Самая прогрессивная конструкция того времени появилась опять-таки на Ferrari. На домашнем Гран-при Италии в Монце команда представила систему, которая позволяла изменять угол атаки крыла в зависимости от выбранной передачи. На низших – от первой до третьей – и при нажатии на педаль тормоза крыло закрывалось, а на высших, при нажатом акселераторе, – напротив, открывалось, позволяя развивать большую скорость.

Избыточная и недостаточная поворачиваемость

При настройке машины гонщики зачастую говорят, что у них недостаточная поворачиваемость машины (understeer) или избыточная (oversteer). Разбираемся, что это означает. Избыточная поворачиваемость: автомобиль слишком легко заходит поворот, слегка зауживая свою траекторию.

Компоненты силовой установки

Чуть ли не главной головной болью мотористов являются составляющие силовой установки (она же power unit). После тотального ограничения их количества в 2022 году команды «Формулы-1» начали получить немыслимо огромные штрафы в виде потери мест на стартовой решётке из-за нарушения лимита деталей СУ.

В 2020 году можно будет использовать в течение сезона в количестве трёх штук кинетических моторов-генераторов (MGU-K), тепловых моторов-генераторов (MGU-H) (оба также известны как системы рекуперации кинетической и тепловой энергии соответственно, по сути — бывший КЕРС), блоков цилиндров (ICE), турбонаддувов (turbo charge).

Назначение

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

  • громкоговорящей связи по типу «Диспетчер — Абоненты»;
  • селекторной связи;
  • прямой двухсторонней связи с подключенными абонентами;
  • выхода на коммутатор междугородней связи;
  • выхода на местную АТС;
  • оптической и акустической сигнализации событий и режимов функционирования комплекса.

Обладатель поул-позиции

Обладатель поул-позиции — человек, который занял по итогам квалификации первое место на стартовой решётке — благодаря лучшему времени в третьем сегменте или благодаря штрафам более быстрых соперников.

Проплешина

Проплешина — так называется пятно на резине, оставшиеся после чересчур жесткого торможения (блокировки). Среди болельщиков можно встретить выражение «оквадратил резину». Из-за этого «пятна» появляется сильная вибрация, которая безусловно снижает темп гонщика. Влияние оквадрачивания резины хорошо показывает начало последнего круга Большого приза Европы 2005 года.

Ранний заезд в боксы

В лексиконе иностранных СМИ да и российских порой можно встретить слово «андеркат» (undercut), означающее ранний заезд в боксы с целью опередить конкурента за счёт более свежей резины. Такой приём популярен в современных гонках, так как иногда заезд происходит в «паровозных условиях», из-за чего в нём можно выиграть благодаря лишь грамотно проработанной стратегии.

С какими сложностями мы столкнулись

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

  1. Сбор метрик. Так как в самом OpenStack не было механизма получения метрик с гипервизоров и ВМ, пришлось разрабатывать собственные инструменты. Так появился демон katana-client, считывающий нужную нам информацию из Libvirtd. Однако возвращаемые им данные были инкрементными, так как для их получения использовались нарастающие счетчики. Поэтому мы дополнительно разработали компонент katana-collector — для агрегации последних полученных из katana-client значений, расчета дельт между ними и их усреднения. В результате мы стали получать нужную нам величину — утилизацию в секунду.

  2. Выбор наиболее корректных метрик. Перед нами стояла задача максимально корректно определять загруженность гипервизоров. Если с оперативной памятью все было понятно, то утилизацию процессора мы пробовали находить различными способами. Изначально ориентировались на среднюю загрузку процессора (Load Average). Но впоследствии все алгоритмы были переписаны на использование метрики CPU Idle, показывающей процент свободного времени процессоров. В конечном итоге это оказалось более правильной метрикой для оценки ресурсов процессора.

  3. Получение метрик с конкретных ВМ. Наряду с получением метрик по гипервизорам необходимо было получать аналогичную информацию по конкретным ВМ — для принятия решения о том, какие именно ВМ подлежат миграции в случае повышенной утилизации гипервизора. На первых этапах разработки сумма данных, получаемых с ВМ, расходилась с общими данными по гипервизору на 20–30%.

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

  4. Подбор пороговых значений для автоматических миграций. В ходе тестирования мы неоднократно изменяли граничные значения утилизации ресурсов, используемые в расчетах, пытаясь вывести формулу «идеальной» сбалансированности облака. В качестве нижней границы, сигнализирующей о необходимости миграции, сейчас принято значение метрики CPU Idle 30%, но идеально для нас поддерживать данное значение не менее 50%. За достаточное количество памяти на гипервизоре принято значение 64 GB. Однако при необходимости эти границы всегда можно изменить.

  5. Необходимость обработки ситуаций с нехваткой свободных ресурсов. В основе алгоритма лежит два простых шага: 1) выбор всех виртуальных машин для последующей миграции; 2) выбор подходящих хостов для миграции на них выбранных ранее виртуальных машин. Оптимальность второго шага определяется достаточным количеством свободных ресурсов в облаке. Таким образом, ошибки при выполнении этого шага неизбежны: может возникнуть ситуация, когда подходящие хосты не будут найдены. Алгоритм рассматривает эту ситуацию как штатную (выводя соответствующее уведомление), и это служит хорошим триггером для правильного capacity planning внутри облака.

Схема работы drs в облаке mcs

Схема работы DRS несколько раз менялась, совершенствуясь в ходе тестирования. Сейчас в промышленной эксплуатации находится следующая его форма:

Тормозной баланс

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

Устройство и работа

Аппаратура дорожной распорядительной связи ДРС состоит из устройств трех типов, выполненных в формате аппаратов с габаритами 2500х512х324 мм. Каждый аппарат снабжен панелью управления, громкоговорителем и микрофоном. Соединение станций осуществляется при помощи 2-х (дальние абоненты)

Червячки

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

По сути, червячки (marbles) являются показателем наката и благодаря им зрителю можно увидеть гоночную траекторию.  Так что же такое эти самые «червячки»? Это кусочки резины, которые отлетают от покрышек в процессе их износа. Как правило, ими усеяна неправильная или грязная траектория, выезд на которую карает гонщика потерей хорошего сцепления с трассой.

Чистый/грязный воздух

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

Это эффект, создающийся из-за особенностей современного аэродинамического обвеса. Как известно, для устранения «грязного» воздуха, который значительно снижает показатели прижимной силы позади идущего автомобиля (к примеру, слипстрим — это наглядное воздействие грязного воздуха), была создана целая рабочая группа под предводительством Росса Брона, готовившая концепт машины 2021 года.

Вместо заключения

Если вам понравилась статья и было бы интересно почитать ее продолжение с более детальной информацией на тему реализации DRS в облаке (включая код, используемый для загрузки метрик из Libvirtd, и другие технические подробности), пожалуйста, пишите комменты. Спасибо!

Погонять нашу облачную платформу можно тут.

Другие сокращения:  Указание МПС РФ от 08.10.1999 N Л-2257у "О медицинских регламентах допуска к работам, непосредственно связанным с движением поездов, и деятельности врачебно-экспертных комиссий лечебно-профилактических учреждений федерального железнодорожного транспорта" (вместе с "Положением о врачебно-экспертной комиссии лечебно-профилактического учреждения федерального железнодорожного транспорта", "Положением о дорожной врачебно-экспертной комиссии лечебно-профилактического учреждения федерального железнодорожного транспорта", "Положением о центральной врачебно-экспертной комиссии лечебно-профилактического учреждения федерального железнодорожного транспорта") - КонсультантПлюс
Оцените статью
Расшифруй.Ру