ANAVEM
Languageen
Comment optimiser les performances de Windows Server 2025 pour une efficacité maximale

Comment optimiser les performances de Windows Server 2025 pour une efficacité maximale

Maîtrisez l'optimisation avancée des performances de Windows Server 2025 grâce à une configuration stratégique, une gestion des ressources et une surveillance pour éliminer les goulets d'étranglement et maximiser l'efficacité.

Evan MaelEvan Mael
26 mars 2026 15 min
mediumwindows-server 7 étapes 15 min

Pourquoi optimiser les performances de Windows Server 2025 ?

L'optimisation des performances de Windows Server a considérablement évolué avec la version 2025, introduisant de nouvelles capacités pour l'intégration des SSD NVMe, une planification améliorée des processeurs et une gestion des ressources améliorée. Les charges de travail des serveurs modernes exigent une efficacité maximale de chaque composant matériel, et les configurations par défaut de Windows privilégient souvent la compatibilité plutôt que la performance.

Les goulets d'étranglement de performance dans les environnements Windows Server se manifestent généralement dans quatre domaines clés : inefficacités de la planification du CPU, surcharge de la gestion de la mémoire, limitations de l'I/O de stockage et contraintes de débit réseau. Les dernières directives de réglage des performances de Windows Server 2025 mettent l'accent sur des changements de configuration stratégiques qui peuvent offrir des améliorations de performance de 20 à 40 % sans investissement matériel supplémentaire.

Quels gains de performance pouvez-vous attendre ?

Grâce à une optimisation systématique, vous obtiendrez des améliorations mesurables dans tous les sous-systèmes du serveur. L'utilisation du CPU devient plus efficace grâce à une configuration appropriée de la planification des processeurs, la gestion de la mémoire réduit la surcharge grâce à l'optimisation des services, et les performances de stockage s'améliorent considérablement avec l'adoption des SSD NVMe et une configuration correcte des disques. Le débit réseau augmente grâce à des réglages avancés des adaptateurs et à l'optimisation TCP.

Ce tutoriel fournit des étapes de configuration pratiques utilisant des commandes PowerShell, des modifications du registre et des outils de gestion Windows. Chaque optimisation inclut des étapes de vérification pour mesurer l'amélioration et des conseils de dépannage pour les problèmes courants. Les techniques s'appliquent à la fois aux serveurs physiques et aux machines virtuelles exécutant Windows Server 2025 ou 2022.

Guide de mise en oeuvre

Procédure complète

01

Identifier les goulets d'étranglement de performance à l'aide des outils intégrés

Commencez par établir des métriques de performance de base pour identifier où votre serveur rencontre des difficultés. Windows Server fournit plusieurs outils intégrés pour une analyse complète des goulets d'étranglement.

Ouvrez le Gestionnaire des tâches avec des privilèges élevés :

Start-Process taskmgr -Verb RunAs

Accédez à l'onglet Performance et examinez l'utilisation du CPU, de la mémoire, du disque et du réseau. Recherchez une utilisation soutenue au-dessus de 80 % sur n'importe quelle ressource.

Lancez le Moniteur de performance pour une analyse détaillée :

perfmon

Ajoutez ces compteurs critiques à surveiller :

  • Processor(_Total)\% Processor Time
  • Memory\Available MBytes
  • PhysicalDisk(_Total)\% Disk Time
  • Network Interface(*)\Bytes Total/sec

Exécutez cette commande PowerShell pour obtenir un aperçu rapide du système :

Get-Counter "\Processor(_Total)\% Processor Time","\Memory\Available MBytes","\PhysicalDisk(_Total)\% Disk Time" -SampleInterval 5 -MaxSamples 12
Astuce pro : Effectuez la surveillance des performances pendant les heures de pointe pour identifier les goulets d'étranglement réels, et non les métriques en période d'inactivité.

Vérification : Le Moniteur de performance doit afficher des graphiques en temps réel. Si le CPU dépasse constamment 80 %, si la mémoire tombe en dessous de 20 % disponible, ou si le temps de disque reste au-dessus de 90 %, vous avez identifié des goulets d'étranglement.

02

Configurer le plan d'alimentation et la planification du processeur pour des performances optimales

Les paramètres d'alimentation par défaut de Windows Server privilégient l'efficacité énergétique par rapport aux performances. Pour les serveurs de production, vous avez besoin d'une configuration de performance maximale.

Réglez le plan d'alimentation sur Haute Performance :

powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

Vérifiez le plan d'alimentation actif :

powercfg /getactivescheme

Pour les serveurs sans interface graphique (Server Core), optimisez la planification du processeur pour les services en arrière-plan :

Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl" -Name Win32PrioritySeparation

Si la valeur renvoie 2 (optimisé pour les programmes), changez-la en 18 pour les services en arrière-plan :

Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl" -Name Win32PrioritySeparation -Value 18

Pour les serveurs avec interface graphique exécutant des applications interactives, gardez la valeur à 2.

Avertissement : Modifier la planification du processeur nécessite un redémarrage et peut affecter la réactivité des applications. Testez ce changement pendant les fenêtres de maintenance.

Redémarrez le serveur pour appliquer les modifications de planification du processeur :

Restart-Computer -Force

Vérification : Après le redémarrage, confirmez le plan d'alimentation avec powercfg /getactivescheme et vérifiez à nouveau la valeur du registre pour vous assurer que les modifications ont été conservées.

03

Optimiser la gestion de la mémoire et désactiver les services inutiles

L'optimisation de la mémoire implique à la fois de libérer de la RAM des services inutilisés et d'ajuster le gestionnaire de mémoire pour votre type de charge de travail.

Tout d'abord, identifiez les services consommant inutilement de la mémoire :

Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 20 ProcessName, WorkingSet, CPU

Ouvrez la console de gestion des services :

services.msc

Désactivez ces services couramment inutilisés (vérifiez qu'ils ne sont pas nécessaires pour vos rôles spécifiques) :

  • Spouleur d'impression (sauf si l'impression est requise)
  • Service de fax
  • Recherche Windows (si vous n'utilisez pas l'indexation de fichiers)
  • Service de saisie Tablet PC
  • Service de partage réseau du Lecteur Windows Media

Utilisez PowerShell pour désactiver les services de manière programmatique :

$servicesToDisable = @('Spooler', 'Fax', 'WSearch', 'TabletInputService', 'WMPNetworkSvc')
foreach ($service in $servicesToDisable) {
    $svc = Get-Service -Name $service -ErrorAction SilentlyContinue
    if ($svc -and $svc.Status -eq 'Running') {
        Stop-Service -Name $service -Force
        Set-Service -Name $service -StartupType Disabled
        Write-Host "Disabled service: $service"
    }
}

Vérifiez l'utilisation actuelle de la mémoire et la liste d'attente :

Get-Counter "\Memory\Available MBytes", "\Memory\Standby Cache Normal Priority Bytes", "\Memory\Standby Cache Reserve Bytes"
Astuce pro : Pour les applications gourmandes en mémoire comme les bases de données, envisagez d'utiliser des pages larges. Activez avec bcdedit /set IncreaseUserVa 3072 pour les applications 32 bits sur des systèmes 64 bits.

Vérification : Exécutez Get-Service | Where-Object {$_.Status -eq 'Stopped' -and $_.StartType -eq 'Disabled'} pour confirmer les services désactivés, et vérifiez que la mémoire disponible a augmenté avec Get-Counter "\Memory\Available MBytes".

04

Mettre en œuvre l'optimisation des performances de stockage

Le stockage est souvent le principal goulot d'étranglement des performances dans les environnements Windows Server. L'optimisation moderne se concentre sur l'adoption des SSD NVMe et une configuration correcte des disques.

Vérifiez les performances actuelles du disque :

Get-Counter "\PhysicalDisk(*)\Avg. Disk sec/Read", "\PhysicalDisk(*)\Avg. Disk sec/Write", "\PhysicalDisk(*)\Current Disk Queue Length"

Identifiez les types de disques et les caractéristiques de performance :

Get-PhysicalDisk | Select-Object DeviceID, MediaType, Size, HealthStatus, OperationalStatus

Pour les HDD traditionnels, exécutez la défragmentation (à sauter pour les SSD) :

defrag C: /O /V

Optimisez les performances des SSD en vous assurant que TRIM est activé :

fsutil behavior query DisableDeleteNotify

Si le résultat est 1, activez TRIM :

fsutil behavior set DisableDeleteNotify 0

Configurez un alignement optimal des disques pour les machines virtuelles et les nouveaux volumes :

Get-Partition | Select-Object DriveLetter, Offset, Size | Where-Object {($_.Offset % 1048576) -ne 0}

Pour les serveurs de bases de données, séparez les données, les journaux et tempdb sur différents disques physiques :

