Cosa significa "Scrivi svuotamento buffer cache"


12

Come nelle Opzioni dei criteri del disco di Windows 7:

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

Il primo è la cache sul disco fisico e il secondo la cache di Windows?

(Ho cercato su Google, ma non ho trovato una risposta chiara).

Risposte:


12

Vedere la sezione "ulteriori informazioni" da http://support.microsoft.com/kb/332023 :

Molti dispositivi a disco offrono prestazioni migliorate mediante l' uso di una cache integrata , che fornisce la memorizzazione nella cache read-ahead per i dati letti dal disco e la cache write-behind (o scritture ritardate o scritture "pigre") per i dati in corso scritto su disco. In alcuni casi, è importante che i dati vengano scritti immediatamente sul disco fisico e non conservati nella cache di scrittura integrata del disco per essere scritti successivamente in un momento altrimenti inattivo. Ciò impedisce la perdita o il danneggiamento di questi dati se il disco o il controller (ovunque sia implementata la cache di scrittura) perde improvvisamente energia

Scrivere nella cache migliora notevolmente le prestazioni del disco, quindi lasciarlo attivo per i dischi rigidi interni.

Windows disattiva la cache di scrittura per unità flash e altri dischi rigidi USB per impostazione predefinita, normalmente non è necessario modificare queste impostazioni, Windows se ne occupa.


5
come ha detto Moab. L'unico motivo per cui potresti prendere in considerazione la disattivazione della memorizzazione nella cache in scrittura su dischi rigidi interni è se si verificano frequentemente brown-out o black-out. ma se è così, allora ti consiglio di investire in un UPS decente e lasciare la cache di scrittura su
Xantec,

1
Grazie per il link! Se lo capisco correttamente, significa "non scaricare anche se il software lo dice". Ero per lo più curioso della seconda opzione, testare le velocità di costruzione su SSD vs. HDD. I problemi della rete elettrica sono rari, qui in effetti ingegneria tedesca pat-pats .
Peter

1
Questa risposta non mi aiuta a capire la differenza tra le due impostazioni. Se svuoti la cache ad ogni scrittura, non stai memorizzando la cache: in che modo è abilitata la cache di scrittura (prima casella di controllo)? Sembra più probabile che il lavaggio avvenga periodicamente quando la seconda casella di controllo è disabilitata o qualcosa di simile.
Sam Brightman,

3
@SamBrightman: per quanto ne so : la prima impostazione abilita la cache di Windows - se un'applicazione scrive su un file, non viene immediatamente trasferita sul disco. Un'applicazione può chiamare "flush" per forzare la scrittura fisica delle cose. La seconda opzione dice: quando l'applicazione dice "flush", Windows scaricherà comunque la propria cache sul dispositivo, ma non dirà al dispositivo di svuotare la propria cache interna. Ciò provoca il comando "flush" (poiché l'applicazione ritiene che i dati siano al sicuro sul disco). Accettabile solo se la permanenza dei dati non è una priorità.
Peter

2

Disattivo sempre la cache write-behind, sempre, ogni volta. È stata una cattiva idea sin dall'inizio. Lo spiego in questo modo: se si fa clic su "Salva" nel documento di elaborazione testi e l'alimentazione si interrompe, con la cache write-behind disattivata, il documento non verrà salvato (fino a quando non viene avviato il salvataggio automatico). La disattivazione della cache write-behind lo costringe a scrivere effettivamente il file sul disco quando si fa clic su Salva. Lo stesso vale per interruzioni di corrente, BSOD, crash del programma, ecc.


1
Per arrotondare la risposta, forse potresti includere il modo in cui lo disabiliti. Cita anche alcune fonti che sostengono la tua posizione.
slm

3
Ma perché questo fa la differenza? Hai esattamente lo stesso problema se si spegne prima di fare clic su "Salva".
David Schwartz,

1
@CodeLurker, i vantaggi in termini di prestazioni della memorizzazione nella cache sono sufficienti a far valere il raro rischio di perdita di potenza. Ovviamente le circostanze determineranno se debba essere usato o meno, se il potere sia affidabile o meno, quali tipi di file vengano utilizzati prevalentemente e così via.
Synetech,

2
@Synetech Questa è praticamente nessuna differenza. C'è una finestra in cui puoi perdere i dati in entrambi i modi e la maggior parte di quella finestra è prima di fare clic su "Salva".
David Schwartz,

4
Potresti anche perdere i tuoi dati venendo schiacciato da un asteroide che cade una frazione di secondo prima di fare clic [Save]. Secondo i tuoi calcoli, potresti anche non preoccuparti nemmeno di usare un computer poiché è inevitabile perdere i tuoi dati. ◔_◔
Synetech,

0

Basato su un post sul blog Old New Thing sembra che il primo sia il caching del sistema operativo e il secondo sia un override per il caching interno del disco solo durante il flush .

Per le scritture normali senza svuotamento, verrà utilizzata la cache interna del disco indipendentemente dalla seconda impostazione. Tuttavia, per gli eventi di sincronizzazione / scaricamento il comportamento predefinito è garantire che lo svuotamento della cache del sistema operativo trasferisca effettivamente i dati sul supporto: indicare all'unità anche lo svuotamento esplicito della cache interna.

Non mi è chiaro se la disattivazione della prima impostazione farebbe svuotare questo disco ad ogni scrittura o addirittura disabilitare la cache su disco e disabilitare la cache del sistema operativo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.