Hello tout le monde !

Je viens vous faire part de mon expérience sur un problème de Windows Serveur 2008R2 .

En effet, j’avais pas mal de serveurs de fichiers avec une surutilisation mémoire RAM. Plus j’augmentait la RAM, plus ils consommaient.

Au cours de mon analyse, j’ai lancé RamMap, outil fourni par le Kit SysternalSuite : https://blogs.technet.microsoft.com/askperf/2010/08/13/introduction-to-the-new-sysinternals-tool-rammap/

Si vous avez donc des serveurs de fichiers en 2008R2 qui consomment beaucoup de RAM et que lorsque vous regardez le gestionnaire de tâches, vous ne trouvez pas de processus gourmand, lancez RamMap et vérifiez si vous êtes dans le même cas que moi !

Comme vous voyez ci-dessous, lorsque je lance RamMAP, j’ai une ligne nommée « MetaFile » qui prend beaucoup de RAM (serveur avec 4Go de Ram).

image008

Qu’est-ce que « MetaFile » ?

Metafile fait partie du cache du système et se compose des métadonnées NTFS. Les métadonnées NTFS inclut la MFT, ainsi que les divers autres fichiers des métadonnées NTFS. Dans la MFT, chaque enregistrement d’attribut de fichier prend 1k et chaque fichier a au moins un enregistrement d’attribut. Ajoutez à cela les autres fichiers de métadonnées NTFS et vous pouvez voir pourquoi la catégorie Metafile peut devenir assez grande sur les serveurs avec beaucoup de fichiers.

N’hésitez pas à regarder comment NTFS fonctionne : https://technet.microsoft.com/en-us/library/cc781134%28WS.10%29.aspx

Il faut donc réduire ce « MetaFile » !

Pour régler ce problème Microsoft propose deux possibilités :

  • Soit migrer en 2012/2012R2 qui gère mieux la mémoire
  • Soit ajouter un service qui va gérer la mémoire

Ici je vais donc vous présenter la deuxième solution !

Il s’agit de Dynamic Cache ! https://www.microsoft.com/en-us/download/details.aspx?id=9258

Ceci va entre autres permettre de limiter l’utilisation mémoire pour ce fameux cache !

Pour l’installer… Il faut donc :

  • Télécharger le .zip sur le site de Microsoft
  • Décompresser le .zip sur le serveur
  • Ensuite je vous invite fortement à lire le fichier « ReadMe.docx »
  • Copier le fichier DynCache.exe du dossier « Retail » (en choisissant la bonne version en fonction de votre processeur AMD64/i386/iA64) dans C:\Windows\System32
  • Lancer la commande suivante pour créer le service :
    sc create DynCache binpath= %SystemRoot%\System32\DynCache.exe start= auto type= own DisplayName= "Dynamic Cache Service"
  • Importer la clé de registre via le fichier DynCache.reg
  • Configurer les limites comme décrit dans le fameux fichier « ReadMe.docx ».
    La clé de registre concernée est : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters
    Moi par exemple j’ai configuré la limite MaxSystemCacheMBytes à 1200Mo pour un serveur de 4Go de Ram. Puis je suis dessendu à 800Mo une semaine plus tard.
  • Une fois les paramètres configurés, il suffit de démarrer le service :
    sc start DynCache

Comme vous pouvez voir dans mon cas, tout de suite après avoir démarré le service, mon « MetaFile » actif est dessendu de 1600Mo à 1093Mo.

Ma consommation RAM est également passée dans un premier temps de 3,2Go à 2,8Go en quelques secondes.

image009

_____________________

A bientôt sur bidouilleit.com !

– Bruno Sousa –