Rychlá alokace velkých souborů

Určitě jste se již nejednou setkali s případem, kdy jste potřebovali vytvořit nějakou sadu testovacích souborů, které jsou poté použity pro testování rychlosti přenosu. Pokud se jedná o menší soubory, lze tohoto dosáhnout například pomocí příkazu dd.

Příkaz dd je velmi rozšířený a dobře známý pro manipulaci s daty. Základní syntaxe příkazu dd je vidět níže.

Tento příkaz vytvoření v aktuálním adresáři soubor o velikosti 5 x 10MB, tento soubor bude plný nul (jako zdroj je použit /dev/zero). Rychlost tohoto příkazu je omezena vlastní rychlostí úložiště. V případě běžných rotačních disků se rychlost zápisu pohybuje okolo 100MB/s.

V případě, kdy je nutné vytvořit soubory o velikosti v řádech 100 MB a více, je nevhodné používat příkaz dd, neboť vlastní vytvoření souboru by trvalo řádově minuty a více. Pro tyto případy je vhodné použít příkazu fallocate.

Příkaz fallocate je specialitou linuxu (jedná se o syscall), který neprovádí vlastní alokaci místa na disku, ale pouze upraví tabulku souborů, která je pro každý filesystem spravována. Ukázkový příkaz je opět zobrazen níže.

Vlastní porovnání rychlosti alokace je zobrazeno níže, z těchto výpisů lze vidět, že fallocate je řádově rychlejší a nezávislý na velikosti alokovaného souboru

 

Mohlo by se vám líbit...

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *