[Linux] Производительность hdd

Dilagio

При копировании с fat32 на reiserfs и обратно скорость не поднимается выше 3.5 мб/с, обычно - где-то на уровне 1.5-2 мб/с. Чем это можно вылечить? Хотелось бы скорость побольше.
Вот что с диском:
 krokus:/home/ask# hdparm -v -X68 -t -T /dev/hda
/dev/hda:
setting xfermode to 68 (UltraDMA mode4)
multcount = 16 (on)
IO_support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 16383/255/63, sectors = 78165360, start = 0
Timing buffer-cache reads: 1328 MB in 2.00 seconds = 662.78 MB/sec
Timing buffered disk reads: 72 MB in 3.13 seconds = 23.01 MB/sec

sergey_m

Много файлов в одном каталоге?

Dilagio

Нет, немного, и файлы средних размеров - копирую музыку в mp3 и ogg

gsharov

эээ... А у тебя случаем fat32 не в userland пашет - а то слышал я про такие изъебства c fat32 (типа как captive). Хотя эт конечно врядли... Диск то один? в смысле копируешь с раздела на раздел?

sergey_m

Даже если так, всё равно 3.5 Мб/с мало.

ppplva

Подозреваю, что причина в сильной фрагментации.
Попробуй копировать в /dev/null, из /dev/zero, с дефрагментированного фата.

Dilagio

Поддержка обеих фс собрана в ядре
Диск один, забыл написать какой:
krokus:/home/ask# hdparm -i /dev/hda
/dev/hda:
Model=ST340014A, FwRev=3.06, SerialNo=5JX2T2JH
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 *udma4 udma5
AdvancedPM=no WriteCache=enabled
Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2:
* signifies the current active mode

А как измерить скорость копирования в /dev/null, я не знаю:(

dgaf

$ du -sb music/; time -p tar -cf /dev/null music/
3133191019 music/
real 0.04

shlyumper

в общем, маловато однозначно. Потестировал сейчас у себя, получилось:
fat32 -> /dev/null: 38.9 Mbyte/sec
fat32 -> resierfs3.6: 10.5 MByte/sec
fat32 и reiserfs разделы находятся на одном и том же жестком диске, иначе было бы еще быстрее.

shlyumper

неправильный подход, дает завышенные результатаы. нужно примерно так:
$ du -sb music/; umount /mnt/fat32part; mount /mnt/fat32part; time -p tar -cf /dev/null music/
сравни:

leo ~ # time dd if=/mnt/e/unreal_tournament.rar of=/dev/null
596841+1 records in
596841+1 records out
real 0m9.504s
user 0m0.299s
sys 0m2.705s
leo ~ # time dd if=/mnt/e/unreal_tournament.rar of=/dev/null
596841+1 records in
596841+1 records out
real 0m1.483s
user 0m0.289s
sys 0m1.193s
leo ~ # umount /mnt/e; mount /mnt/e; time dd if=/mnt/e/unreal_tournament.rar of=/dev/null
596841+1 records in
596841+1 records out
real 0m9.765s
user 0m0.334s
sys 0m2.697s

Dilagio

Затеял дефрагментацию. К послезавтра, надеюсь, закончит.

kruzer25

К послезавтра, надеюсь, закончит
И после этого есть ещё какие-то сомнения, чем вызваны тормоза?

Dilagio

Я не дождался.
Скопировал просто туда-сюда содержимое - оно само дефрагментировалось.
Теперь скорость в 10-15 раз выше
Всем спасибо

shlyumper

наверное, у тебя маловато свободного места на диске было. для эффективной работы дефрагментатора нужно хотябы процентов 15-20 свободного места... иначе дефрагментация занимает очень много времени.

Dilagio

Нет, просто случай был безнадёжный
У файлов-рекордсменов на 3Мб по полторы тыщи фрагментов.
Оставить комментарий
Имя или ник:
Комментарий: