Paru le 01 novembre 2006
CacheSet est un applet qui vous permet de manipuler les paramètres de plage de travail du cache de fichiers système. Contrairement à CacheMan, CacheSet s'exécute sur toutes les versions de NT et fonctionne sans modification avec les nouvelles versions de Service Pack. Non content de vous offrir la possibilité de contrôler les tailles minimale et maximale de la plage de travail, il vous permet également de réinitialiser la plage de travail du cache, la forçant à s'agrandir, si nécessaire, à partir d'un point de départ minimal. En outre, contrairement à CacheMan, les modifications effectuées avec CacheSet ont un effet immédiat sur la taille du cache. Le code source complet est inclus.
Utilisez CacheSet pour régler les performances de la taille du cache du système, ce qui est impossible sans ajuster les variables internes avec CacheMan.
Remarque : Pour utiliser CacheSet sur NT 4.0 Service Pack 4 et ultérieur, vous devez disposer du privilège « Augmenter les quotas » (les comptes administrateur possèdent ce privilège par défaut). CacheSet a été mis à jour pour activer ce privilège de sorte qu'il fonctionne sur SP4.
.jpg)
CacheSet fonctionne sur toutes les versions finales de NT. Après le démarrage il présente la taille actuelle du cache de fichiers système (mis à jour deux fois par seconde), c'est-à-dire la taille maximale (la plus grande depuis le dernier redémarrage), et vous permet de définir les nouvelles tailles minimale et maximale de la plage de travail.
Définition des nouvelles tailles
Entrez les nouvelles tailles minimale et maximale et appuyez sur le bouton Appliquer. Vous obtenez une erreur dans les cas suivants : Vous avez entré une valeur maximale inférieure à la valeur minimale, la valeur minimale entrée est inférieure à la taille minimale de la plage de travail du système ou la valeur maximale entrée est supérieure aux tailles maximales de la plage de travail du système. Ajustez les valeurs entrées et réessayez.
Vous remarquerez probablement que la taille du cache change immédiatement puis diminue ou augmente rapidement. C'est parce que le système réduit automatiquement les plages de travail une fois par seconde. Les pages du cache qui sont publiées se trouvent toujours dans la mémoire, mais peuvent être libérées rapidement pour être utilisées par d'autres programmes qui nécessitent davantage de mémoire. De même, le cache peut récupérer ces pages facilement lorsque les applications accèdent aux données du système de fichiers.
Réinitialisation des valeurs précédentes
Vous pouvez à tout moment restaurer les valeurs de la plage de travail du cache qui étaient actives lors du dernier démarrage de CacheSet en appuyant sur le bouton de réinitialisation.
Effacement de la plage de travail du cache
Vous pouvez forcer le cache à libérer toutes ses pages en appuyant sur le bouton d'effacement. Notez que le cache peut s'agrandir encore, si nécessaire, et que cette opération n'est pas identique à la vidange du cache. Les pages qui lui étaient attribuées sont tout simplement mises à la disposition des autres programmes et peuvent être récupérées par le cache.
Utilisation de l'Interface de ligne de commande
Vous pouvez entrer les tailles minimale et maximale de la plage de travail dans la ligne de commande de CacheSet. CacheSet appliquera ces nouvelles valeurs sans avertissement. Ainsi, vous pouvez ajouter CacheSet à votre groupe de programmes de démarrage pour définir automatiquement les tailles du cache à chaque démarrage.
Utilisation : CacheSet [plage de travail minimale] [plage de travail maximale]
CacheSet utilise un appel NtQuerySystemInformation pour obtenir des informations sur les paramètres du cache et NtSetSystemInformation pour définir de nouvelles informations sur la taille. Les informations sur la plage de travail pour un processus indiquent au gestionnaire de mémoire de NT le nombre de pages de la mémoire physique qui doivent être attribuées à l'application. Par conséquent, le gestionnaire de mémoire peut être amené à agrandir une plage de travail à une taille supérieure à la valeur maximale ou à la diminuer à une taille inférieure à la valeur minimale. Cependant, les paramètres sont des facteurs qui affecteront l'allocation générale, et donc la réactivité d'une application. Dans le cas de CacheSet, l'application est le cache du système de fichiers.
En interne, NtSetSystemInformation appelle MmAdjustWorkingSetSize, qui agrandit la plage de travail d'une application ou la diminue. Si le troisième paramètre transmis à MmAdjustWorkingSetSize est 1, la plage de travail du cache du système est ajustée, sinon l'ajustement s'effectue dans le processus en cours (les appels aux informations système affectent uniquement le cache du système). La transmission d'une valeur minimale et maximale de -1 entraîne l'exécution par MmAjustWorkingSetSize d'une opération d'effacement de la plage de travail, qui libère toutes les pages de la plage de travail de l'application.
Ce qui est particulièrement intéressant à propos de l'interface utilisée par CacheSet pour effectuer sa tâche, c'est qu'elle ne nécessite pas d'invocation d'un privilège spécial. Ainsi, vous pouvez exécuter CacheSet même à partir du compte invité, ce qui constitue certainement une faille de sécurité, car n'importe qui peut manipuler la stratégie de dimensionnement du cache du système.
Mise à jour : Á partir de NT 4.0 Service Pack 4, Microsoft a comblé cette faille en demandant que le compte modifiant la plage de travail du cache possède le privilège « Augmenter les quotas ». Les comptes Utilisateur Administrateur et Groupe d'administrateurs possèdent ce privilège par défaut.