Share via


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.

  1. Désactiver les états inactifs avec powercfg.exe

  2. Reportez-vous aux instructions de sécurité pour les services système afin de désactiver les services suivants :

    1. SysMain (Superfetch)
    2. DPS (Service de stratégie de diagnostic)
    3. Audiosrv (Windows Audio)
  3. 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.

  4. Définissez le csp WindowsIoT pour des performances en temps réel.

  5. 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

  6. Facultatif :Désactiver les DPC threads pour le débogage

  7. 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.

  1. 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
    
  2. Exécutez ces trois commandes dans une invite cmd pour désactiver DPS :

    sc query dps
    sc stop dps
    sc config dps start=disabled
    
  3. Exécutez ces trois commandes dans une invite cmd pour désactiver Audiosrv :

    sc query Audiosrv
    sc stop Audiosrv
    sc config Audiosrv start=disabled
    
  4. Exécutez ces trois commandes dans une invite cmd pour désactiver SysMain :

    sc query SysMain
    sc stop SysMain
    sc config SysMain start=disabled
    
  5. 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
    
  6. 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 :

  1. Téléchargez l’outil psexec.

  2. Exécutez une invite de commandes d’administration.

  3. Dans l’invite de commandes, lancez PowerShell sous le compte système psexec.exe -s -i powershell.exe

  4. 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
    
  5. 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.

Suivant : Développer une application soft Real-Time