Partager via


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.

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

  2. Référencez les 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 (Audio Windows)
  3. 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.

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

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

  6. Facultatif : désactiver les contrôleurs de domaine thread pour le débogage

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

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

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

Suivant : Développer une application en temps réel soft