понедельник, 1 марта 2010 г.

Фрагментация ext3 снизила производительность ~ в 10 раз

Заметил потрясающе низкую скорость чтения с USB HDD:

cray ~ # dd if=/mnt/MobMedia/TorrentsDownloads/debian-503-amd64-DVD-1.iso of=/dev/null bs=1024k count=100

100+0 записей считано
100+0 записей написано
скопировано 104857600 байт (105 MB), 38,4114 c, 2,7 MB/c
cray ~ # mount | grep MobMedia
/dev/sdh3 on /mnt/MobMedia type ext3 (rw,noexec,nosuid,nodev,noatime)
cray ~ # dd if=/dev/sdh3 of=/dev/null bs=1024k count=100
100+0 записей считано
100+0 записей написано
скопировано 104857600 байт (105 MB), 3,8945 c, 26,9 MB/c
cray ~ # fsck -y -f /dev/sdh3
fsck from util-linux-ng 2.16.2
e2fsck 1.41.9 (22-Aug-2009)
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
MobMedia: 765/6045696 files (88.1% non-contiguous), 22266376/24155735 blocks

Откуда такая большая фрагментация?
Ответ прост: данный жесткий диск был подключен к Dlink DIR-320 с DD-WRT и торрент клиентом на борту. Т.к. памяти у роутера "кот наплакал", кэша файловой системы практически не было. Данные (параллельная загрузка множества файлов) сразу писались на диск.
Лечится перемещением файлов на другой раздел и обратно (онлайн дефрагментаторов под ext3 нет).