Comment configurer un appareil pour les performances en temps réel
Ce guide vous guide tout au long de la configuration de votre appareil pour des performances en temps réel.
Remarque
La seule façon d’utiliser cette fonctionnalité est d’utiliser une application et un appareil personnalisés à des fins spécifiques. Le mappage des attributions de cœurs de processeur dans les threads d’application doit correspondre aux cœurs d’appareils physiques et à leur configuration pour les charges de travail en temps réel et standard.
Désactiver les états inactifs avec
powercfg.exe
Référencez les instructions de sécurité pour les services système afin de désactiver les services suivants :
- SysMain (Superfetch)
- DPS (Service de stratégie de diagnostic)
- Audiosrv (Audio Windows)
Désactivez Windows Update à l’aide de ces conseils.
Remarque
Cela ouvre votre appareil aux vulnérabilités, car les correctifs de sécurité ne passent pas. Cela dit, il est nécessaire que l’agent Windows Update ne respecte pas l’isolation du cœur du processeur. Nous vous recommandons d’avoir un plan pour garantir la sécurité et l’installation des mises à jour des appareils pendant les périodes où l’appareil peut être supprimé pour la maintenance
Conseil
Vous trouverez un bon exemple de gestion des mises à jour pendant les temps d’arrêt dans la documentation UWF : les appareils protégés par UWF si vous utilisez UWF et Soft Real-time, ce processus doit prendre en charge la nécessité de mettre à jour le système d’exploitation en même temps pour les deux fonctionnalités.
Définissez le fournisseur csp WindowsIoT pour les performances en temps réel.
Configurer RSS pour migrer des ISR/DPCs vers l’UC0
Remarque
Cela dépend du matériel et ne peut être effectué que si la carte réseau prend en charge RSS
Facultatif : désactiver les contrôleurs de domaine thread pour le débogage
Facultatif : déploiement d’un pilote d’épinglage DPC personnalisé pour certaines interruptions matérielles en suivant ces instructions.
Exécution de cette configuration à partir de la ligne de commande
Cela configure l’appareil tout en utilisant l’alimentation. Pour vous assurer que l’appareil conserve les performances soft-RT, vous devez configurer l’ordinateur pour exécuter ces commandes en tant que script chaque fois que l’ordinateur est activé à l’aide de ces instructions.
Exécutez ces deux commandes dans une invite cmd. Cela désactive les états d’inactivité du processeur, où un processeur sans instructions à exécuter entrera dans un état d’économie d’alimentation. Cela n’est pas souhaitable dans les scénarios en temps réel, car les processeurs inactifs ont un délai pour commencer à exécuter de nouvelles instructions :
powercfg.exe /setacvalueindex SCHEME_CURRENT SUB_PROCESSOR IdleDisable 1 powercfg.exe /setactive SCHEME_CURRENT
Exécutez ces trois commandes dans une invite cmd pour désactiver DPS :
sc query dps sc stop dps sc config dps start=disabled
Exécutez ces trois commandes dans une invite cmd pour désactiver Audiosrv :
sc query Audiosrv sc stop Audiosrv sc config Audiosrv start=disabled
Exécutez ces trois commandes dans une invite cmd pour désactiver SysMain :
sc query SysMain sc stop SysMain sc config SysMain start=disabled
Exécutez ces trois commandes dans une invite cmd pour désactiver Windows Update :
sc query wuauserv sc stop wuauserv sc config wuauserv start=disabled
Exécutez cette commande pour désactiver les contrôleurs de domaine threads
reg add "HKLM\System\CurrentControlSet\Control\Session Manager\kernel" /v ThreadDpcEnable /t REG_DWORD /f /d 0
S’assurer que l’appareil reste configuré pour le temps réel
Avant de déployer un appareil en temps réel dans un environnement de production, il existe d’autres configurations nécessaires pour garantir que l’appareil peut recevoir des mises à jour et gérer les performances en temps réel :
- Configurer un script qui peut réactiver Windows Update, installer des mises à jour et désactiver à nouveau Windows Update
- Configurer des vérifications pour vous assurer que les services sur appareil restent désactivés
Qu’est-ce que le csp WindowsIoT ?
Il WindowsIoT CSP
est utilisé pour configurer des appareils Windows IoT. Actuellement, la seule fonctionnalité disponible dans ce fournisseur de solutions cloud consiste à configurer un appareil pour les performances soft en temps réel. Ce n’est pas le seul travail qui doit être effectué afin d’utiliser du temps réel doux avec un appareil. Vous devez également effectuer les six étapes précédentes. L’utilisation de ce fournisseur de solutions cloud pour définir des cœurs en temps réel souples sans effectuer ce travail de configuration supplémentaire entraîne un dysfonctionnement du système et nécessite une réinitialisation pour récupérer.
La hiérarchie de ce fournisseur de solutions Cloud est la suivante :
WindowsIoT
SoftRealTimeProperties
SetRTCores
Une valeur supérieure à 0 et inférieure au nombre total de cœurs sur l’appareil doit être fournie au paramètre SetRTCores. N’hésitez pas à définir ce csp à l’aide de l’outil utilisé par votre organisation pour configurer leurs appareils ou pour utiliser les étapes ci-dessous pour utiliser le pont MDM.
Utiliser le fournisseur WMI de pont MDM pour configurer le fournisseur CSP WindowsIoT
Ce fournisseur de solutions Cloud configure le système pour des performances en temps réel. Vous devez fournir le nombre de cœurs d’UC à allouer à des tâches en temps réel, avec le reste alloué pour l’exécution des tâches système ou utilisateur standard. Une valeur numérique doit être fournie dans le nœud SetRTCores. Il s’agit du nombre de cœurs de processeur dédiés aux charges de travail en temps réel. Les valeurs numériques valides doivent être au moins 1 et inférieures au nombre de cœurs physiques dans le processeur.
Les environnements qui utilisent WMI (Windows Management Instrumentation) peuvent utiliser le fournisseur WMI de pont MDM pour y parvenir. Voici un exemple pour définir la configuration RealTime avec trois cœurs en temps réel :
Exécutez une invite de commandes d’administration.
Dans l’invite de commandes, lancez PowerShell sous le compte système
psexec.exe -s -i powershell.exe
Exécutez le script suivant :
$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
Redémarrez l’ordinateur pour activer la modification.
Conseil
Vous pouvez utiliser le même script pour le nombre de cœurs en temps réel dont vous avez besoin, en remplaçant simplement les 3 de la deuxième à la dernière ligne par le nombre approprié. Cela réserve des cœurs à partir du cœur le plus élevé et va vers le bas. Par conséquent, la réservation de 3 cœurs sur un processeur de 4 cœurs réserve les cœurs 3, 2 et 1 et laisse le cœur 0 pour les tâches système et non en temps réel. Notez qu’il n’existe aucune garantie que les cœurs en temps réel restent les plus élevés, car les indices de cœur en temps réel restent fixes si le nombre de cœurs processeur augmente ensuite.