Comment configurer un appareil pour Real-Time performances
Ce guide vous guide tout au long de la configuration de votre appareil pour des performances en temps réel.
Notes
La seule façon d’utiliser cette fonctionnalité consiste à utiliser une application et un appareil personnalisés dans un but spécifique. Le mappage des attributions de cœurs de processeur dans les threads d’application doit correspondre aux cœurs d’appareil physiques et à leur configuration pour les charges de travail en temps réel par rapport aux charges de travail standard.
Désactiver les états inactifs avec
powercfg.exe
Reportez-vous aux 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 (Windows Audio)
Désactivez Windows Update à l’aide de ces conseils.
Notes
Cela ouvre votre appareil aux vulnérabilités, car les correctifs de sécurité ne seront pas pris en compte. Cela dit, il est nécessaire, car 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é de l’appareil et installer les mises à jour pendant les moments où l’appareil peut être retiré pour maintenance
Conseil
Vous trouverez un bon exemple de gestion des mises à jour pendant les temps d’arrêt dans la documentation UWF : Service d’appareils protégés par UWF Si vous utilisez UWF et Soft Real-time, ce processus doit prendre en charge les besoins de mise à jour du système d’exploitation pour les deux fonctionnalités en même temps.
Définissez le csp WindowsIoT pour des performances en temps réel.
Configurer RSS pour migrer les ISR/DPC vers CPU0
Notes
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 DPC threads pour le débogage
Optionnel: 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 sous tension. Pour vous assurer que l’appareil maintient des performances soft-RT, vous devez configurer l’ordinateur pour qu’il exécute ces commandes en tant que script chaque fois que la machine s’allume à 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 d’exécution entre dans un état d’économie d’énergie. Cela n’est pas souhaitable dans les scénarios en temps réel, car les processeurs inactifs ont un retard dans le démarrage de l’exécution des 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 PDC 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 Real-Time
Avant de déployer un appareil en temps réel dans un environnement de production, d’autres configurations sont nécessaires pour garantir que l’appareil peut recevoir des mises à jour et maintenir des 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 l’appareil restent désactivés
Qu’est-ce que le csp WindowsIoT ?
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 des performances soft Real-Time. Ce n’est pas le seul travail à effectuer pour utiliser le temps réel avec un appareil. Vous devez également effectuer les six étapes précédentes. L’utilisation de ce csp pour définir des cœurs en temps réel souples sans effectuer également ce travail de configuration supplémentaire entraîne un dysfonctionnement du système et nécessite une nouvelle configuration pour la récupération.
La hiérarchie de ce csp 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 que votre organization utilise pour configurer leurs appareils ou suivez les étapes ci-dessous pour utiliser le pont MDM.
Utiliser le fournisseur WMI du pont GPM 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 aux tâches en temps réel, le reste étant alloué pour l’exécution de 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 d’UC dédiés aux charges de travail en temps réel. Les valeurs numériques valides doivent être au moins égales à 1 et inférieures au nombre de cœurs physiques dans le processeur.
Les environnements qui utilisent Windows Management Instrumentation (WMI) peuvent utiliser le fournisseur WMI de pont MDM pour ce faire. Voici un exemple pour définir la configuration RealTime avec trois cœurs en temps réel :
Téléchargez l’outil psexec.
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 le 3 de l’avant-dernière ligne par le nombre approprié. Cela permet de réserver les cœurs en commençant par le cœur le plus élevé et en descendant. Par conséquent, la réservation de 3 cœurs sur un processeur à 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’y a aucune garantie que les cœurs en temps réel resteront les plus élevés, car les indices de cœurs en temps réel resteront fixes si le nombre de cœurs processeur augmente par la suite.