GNU/Linux >> Znalost Linux >  >> Linux

Jak v linuxu zkontrolujete, zda je disk fragmentovaný?

Můžete bezpečně spustit fsck.ext2 na souborovém systému ext2 ext3 nebo ext4, i když je připojen takto

sudo fsck.ext2 -fn /dev/sdXY

Pokud je jednotka připojena, vypíše mnoho chyb, ale argument -n jí říká, aby se jednotky nedotýkal.

$ sudo fsck.ext2 -fn /dev/sda1
e2fsck 1.42 (29-Nov-2011)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Ubuntu_Rescue: 291595/1222992 files (0.2% non-contiguous), 1927790/4882432 blocks

Moderní rodina souborových systémů ext bere při alokaci souborů v úvahu vyvážení a spojitost. V ext3 a ext4 je vyvážení obecně zajištěno aplikováním žurnálových záznamů v pořadí a v ext4 konkrétně předpřidělením rozsahů souborového systému pro zvýšení souvislých bloků. Hledání úrovní fragmentace nižších než 20 % nemusí stát za váš čas, zvláště pokud váš systém opakovaně přistupuje k několika souborům. Doporučuji použít tyto taktiky pro zvýšení rychlosti čtení pro systém s jedním diskem:

  • zvýšit ram:toto zvýší mezipaměť souborového systému

  • zvětšete velikost bloku:přechodem z 1k na 4k velikostí bloků získáte lepší výkon při čtení souborů blízkých nebo větších, než je velikost vašeho bloku

  • pokud jste pedantický, můžete velké soubory a malé soubory uspořádat do oddílů podle velikosti bloku, možná to budete chtít udělat pouze tehdy, pokud jste uložili fotografie, videa a zdrojový kód do samostatných adresářů

  • zvyšte nastavení předčítání pomocí nástroje hdparm a/nebo obslužného programu v režimu notebooku

  • zálohujte a obnovujte souborový systém lineárním způsobem, například pomocí tar

Pokud máte více disků a používáte raid striping a/nebo LVM, musíte zvážit další faktory, jako je velikost pruhu.


Ano, existuje konkrétní fsck vyvolání (jako root nebo sudo):

$ fsck /dev/sdXY

Nahraďte X a Y správnými parametry pro váš případ (např. /dev/sda1 ).

NEPOUŽÍVEJTE TOTO NA MONTOVANÉ PŘÍČCE! Může to vážně poškodit váš souborový systém.

Další informace o Linuxu a defragmentaci naleznete v mé odpovědi zde.

Pokud nepotřebujete konkrétně spouštět fsck, ale chcete pouze zkontrolovat fragmentaci disku, měl by stačit následující skript (převzatý odtud):

#!/usr/bin/perl -w

#this script search for frag on a fs
use strict;

#number of files
my $files = 0;
#number of fragment
my $fragments = 0;
#number of fragmented files
my $fragfiles = 0;

#search fs for all file
open (FILES, '-|', "find '$ARGV[0]' -xdev -type f -print0");

$/ = "\0";

while (defined (my $file = <FILES>)) {
        open (FRAG, "-|", "filefrag", $file);
        my $res = <FRAG>;
        if ($res =~ m/.*:\s+(\d+) extents? found/) {
                my $fragment = $1;
                $fragments += $fragment;
                if ($fragment > 1) {
                        $fragfiles++;
                }
                $files++;
        } else {
                print ("$res : not understand for $file.\n");
        }
        close (FRAG);
}
close (FILES);

print ( $fragfiles / $files * 100 . "% non contiguous files, " . $fragments / $files . " average fragments.\n"); 

Poté jej můžete spustit v příslušném adresáři (nebo přípojném bodě):

$ frag_check.pl $HOME/
  1.32410691664555% non contiguous files, 1.05380668862427 average fragments.

Linux
  1. Jak rozdělit disk v Linuxu

  2. Jak zkontrolovat verzi Redhat

  3. Jak přejmenovat soubory v Linuxu

  1. Jak najít soubory v Linuxu

  2. Jak zkontrolovat místo na disku v Linuxu

  3. Jak zkontrolovat časové pásmo v Linuxu

  1. Jak odstranit oddíl v Linuxu

  2. Jak zkontrolovat verzi Kali Linuxu

  3. Jak zkontrolovat špatné sektory nebo špatné bloky na pevném disku v Linuxu