# Exemple pour l'optimisation de SQL Server
New-Item -Path "D:\SQLData" -ItemType Directory -Force
New-Item -Path "E:\SQLLogs" -ItemType Directory -Force
New-Item -Path "F:\SQLTempDB" -ItemType Directory -Force
Avertissement : Ne défragmentez jamais les SSD car cela réduit leur durée de vie. Vérifiez toujours le type de disque avant d'exécuter des commandes de défragmentation.

Activez la mise en cache en écriture pour de meilleures performances (assurez-vous d'une protection UPS) :

Get-PhysicalDisk | Set-PhysicalDisk -WriteCachePolicy WriteBack

Vérification : Vérifiez les temps de réponse des disques avec Get-Counter "\PhysicalDisk(*)\Avg. Disk sec/Read". Les valeurs doivent être inférieures à 15 ms pour les HDD, inférieures à 1 ms pour les SSD.

05

Mettre à jour les pilotes et le firmware pour des performances matérielles optimales

Les pilotes OEM surpassent systématiquement les pilotes génériques de Microsoft pour le matériel serveur. Cette étape garantit que vous obtenez des performances maximales de votre investissement matériel.

Vérifiez les versions actuelles des pilotes et identifiez les composants obsolètes :

Get-WmiObject Win32_PnPSignedDriver | Select-Object DeviceName, DriverVersion, DriverDate | Sort-Object DriverDate

Identifiez le fabricant et le modèle de votre serveur :

Get-WmiObject -Class Win32_ComputerSystem | Select-Object Manufacturer, Model
Get-WmiObject -Class Win32_BIOS | Select-Object SMBIOSBIOSVersion, ReleaseDate

Téléchargez et installez les derniers pilotes de votre fournisseur de serveur :

  • Dell : Dell Command Update ou support.dell.com
  • HPE : HPE Smart Update Manager ou support.hpe.com
  • Lenovo : Lenovo System Update ou support.lenovo.com

Pour les adaptateurs réseau, privilégiez les pilotes du fournisseur par rapport aux paramètres par défaut de Windows :

Get-NetAdapter | Select-Object Name, InterfaceDescription, DriverVersion

Mettez à jour les paramètres des adaptateurs réseau pour les charges de travail serveur :

# Activer RSS (Receive Side Scaling) pour des performances multi-cœurs
Set-NetAdapterRss -Name "*" -Enabled $true

# Augmenter les tampons de réception pour les scénarios à haut débit
Set-NetAdapterAdvancedProperty -Name "*" -DisplayName "Receive Buffers" -DisplayValue "2048"

Vérifiez et mettez à jour les pilotes des contrôleurs de stockage, en particulier pour les configurations RAID :

Get-WmiObject -Class Win32_SCSIController | Select-Object Name, DriverVersion, DriverDate
Conseil pro : Mettez en place un calendrier de mise à jour trimestriel des pilotes. Créez un script PowerShell pour vérifier les dates des pilotes et alerter lorsque les pilotes ont plus de 6 mois.

Vérifiez que le matériel fonctionne à des vitesses optimales :

# Vérifier la vitesse de la mémoire
Get-WmiObject -Class Win32_PhysicalMemory | Select-Object Speed, ConfiguredClockSpeed

# Vérifier les vitesses de lien PCIe
Get-WmiObject -Class Win32_Bus | Where-Object {$_.Name -like "*PCI*"}

Vérification : Après les mises à jour des pilotes, redémarrez et exécutez Get-WmiObject Win32_PnPSignedDriver | Where-Object {$_.DriverDate -lt (Get-Date).AddMonths(-6)} pour identifier les pilotes encore obsolètes.

06

Configurer les paramètres avancés de performance réseau

L'optimisation du réseau est cruciale pour les serveurs traitant des charges de travail à haut débit, la virtualisation ou la réplication de bases de données.

Vérifiez la configuration actuelle de l'adaptateur réseau :

Get-NetAdapter | Select-Object Name, LinkSpeed, FullDuplex, State

Activez les fonctionnalités réseau avancées pour les charges de travail des serveurs :

# Activez les Jumbo Frames pour réduire la charge du CPU (assurez-vous du support du commutateur)
Set-NetAdapterAdvancedProperty -Name "*" -DisplayName "Jumbo Packet" -DisplayValue "9014"

# Activez le déchargement TCP Chimney pour réduire l'utilisation du CPU
netsh int tcp set global chimney=enabled

# Activez l'auto-ajustement de la fenêtre de réception
netsh int tcp set global autotuninglevel=normal

Optimisez les paramètres TCP pour les environnements de serveur :

# Augmentez la taille de la fenêtre TCP pour les connexions à large bande passante
netsh int tcp set global autotuninglevel=highlyrestricted

# Activez le TCP composé pour améliorer le débit
netsh int tcp set global chimney=enabled
netsh int tcp set global rss=enabled

Configurez la modération des interruptions de l'adaptateur réseau :

# Réduisez la fréquence des interruptions pour de meilleures performances sous charge
Set-NetAdapterAdvancedProperty -Name "*" -DisplayName "Interrupt Moderation" -DisplayValue "Enabled"

Pour les hôtes Hyper-V, optimisez les performances du commutateur virtuel :

# Activez SR-IOV si pris en charge par le matériel
Get-VMSwitch | Set-VMSwitch -IovEnabled $true

# Configurez VMQ (Virtual Machine Queue)
Set-NetAdapterVmq -Name "*" -Enabled $true
Avertissement : Les Jumbo Frames nécessitent un support de bout en bout, y compris les commutateurs et les routeurs. Testez la connectivité après activation pour vous assurer qu'il n'y a pas de problèmes de fragmentation de paquets.

Surveillez les performances du réseau après optimisation :

Get-Counter "\Network Interface(*)\Bytes Total/sec", "\Network Interface(*)\Packets/sec", "\Processor(*)\% Interrupt Time"

Vérification : Testez le débit réseau avec Test-NetConnection -ComputerName [target] -Port 445 -InformationLevel Detailed et surveillez que le temps d'interruption soit inférieur à 10 % sous charge normale.

07

Mettre en œuvre une surveillance et une alerte de performance complète

La surveillance continue garantit que vos optimisations restent efficaces et aide à identifier de nouveaux problèmes de performance avant qu'ils n'affectent les utilisateurs.

Installez Windows Admin Center pour une surveillance centralisée :

# Télécharger et installer Windows Admin Center
$wacUrl = "https://aka.ms/WACDownload"
$wacPath = "$env:TEMP\WindowsAdminCenter.msi"
Invoke-WebRequest -Uri $wacUrl -OutFile $wacPath
Start-Process msiexec.exe -ArgumentList "/i $wacPath /quiet" -Wait

Créez des ensembles de collecteurs de données de compteurs de performance personnalisés :

# Créer un nouvel ensemble de collecteurs de données pour la surveillance du serveur
$dataCollectorSet = New-Object -ComObject Pla.DataCollectorSet
$dataCollectorSet.DisplayName = "Surveillance de la performance du serveur"
$dataCollectorSet.Duration = 86400  # 24 heures
$dataCollectorSet.Subdirectory = "ServerPerf"
$dataCollectorSet.Commit("ServerPerf", $null, 0x0003)

Configurez un script de surveillance basé sur PowerShell pour les métriques critiques :

# Créer un script de surveillance
$monitorScript = @'
$counters = @(
    "\Processor(_Total)\% Processor Time",
    "\Memory\Available MBytes",
    "\PhysicalDisk(_Total)\% Disk Time",
    "\Network Interface(*)\Bytes Total/sec"
)

$samples = Get-Counter -Counter $counters -SampleInterval 60 -MaxSamples 1440
$samples | Export-Counter -Path "C:\PerfLogs\DailyPerf_$(Get-Date -Format 'yyyyMMdd').blg"
'@

$monitorScript | Out-File -FilePath "C:\Scripts\DailyMonitoring.ps1" -Encoding UTF8

Créez une tâche planifiée pour la surveillance automatisée :

$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\DailyMonitoring.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At "12:00AM"
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName "Surveillance quotidienne de la performance" -Action $action -Trigger $trigger -Settings $settings -RunLevel Highest

Configurez la surveillance du journal des événements Windows pour les événements liés à la performance :

# Surveiller les événements système critiques
Get-WinEvent -FilterHashtable @{LogName='System'; Level=1,2,3; StartTime=(Get-Date).AddHours(-24)} | 
    Select-Object TimeCreated, Id, LevelDisplayName, Message | 
    Export-Csv -Path "C:\Logs\SystemEvents_$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation
Astuce pro : Configurez des alertes par e-mail en utilisant PowerShell et SMTP lorsque des seuils critiques sont dépassés. Créez une ligne de base pendant les opérations normales, puis alertez lorsque les métriques dépassent 150 % des valeurs de référence.

Créez une ligne de base de performance pour la comparaison :

# Capturer les données de performance de référence
$baseline = Get-Counter -Counter $counters -SampleInterval 5 -MaxSamples 720  # 1 heure de référence
$baseline | Export-Counter -Path "C:\PerfLogs\Baseline_$(Get-Date -Format 'yyyyMMdd').blg"

Vérification : Vérifiez que les tâches planifiées s'exécutent avec Get-ScheduledTask -TaskName "Surveillance quotidienne de la performance" et vérifiez que les fichiers journaux sont créés dans le répertoire C:\PerfLogs.

Questions Fréquentes

Quels sont les goulets d'étranglement de performance les plus courants de Windows Server 2025 ?+
Les goulets d'étranglement les plus courants sont les inefficacités de planification du CPU dues à l'optimisation par défaut des programmes au lieu des services en arrière-plan, la surcharge de mémoire due à des services inutiles comme le Spouleur d'impression et la Recherche Windows, les limitations d'E/S de stockage des HDD traditionnels au lieu des SSD NVMe, et les contraintes de débit réseau dues aux paramètres TCP par défaut. Ces problèmes se manifestent généralement par une utilisation soutenue du CPU au-dessus de 80 %, une mémoire disponible en dessous de 20 %, des temps de réponse du disque supérieurs à 15 ms, et une surcharge élevée du traitement des interruptions.
Comment désactiver en toute sécurité les services Windows Server sans altérer la fonctionnalité ?+
Commencez par identifier vos rôles de serveur à l'aide de Server Manager, puis croisez-les avec la documentation officielle de Microsoft sur les dépendances des services. Les candidats sûrs à désactiver incluent le Spouleur d'impression (sauf si l'impression est requise), le service de télécopie, la recherche Windows (si l'indexation des fichiers n'est pas nécessaire) et le service de saisie Tablet PC. Testez toujours les modifications de service dans un environnement non productif d'abord, créez des points de restauration système, et utilisez la cmdlet Get-Service de PowerShell pour vérifier les dépendances avant d'apporter des modifications.
Quelle est la différence entre l'optimisation pour les programmes et les services d'arrière-plan dans Windows Server ?+
Le paramètre de registre Win32PrioritySeparation contrôle le comportement de la planification du processeur. La valeur 2 optimise pour les programmes au premier plan avec des tranches de temps plus courtes et une priorité plus élevée, idéal pour les serveurs basés sur une interface graphique exécutant des applications interactives. La valeur 18 optimise pour les services d'arrière-plan avec des tranches de temps plus longues et une distribution de priorité égale, parfait pour les installations Server Core exécutant des services comme IIS, SQL Server ou des contrôleurs de domaine. Modifier cela nécessite un redémarrage et impacte significativement la réactivité des applications.
Comment puis-je mesurer l'efficacité de mes optimisations de performance de Windows Server ?+
Utilisez le Moniteur de performance pour établir des métriques de référence avant l'optimisation, en vous concentrant sur l'utilisation du CPU, la mémoire disponible, les temps de réponse du disque et le débit réseau. Après optimisation, comparez des scénarios de charge de travail identiques en utilisant les mêmes compteurs. Les améliorations clés incluent une réduction de l'utilisation du CPU de 10 à 20 %, une augmentation de la mémoire disponible, des temps de réponse du disque inférieurs à 15 ms pour les HDD ou 1 ms pour les SSD, et une réduction du temps d'interruption du processeur en dessous de 10 %. Windows Admin Center fournit des tableaux de bord en temps réel pour une surveillance continue.
Devrais-je utiliser des SSD NVMe pour tout le stockage du serveur Windows ou seulement pour des composants spécifiques ?+
Priorisez les SSD NVMe pour le système d'exploitation, le fichier d'échange et les applications à haut I/O comme les journaux de transactions de base de données et tempdb. Pour les serveurs de fichiers ou le stockage de sauvegarde, les HDD traditionnels restent rentables pour le stockage en vrac. La configuration optimale utilise NVMe pour les volumes de démarrage et les données actives, des SSD SATA pour les binaires d'application et les profils utilisateurs, et des HDD pour le stockage d'archives. Cette approche par niveaux maximise les gains de performance tout en contrôlant les coûts, particulièrement important pour les serveurs de bases de données où la performance des fichiers journaux impacte directement le débit des transactions.
Evan Mael
Écrit par

Evan Mael

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Partagez vos réflexions et analyses

Connectez-vous pour participer