Настройка устройства для производительности в режиме реального времени
В этом руководстве описано, как настроить устройство для производительности в режиме реального времени.
Примечание.
Единственным способом использования этой функции является приложение и устройство, созданные для конкретной цели. Сопоставление назначений ядра процессора в потоках приложений должно соответствовать ядрам физических устройств и их конфигурации для рабочих нагрузок в режиме реального времени и стандартных рабочих нагрузок.
Отключение состояний простоя с помощью
powercfg.exe
См. рекомендации по безопасности системных служб, чтобы отключить следующие службы:
- SysMain (Superfetch)
- DPS (служба политики диагностики)
- Audiosrv (Windows Audio)
Отключите Обновл. Windows с помощью этого руководства.
Примечание.
При этом устройство будет открываться для уязвимостей, так как исправления безопасности не будут проходить. Тем не более чем необходимо, так как агент Обновл. Windows не учитывает изоляцию ядра ЦП. Рекомендуется иметь план для обеспечения безопасности устройства и установки обновлений в периоды, когда устройство может быть снято для обслуживания.
Совет
Хороший пример управления обновлениями во время простоя можно найти в документации по UWF: устройства , защищенные службой UWF, если вы используете UWF и Soft Real-time, этот процесс должен заботиться о необходимости обновления ОС одновременно.
Задайте CSP WindowsIoT для производительности в режиме реального времени.
Настройка RSS для переноса ISR/DPCs на ЦП0
Примечание.
Это зависит от оборудования и может быть сделано только в том случае, если сетевой адаптер поддерживает RSS
Необязательный вариант. Отключение потоковой отладки
Необязательно. Развертывание пользовательского драйвера закрепления DPC для определенных аппаратных прерываний, следуя этим рекомендациям.
Выполнение этой конфигурации из командной строки
Это настраивает устройство во время включения. Чтобы убедиться, что устройство поддерживает производительность soft-RT, необходимо настроить компьютер для выполнения этих команд в качестве скрипта каждый раз, когда компьютер работает с этим руководством.
Выполните эти две команды в командной строке. Это отключает состояния простоя ЦП, где ЦП без инструкций для выполнения будет вводить состояние экономии питания. Это нежелательно в сценариях реального времени, так как неактивные ЦП имеют задержку при запуске новых инструкций:
powercfg.exe /setacvalueindex SCHEME_CURRENT SUB_PROCESSOR IdleDisable 1 powercfg.exe /setactive SCHEME_CURRENT
Выполните следующие три команды в командной строке, чтобы отключить DPS:
sc query dps sc stop dps sc config dps start=disabled
Выполните следующие три команды в командной строке, чтобы отключить Audiosrv:
sc query Audiosrv sc stop Audiosrv sc config Audiosrv start=disabled
Выполните следующие три команды в командной строке, чтобы отключить SysMain:
sc query SysMain sc stop SysMain sc config SysMain start=disabled
Выполните следующие три команды в командной строке, чтобы отключить Обновл. Windows:
sc query wuauserv sc stop wuauserv sc config wuauserv start=disabled
Выполните эту команду, чтобы отключить потоковые ЦП
reg add "HKLM\System\CurrentControlSet\Control\Session Manager\kernel" /v ThreadDpcEnable /t REG_DWORD /f /d 0
Обеспечение настройки устройства в режиме реального времени
Перед развертыванием устройства в рабочей среде в режиме реального времени требуется другая настройка, чтобы убедиться, что устройство может получать обновления и поддерживать производительность в режиме реального времени:
- Настройка скрипта, который может повторно обновлять Обновл. Windows, устанавливать обновления и выключать Обновл. Windows еще раз
- Настройте проверки, чтобы убедиться, что службы на устройстве остаются отключенными
Что такое CSP WindowsIoT?
Используется WindowsIoT CSP
для настройки устройств Windows IoT. В настоящее время единственными функциями, доступными в этом CSP, является настройка устройства для производительности Soft Real-Time. Это не единственная работа, которую необходимо выполнить для использования обратимого реального времени с устройством. Кроме того, необходимо выполнить предыдущие шесть шагов. Использование этого CSP для установки мягких ядер в режиме реального времени без выполнения этой дополнительной работы конфигурации приводит к сбоям системы и требует повторного восстановления.
Иерархия этого CSP выглядит следующим образом:
WindowsIoT
SoftRealTimeProperties
SetRTCores
Значение больше 0 и меньше общего числа ядер на устройстве должно быть предоставлено параметру SetRTCores. Вы можете настроить этот CSP с помощью любого средства, используемого вашей организацией для настройки своих устройств, или использовать приведенные ниже действия, чтобы использовать мост MDM.
Использование поставщика WMI моста MDM для настройки CSP WindowsIoT
Эта служба CSP настраивает систему для производительности в режиме реального времени. Необходимо указать количество ядер ЦП, выделяемых для задач в режиме реального времени, а остальные — для выполнения системных или стандартных задач пользователей. Числовое значение должно быть указано в узле SetRTCores. Это число ядер ЦП, выделенных для рабочих нагрузок в режиме реального времени. Допустимые числовые значения должны быть не менее 1 и меньше числа физических ядер цП.
Среды, использующие инструментарий управления Windows (WMI), могут использовать поставщик WMI моста MDM для выполнения этого. Ниже приведен пример настройки конфигурации RealTime с тремя ядрами в режиме реального времени:
Скачайте средство psexec.
Запустите административную командную строку.
В командной строке запустите PowerShell в системной учетной записи
psexec.exe -s -i powershell.exe
Выполните следующий скрипт:
$nameSpaceName="root\cimv2\mdm\dmmap" $className="MDM_WindowsIoT_SoftRealTimeProperties01" $obj = Get-CimInstance -Namespace $namespaceName -ClassName $className Add-Type -AssemblyName System.Web Set-CimInstance -CimInstance $obj $obj.SetRTCores = 3 Set-CimInstance -CimInstance $obj
Перезапустите компьютер, чтобы активировать изменение.
Совет
Один и тот же сценарий можно использовать для любого количества ядер реального времени, просто заменив 3 в последней строке соответствующим числом. Это зарезервирует ядра, начиная с самого высокого ядра и спускаясь вниз. Поэтому резервирование 3 ядер на 4 ядра ЦП будет резервировать ядра 3, 2 и 1 и оставить ядро 0 для системных и нереационных задач в режиме реального времени. Обратите внимание, что нет никаких гарантий того, что ядра в режиме реального времени будут оставаться самыми высокими, так как индексы ядра в режиме реального времени останутся фиксированными при увеличении количества ядер ЦП после этого.