Analyse du taux de fragmentation de la base NTDS.dit

Active Directory effectue automatiquement une défragmentation en ligne de la base de données à certains intervalles dans le cadre du processus de Garbage Collection. (Par défaut, cela se produit toutes les 12 heures). La défragmentation en ligne ne réduit pas la taille du fichier de base de données (Ntds.dit), mais au lieu de cela optimise le stockage des données dans la base de données et récupère l’espace dans le répertoire pour les nouveaux objets.

Une défragmentation hors ligne crée une nouvelle version du fichier de base de données sans fragmentation interne. Il recrée également tous les index. En fonction de la fragmentation du fichier de base de données d’origine, le nouveau fichier peut être beaucoup plus petit.

Avant de faire une défragmentation il faut déjà voir l’espace potentiel qui pourrait être gagné. Par défaut, au passage du Garbage collector toutes les 12 heures cette valeur n’est pas répertorié. Pour obtenir cette valeur il faut changer le « garbage collection logging level »

Pour cela, vous devez éditer la valeur « Garbage Collection » pour la clé « HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics ». La valeur par défaut est 0. Il faut donc passer cette valeur à 1.

Une fois cette valeur éditée, au prochain passage du Garbage collector (toutes les 12 Heures par défaut sur un DC) nous pourrons voir un évènement 1646 pour la partie « Directory Service » du contrôleur de domaine sur lequel la valeur « Garbage Collection » a été changé :

Il serait intéressant de comparer la valeur « Free hard disk space (megabytes) » par rapport à la taille globale du fichier.

Sources

https://technet.microsoft.com/fr-fr/library/cc816652(v=ws.10).aspx
https://support.microsoft.com/fr-fr/kb/232122

Merci.