Предыстория. Есть у меня старый жесткий диск и на наем раздел на 27 Гб. Купил я новый и создал на нем раздел на 200 Гб и решил со старого на новый скопировать. Копировал примитивно и тупо cp -R /old/mount/point /new/device/path. И копировались у меня эти жалкие 27 Гб часа полтора (а то и больше, точно не засекал). Конечно, меня это сильно удивило и я решил маленько потестить скорость дисков. Тут и начинается история.
Первым делом померил скорость hdparm'ом
wieker@localhost:~$ sudo hdparm -tT /dev/sda
/dev/sda: #старый жесткий диск
Timing cached reads: 2044 MB in 2.00 seconds = 1022.35 MB/sec
Timing buffered disk reads: 170 MB in 3.02 seconds = 56.22 MB/sec
wieker@localhost:~$ sudo hdparm -tT /dev/sdb
/dev/sdb: #новый жесткий диск
Timing cached reads: 2100 MB in 2.00 seconds = 1049.61 MB/sec
Timing buffered disk reads: 314 MB in 3.01 seconds = 104.46 MB/sec
Видно, что скорость очень приличная. После я измерил скорость чтения радела с помощью dd:
wieker@localhost:~$ time sudo dd if=/dev/sda1 > /dev/null
57014622+0 записей считано
57014622+0 записей написано
скопировано 29191486464 байта (29 GB), 521,91 c, 55,9 MB/c
real 8m41.983s
user 0m21.181s
sys 1m6.608s
wieker@localhost:~$
Как видно, эта операция показала скорость абсолютно идентичную hdparm. То есть скорость самого диска, действительно, высока. Затем я измерил скорость чтения одного файла с этого раздела. И посчитал, какова скорость в Мб/сек
wieker@localhost:~$ time cat /old/mount/point/big_file > /dev/null
real 5m6.579s
user 0m0.012s
sys 0m1.496s
wieker@localhost:~$ ls -l /old/mount/point/big_file
-rw-r--r-- 1 wieker wieker 1462684041 Апр 1 05:14 /old/mount/point/big_file
wieker@localhost:~$ calc
1462684041/306.579/1024/1024;
4.549966 #скорость в МБ/сек
wieker@localhost:~$
Контрольно, определил скорость чтения с нового жесткого диска.
wieker@localhost:~$ time cat /new/device/path/big_file > /dev/null
real 0m13.478s
user 0m0.000s
sys 0m0.808s
wieker@localhost:~$calc
1462684041/13.478/1024/1024;
103.496381 #скорость в МБ/сек
wieker@localhost:~$
Как видно скорость чтения файла с вновь созданного раздела равна скорости диска, скорость же чтения файла со старого раздела почти в 14 раз меньше скорости диска. Старому разделу уже около 5 лет, файлы на нем постоянно удалялись, перезаписывались, создавались. Видимо, это приводило к сильной фрагментации, из-за чего и упала скорость.
Или есть другие объяснения этому странному поведению?