Que signifie «Écriture du vidage de la mémoire cache»


12

Comme dans les options de stratégie de disque de Windows 7:

[x] Enable Write Caching on the device
[ ] Turn off Windows write-cache buffer flushing on the device 

Le premier est-il le cache sur le disque physique et le second le cache Windows?

(J'ai googlé, mais je n'ai pas trouvé de réponse claire).

Réponses:


12

Voir la section "plus d'informations" de http://support.microsoft.com/kb/332023 :

De nombreux périphériques de disque offrent des performances améliorées grâce à l' utilisation d'un cache intégré , qui fournit une mise en cache en lecture anticipée pour les données qui sont lues à partir du disque, et une mise en cache en écriture différée (ou des écritures différées ou des écritures «paresseuses») pour les données qui sont en cours écrit sur le disque. Dans certains cas, il est important que les données soient écrites sur le disque physique immédiatement et ne soient pas conservées dans le cache d'écriture intégré du disque pour être écrites plus tard au cours d'un moment autrement inactif. Cela empêche la perte ou la corruption de ces données si le disque ou le contrôleur (là où le cache d'écriture est implémenté) perd soudainement de l'énergie

La mise en cache en écriture améliore considérablement les performances du disque, alors laissez-la activée pour les disques durs internes.

Windows désactive la mise en cache de l'écriture pour les lecteurs flash et autres disques durs USB par défaut, normalement vous n'avez jamais à modifier ces paramètres, Windows s'en charge pour vous.


5
comme l'a dit Moab. La seule raison pour laquelle vous souhaiterez peut-être désactiver la mise en cache de l'écriture sur les disques durs internes est si vous rencontrez fréquemment des coupures ou des coupures. mais si tel est le cas, je vous recommande d'investir dans un onduleur décent et de laisser la mise en cache d'écriture sur
Xantec

1
Merci pour le lien! Si je comprends bien, cela signifie "ne pas vider même si le logiciel le dit". J'étais surtout curieux de la deuxième option, tester les vitesses de construction sur SSD vs HDD. Les problèmes de réseau électrique sont très rares ici, en effet, l' ingénierie allemande des pat-pats .
peterchen

1
Cette réponse ne m'aide pas à comprendre la différence entre les deux paramètres. Si vous videz le cache à chaque écriture, vous ne mettez pas en cache - de quelle manière la mise en cache en écriture est-elle activée (première case à cocher)? Il semble plus probable que le vidage se produit périodiquement lorsque la deuxième case à cocher est désactivée, ou quelque chose de similaire.
Sam Brightman

3
@SamBrightman: autant que je sache: le premier paramètre active le cache Windows - si une application écrit dans un fichier, il n'est pas immédiatement transmis au disque. Une application peut appeler "flush" pour forcer l'écriture physique des choses. La deuxième option dit: lorsque l'application dit "vider", Windows videra toujours son propre cache sur l'appareil, mais ne dira pas à l'appareil de vider son propre cache interne. Cela utilise la commande "flush" (car l'application pense que les données sont en sécurité sur le disque). Acceptable uniquement si la permanence des données n'est pas une priorité.
peterchen

2

Je désactive toujours la mise en cache en écriture différée, tout le temps, à chaque fois. C'était une mauvaise idée depuis le début. Je l'explique de cette façon: si vous cliquez sur "Enregistrer" sur votre document de traitement de texte et que l'alimentation est coupée, avec la mise en cache en écriture différée désactivée, votre document ne sera pas enregistré (jusqu'à ce que la sauvegarde automatique démarre). La désactivation de la mise en cache en écriture différée l'oblige à réellement écrire votre fichier sur le disque lorsque vous cliquez sur enregistrer. La même chose s'applique aux pannes de courant, aux BSOD, aux plantages de programmes, etc.


1
Pour vous répondre, vous pourriez peut-être indiquer comment le désactiver. Citez également quelques sources qui soutiennent votre position.
slm

3
Mais pourquoi cela fait-il une différence? Vous avez précisément le même problème si l'alimentation est coupée avant de cliquer sur "Enregistrer".
David Schwartz

1
@CodeLurker, les avantages de performance de la mise en cache sont suffisants pour que cela vaille généralement le risque rare de coupure de courant. De toute évidence, les circonstances dicteront s'il doit être utilisé ou non, que l'alimentation soit fiable ou non, quels types de fichiers sont principalement utilisés, etc.
Synetech

2
@Synetech Ce n'est fondamentalement aucune différence. Il y a une fenêtre dans laquelle vous pouvez perdre des données de toute façon, et la plupart de cette fenêtre est avant de cliquer sur "Enregistrer".
David Schwartz

4
Vous pouvez également perdre vos données en vous faisant écraser par un astéroïde qui tombe une fraction de seconde avant de cliquer [Save]. Par votre calcul, vous pouvez tout aussi bien ne pas prendre la peine d'utiliser un ordinateur car il est inévitable de perdre vos données. ◔_◔
Synetech

0

Sur la base d'un article de blog Old New Thing, il semble que le premier est la mise en cache du système d'exploitation et le second est un remplacement pour la mise en cache interne du disque pendant le vidage uniquement .

Pour les écritures normales sans vidage, le cache interne du disque sera utilisé quel que soit le deuxième paramètre. Cependant, pour les événements de synchronisation / vidage, le comportement par défaut consiste à s'assurer que le vidage du cache du système d'exploitation obtient réellement les données sur le support: dites au lecteur de vider explicitement le cache interne également.

Il n'est pas clair pour moi si la désactivation du premier paramètre ferait ce vidage de disque à chaque écriture, ou même désactiverait le cache sur disque ainsi que désactiverait le cache du système d'exploitation.

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.