Historie úprav

Avatar uživatele

Odpověděl/a – 6.prosinec 15:36

Defragmentace ve smyslu klasických pevných disků ne. U pevných disků se defragmenace provádí z toho důvodu aby jednotlivé části (clustry) jednoho souboru byli pokud možno souvisle za sebou (nebo s ohledem na výkon systému s nějakým rozumným prokládáním) a v případě nutnosti rozhodit jej na další stopy byl tento v jednom cylindru či na pokud možno sousedních stopách – aby bylo možné jej načíst sekvenčně co nejrychleji.

U FLASH pamětí má ale defragmentace také smysl… Pro čtení vcelku není důležitá, ale může ovlivnit výkon při zápisu. Mazání se provádí po poměrně velkých blocích a maže se celý blok na jednou. Pokud jsou data v blocích nepříliš uspořádaná, může dojít k tomu, že přestože je disk třeba z 50% prázdný, v každém bloku je něco zapsáno… Při dalším zápisu většího souboru se pak vyhledávají volné sektory v jednotlivých blocích, každý použitý blok se musí načíst do RAM, smazat, znovu přepsat z RAM do FLASH včetně nově zapisovaných dat. A protože jsou ty bloky částečně zaplněné, může se stát, že se toto bude provádět třeba 30× přestože mám soubor který by se vešel do 15 volných bloků. Takže může být vhodné zpřeházet data tak aby byli pohromadě v polovičce bloků a další polovička bloků aby byla připravena pro budoucí zápisy…

Avatar uživatele

Odpověděl/a – 6.prosinec 15:46

Defragmentace ve smyslu klasických pevných disků ne. U pevných disků se defragmenace provádí z toho důvodu aby jednotlivé části (clustry) jednoho souboru byli pokud možno souvisle za sebou (nebo s ohledem na výkon systému s nějakým rozumným prokládáním) a v případě nutnosti rozhodit jej na další stopy byl tento v jednom cylindru či na pokud možno sousedních stopách – aby bylo možné jej načíst sekvenčně co nejrychleji.

U FLASH pamětí má ale defragmentace také smysl… Pro čtení vcelku není důležitá, ale může ovlivnit výkon při zápisu. Mazání se provádí po poměrně velkých blocích a maže se celý blok na jednou. Pokud jsou data v blocích nepříliš uspořádaná, může dojít k tomu, že přestože je disk třeba z 50% prázdný, v každém bloku je něco zapsáno… Při dalším zápisu většího souboru se pak vyhledávají volné sektory v jednotlivých blocích, každý použitý blok se musí načíst do RAM, smazat, znovu přepsat z RAM do FLASH včetně nově zapisovaných dat. A protože jsou ty bloky částečně zaplněné, může se stát, že se toto bude provádět třeba 30× přestože mám soubor který by se vešel do 15 volných bloků. Takže může být vhodné zpřeházet data tak aby byli pohromadě v polovičce bloků a další polovička bloků aby byla připravena pro budoucí zápisy…


A ještě doplním jednu informaci: Mazat celý blok tuším není potřeba, pokud mám jistotu že volný sektor je opravdu prázdný. Ale při mazání souborů se zpravidla sektor jen označí jako volný bez reálného vymazání. Před zápisem ten blok ale musí být nejdřív čistý – takže je nutno daný sektor smazat, což v případě FLASH/SSD znamená s tím sektorem smazat a znovu zapsat celý blok a to zabere nějaký čas…

Bacha: U některých disků má nad tímto kontrolu systém. Jiné disky mají vlastní logiku jak se bránit častým zápisům na určité místo (nízká životnost co se týče počtu zápisů na určité místo je jedním z problémů SSD/flash) a tam asi výše zmíněnou defragmentaci nemá smysl provádět.