Comment puis-je limiter ou même désactiver le cache de fichiers sur Windows Server 2008R2?


9

Il y a une machine, avec une matrice RAID très rapide et une connexion Internet rapide. Mais, il n'a obtenu que 8 Go de mémoire, ce qui est très rapide lorsque le téléchargement augmente.

Des idées comment pourrais-je désactiver ou limiter le cache?
(J'ai essayé de désactiver le cache d'écriture dans le Gestionnaire de périphériques. Mais ce n'est que du cache d'écriture, et cela n'a pas aidé.)



@OliverSalzburg Malheureusement, il n'est pas en veille maintenant. La veille est géniale et doit toujours être activée. C'est une bonne chose. Mais maintenant, pour une raison quelconque, ce bélier est utilisé comme "Actif". (J'utilise uTorrent pour tester les vitesses, et dans le cadre d'un transfert rapide, cela commence à se produire.)
Apache

Réponses:


4

L'intérêt du cache est qu'il utilise un ram inutilisé et qu'il l'abandonne dès qu'une application en demande plus. Ainsi, vous ne voulez pas limiter sa taille car cela laisserait simplement le bélier libre complètement gaspillé.


9
Veuillez le dire à mon Windows 7, qui a échangé tous les programmes juste pour bourrer un fichier vidéo dans le cache tout en l'encodant - un fichier qui sera lu exactement une fois - et a planté la boîte entière.
Jan Schejbal

Cela peut dépendre de l'option LargeSystemCache. Pour une raison quelconque, je l'ai fait régler (probablement à l'époque où la RAM que j'avais était plus que suffisante pour tout ce que je faisais).
Jan Schejbal

@JanSchejbal, c'est le paramètre dont je ne me souviens plus car j'ai abandonné Windows il y a quelques années. Normalement, le noyau essaie d'échanger des pages de processus qui sont inactifs depuis un certain temps car cette mémoire peut être mieux utilisée pour utiliser des fichiers de mise en cache pour les processus actifs. Ce paramètre le rend plus agressif à cet égard.
psusi

@JanSchejbal la clé de registre LargeSystemCache n'est plus utilisée à partir de 2008r2 selon blogs.technet.com/b/askperf/archive/2008/02/01/…
BeowulfNode42

3

Vous devez appeler l'API système SetSystemFileCacheSize ()
documentée ici: http://msdn.microsoft.com/en-us/library/aa965240.aspx

Certains programmes GUI le permettent: http://technet.microsoft.com/en-us/sysinternals/bb897561
Mais vous pouvez préférer CLI, pour l'exécuter automatiquement au démarrage du système: http://www.uwe-sieber.de/ntcacheset_e .html (regardez au milieu de la page, ça marche pour 2k8)

Ou écrivez simplement un script PowerShell appelant SetSystemFileCacheSize ()

Notez qu'il est fortement déconseillé de désactiver le cache pour une utilisation en production.
Il est fréquent de limiter la taille du cache à une petite valeur pour les machines virtualisées, et non de la désactiver.


hmm ... jusqu'ici, tout va bien! Je reviendrai bientôt.
Apache

C'est bizarre. J'ai défini la taille de travail MAXIMUM à 1 gigaoctet, et cela se poursuit. Cela ira beaucoup plus haut, peu importe la valeur ou la limite. Pourquoi?
Apache

Vous devez être sûr de surveiller la bonne valeur. Utilisez l'utilitaire cacheset pour cela.
Gregory MOUSSAT

2

Nous avons également rencontré ce problème sur Windows Server 2008 R2 dans notre entreprise. Dans notre cas, la machine s'est totalement bloquée. Il semble que ce soit un bug sur cette version serveur de Windows, car il ne s'est pas produit dans les mêmes circonstances ni sur ma machine Windows 7 beaucoup plus petite fonctionnant sous VirtualBox, ou sous Linux.

Vous pouvez définir le cache à une certaine limite avec une API comme d'autres l'ont déjà publié, mais vous pouvez trouver des applications pour l'utiliser directement, telles que SetSystemFileCacheSize.exe ou NT Cache Setter .

L'inconvénient est que vous devez définir le cache après chaque redémarrage. Vous pouvez également vider tout le cache en une seule fois avec cela.

Nous avons mis le cache de fichiers sur notre VM ayant 14 Go de RAM à 4 Go et cela fonctionne. Le rinçage fonctionne également bien et vous pouvez le voir directement dans le Gestionnaire des tâches.

Exemples de ligne de commande:

  • Afficher les paramètres Windows actuels:

    SetSystemFileCacheSize.exe
    
  • Afficher l'aide:

    SetSystemFileCacheSize.exe /?
    
  • Définissez la taille minimale sur 8 Mo et la taille maximale sur 128 Mo:

    SetSystemFileCacheSize.exe 8 128
    
  • Désactivez la taille minimale et définissez la taille maximale sur 128 Mo:

    SetSystemFileCacheSize.exe off 128
    
  • Désactiver la taille minimale et maximale:

    SetSystemFileCacheSize.exe off off
    
  • Vider le cache de fichiers:

    SetSystemFileCacheSize.exe flush
    

Remarque: l'outil doit être démarré avec des privilèges d'administrateur.


0

Pour limiter le cache de fichiers, assurez-vous que l'option de performances de partage de fichiers maximale n'est pas activée et vous pouvez spécifier la quantité minimale de cache de fichiers mémoire en sélectionnant Réduire la mémoire utilisée ou Équilibrer.

Pour vérifier la configuration actuelle, allez dans: Démarrer-> Panneau de configuration-> Connexions réseau-> Connexion au réseau local-> Dans l'onglet Général, Propriétés-> Sélectionner le fichier et l'imprimante-> Propriétés .. si l'opcion Agrandir est sélectionné, puis choisissez toute autre option.


L'option de propriétés n'est pas disponible pour le partage d'imprimantes et de fichiers. :) Quoi qu'il en soit, il est désactivé, le cache est. Pourtant, dans Rammap, tous les fichiers entrent dans la liste des fichiers, et la mémoire active ne cesse de croître.
Apache
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.