Deframmentatore di Windows 8?


17

Sembra che il defragcomando di Windows 8 abbia alcune nuove opzioni, tra cui:

/K Eseguire il consolidamento delle lastre sui volumi specificati.

Qualcuno sa cosa significa questo in inglese?

Risposte:


7

Questo PDF sembra avere una spiegazione di questo, insieme a nuove funzionalità NTFS.

Dice:

  • Consolidamento di lastre

    • Deframmenta in modo efficiente i file per ridurre al minimo il numero di lastre allocate

    • Una lastra è l'unità di allocazione su un volume con thin provisioning

    • Richiede supporto per la IOCTL_STORAGE_QUERY_PROPERTYrichiesta di un ID proprietà di:StorageDeviceLBProvisioningProperty

      • Recupera la dimensione della soletta di un volume

3

Non sono riuscito a trovare nulla che spiegasse specificamente cosa significa questo nel contesto della deframmentazione di Windows 8. Ma il "consolidamento delle lastre" si riferisce generalmente agli oggetti in movimento in modo che gli oggetti arrotondati per eccesso alla stessa dimensione di allocazione vengano messi insieme.

Il vantaggio di farlo è di solito piuttosto minimo. Ma tende a ridurre il tempo medio di ricerca quando si accede a un numero elevato di piccoli oggetti.


0

In realtà non credo che siano state create lastre per ottimizzare l'allocazione di molti file con le stesse dimensioni per ridurre il tempo medio di ricerca.

La mia opinione è che viene utilizzato per ridurre la latenza per le allocazioni su grandi volumi che altrimenti causerebbero troppi accessi simultanei da thread paralleli quando avrebbero bisogno di allocare spazio sul volume, perché ciò metterebbe un blocco sulla stessa parte dell'allocazione del volume bitmap. Per evitare l'elaborazione di bitmap di grandi dimensioni, può essere suddiviso in "lastre" le cui dimensioni in bit rappresentano le aree contibus su disco utilizzando lo stesso frammento di bitmap (che occupa almeno 1 o più cluster; se la dimensione del cluster se 4KB, il suo cluster nella bitmap rappresenta 4K * 8 = 32K cluster allocabili, ovvero 128 MB di memoria os; la dimensione effettiva della lastra in un volume è sintonizzata tra 33 e 64, consentendo a circa 33 thread simultanei di allocare spazio nella bitmap su dist senza bloccarsi a vicenda)

Quindi le lastre vengono utilizzate per velocizzare l'allocazione dello spazio sul volume, supponendo che un thread che crea molti file lo farà più spesso all'interno della propria lastra, prima di sbloccarlo e provare un'altra lastra o provare allocando quantità minori nella lastra corrente, prima di provare un'altra lastra non bloccata disponibile e quindi tentando di ottenere contemporaneamente un accesso violento alla lastra attualmente utilizzata da un altro thread.

Questo spiega perché l'allocazione su disco è "diffusa" su tutto il volume. Inoltre, questo spiega perché la MFT su NTFS ha almeno 2 frammenti, appartenenti ad altre lastre, in quanto evita gravi blocchi tra molti thread utilizzando il volume. È possibile deframmentare la MFT ma rimarrà almeno un frammento conservato nella sua "area riservata" per allocazioni simultanee che devono evitare di eseguire I / O di blocco sul volume NTFS).

In passato, il volume NTFS non era suddiviso in più lastre e c'era un'enorme penalità delle prestazioni con molti blocchi di thread e troppi switch di thread nel kernel in attesa del completamento dell'I / O (anche se l'allocazione nella bitmap è in effetti estremamente veloce e richiede nanosecondi poiché la maggior parte della parte interessante della bitmap è memorizzata nella cache in modo laready). Quando le scritture sui volumi vengono quindi scaricate e inserite nel journal, si verifica un altro blocco a causa dell'allocazione sul journal, quindi il journal ora utilizza anche una lastra separata sul volume (se possibile).

Ma non credo che NTFS dedichi alcuna lastra ai file per dimensioni specifiche. NTFS internamente deframmenterà leggermente le lastre quando i dati vengono rimossi e la loro dimensione allocata scende al di sotto di una soglia e due di queste lastre possono essere unite.

Puoi ottenere informazioni sulle dimensioni delle lastre con:

fsutil fsinfo ntfsinfo c:

Chiaramente le lastre stanno sintonizzando i parametri destinati alle prestazioni. Ma molti strumenti di deframmentazione di terze parti ignorano questa impostazione e non utilizzano il posizionamento ottimale. Idealmente, si dovrebbe avere dello spazio libero in ogni lastra del volume, a meno che le lastre siano piene di file e indici che non sono riallocati e dovrebbero rimanere stabili. Per molti piccoli file e transazioni temporanei che vengono costantemente creati e riciclati, è necessario posizionarli in un numero sufficiente di lastre in base al numero di thread simultanei ed evitare di plauderli troppo lontano dagli altri cluster che devono essere letti se il volume è un disco rigido o array RAID (non importa su SSD).

Le lastre possono anche essere utili per i filesystem remoti ma la loro dimensione ottimale è difficile da prevedere. Le lastre al contrario sono molto piccole per volumi diferenziali di volumi virtualizzati gerarchici e c'è una strategia di posizionamento molto diversa, dando che l'allocazione è virtuale e rimappata in luoghi fisici diversi.

Abbiamo ancora bisogno di informazioni da Microsoft sui seguenti parametri di ottimizzazione nel registro:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\SlabifyFunction]
MinimumReclaimSlabsMB      = REG_DWORD: 10240
MinimumReclaimSlabsPercent = REG_DWORD: 10
SlabEvictUpperBoundKB      = REG_DWORD: 204800
SlabEvictUpperBoundPercent = REG_DWORD: 20

Penso che questi siano lasciati senza documenti apposta perché Microsoft sta ancora pensando di cambiare le strategie di posizionamento e potrebbe cambiarlo nel tempo. Non sono esposti dall'API, puoi trovare le loro prove solo nel registro e nell'implementazione del codice sorgente interno del driver NTFS.

Tutto ciò che sappiamo è che le lastre sono esposte brevemente dal parametro "/ K" dello strumento da riga di comando DEFRAG.EXE, che non le dettaglia molto. Ma è facile osservare che l'ottimizzazione / K offre enormi guadagni in termini di prestazioni dopo l'installazione iniziale di Windows (anche prima che l'ottimizzazione Bootvis venga effettuata dopo 6 riavvii e misurazioni). Esistono anche i parametri / L relativi al taglio sugli SSD.

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.