Статьи » Разное

Дефрагментация файловых систем


Дефрагментация файловых систем

Дефрагментация файловых систем

Рано или поздно в процессе работы с компьютером файлы, хранящиеся на винчестере, подвергаются фрагментации. Для упорядочивания врагментов файлов созданны разнообразные утилиты, так называемые - дефрагментаторы.

Фрагментация:
Возникает в результате фрагментации дискового пространства: так как на диске отсутствуют последовательные свободные блоки, то новые файлы невозможно записать целиком в одном месте, их приходится делить на фрагменты и записывать в разных частях диска, что замедляет чтение этих файлов и снижает общую производительность файловой системы. Более того: во многих файловых системах (например FAT32) начало файла записывается в начало кластера, следовательно, если сам файл или его часть по объёму меньше размера кластера, то оставшееся место в кластере остается неиспользованным. Поэтому фрагментированность диска обратно пропорциональна эффективности использования его пространства.

Для ее визуальной оценки в операционной системе Windows есть множество утилит, причем одна из них встроена в Windows. Для оценки фрагментации файлов в операционной системе Linux лично я использую следующий скрипт:

#!/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 |");
$/ = "";
while (defined (my $file = )) {
open (FRAG, "-|", "filefrag", $file);
my $res = ;
if ($res =~ m/.*:s+(d+) extents? found/) {
my $fragment = $1;
$fragments += $fragment;
if ($fragment > 1) {
$fragfiles++;
}
$files++;
} else {
print ("$res : not understand for $file. ");
}
close (FRAG);
}
close (FILES);
print ( $fragfiles / $files * 100 . "% non contiguous files, " . $fragments / $files . " average fragments. ");

Называем его, к примеру - fragment.pl , назначаем права на исполнение sudo chmod +x defragment.pl и запускаем:

sudo ./defragment.pl /home
В данном случае скрипт проверит на фрагментацию всю домашнюю директоори, включая всех зарегестрированных в системе юзеров.

Результат:

1.20556827750104% non contiguous files, 1.03430203734743 average fragments. Фрагментация файлов присутствует, но она ничтожна, особенно если учесть что оспользуется компьютер чуть больше полугода.

Исходя из личного опыта могу сказать что процесс дефрагментации в ОС Windows нужен как воздух, потому как файловые системы FAT, FAT32, NTFS мало защищены от фрагментации файлов, поэтому произведенная дефрагментация (хотя бы раз в месяц) не будет лишней.
Но вот в Linux фрагментация как таковая практически сведена к нулю, файловые системы Ext3, RaiserFS и другие более защищены от фрагментации, даже можно сказать больше — они на программном уровне не допускают фрагментации данных. Для тех кто все же решился провести дефрагментацию своего жесткого диска советую скачать бесплатную утилиту для дефрагментации файлов созданную специально для проведения дефрагментации данных в операционной системе Windows.

Рейтинг

В этом разделе

Добавить комментарий

Естественный спутник земли ?