[Comm] Старый компьютер и производительность жесткого диска
Владимир Гусев
=?iso-8859-1?q?vova1971_=CE=C1_narod=2Eru?=
Пн Июн 18 01:35:14 MSD 2007
Здравствуйте!
Вновь поднял эту тему из-за крайней необходимости и из-за окончательной
потери терпения ждать по 5 минут каждого дейчтвия на компьютере. Из-за
переезда вынужден сидеть на Tecra 750 CDM (233 мгц, 64 мб, S3 Virge 4
мб). В свое время это был выдающийся агрегат среди своих современников,
нацелен на мультимедийные задачи, практически любые порты, видеокарта 4
мб (когда у многих тогдашних было по 1-2 мб) и т.д.
Установлен Мастер 2.4. По прошлым советам решил использовать reiserfs
вместо ext2. Подробнейшим образом изучил возможности драйвера s3virge
(XFree86 4.3.0) и увеличил производительность видеокарты. Использую
Icewm и Window Maker, но не отказываюсь от некоторых kde/qt- и
gtk2-программ (Opera, Kmail, Seamonkey, Sim).
Однако главный удар по быстродействию был нанесен работой жесткого
диска. Первые 5 минут работы после загрузки ОС все просто хорошо
(насколько это возможно). Все более-менее шустро и прорисовка хорошая.
Однако после запуска пары не самых тяжелых (но нужных) приложений
начинается кошмар - при слабой нагрузке процессора и лишь наполовину
занятой памяти все начинает жутко тормозить, переключение между столами
просто кошмар, нужно долго ждать пока все затихнет. Все это
сопровождается отчаянным клокотанием и жутчайшей прорисовкой графики.
На мой взгляд, виной всему неоптимизированный жесткий диск (тем более,
что swap (128 мб) используется и довольно часто. Дело дошло до
оптимизации. Итак hdparm:
[root на tecra root]# hdparm -i /dev/hda
/dev/hda:
Model=IBM-DPLA-25120, FwRev=PL8OAB4A, SerialNo=D30D3118044
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=10592/15/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=DualPortCache, BuffSize=468kB, MaxMultSect=16, MultSect=16
CurCHS=10592/15/63, CurSects=10009440, LBA=yes, LBAsects=10009440
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 *mdma2
UDMA modes: udma0 udma1 udma2
AdvancedPM=yes: mode=0x80 (128)
Drive conforms to: ATA-3 X3T10 2008D revision 1: 1 2 3
* signifies the current active mode
Команда hdparm /dev/hda как всегда показала традиционные нули и
16-разрядный режим (интересно, когда-нибудь настанет время, когда всё
это будет устанавливаться на максимум при установке ОС раз и
навсегда?).
Начал подбирать режимы по инструкции из Сети.
Пришел к следующим параметрам для hdparm:
[root на tecra root]# cat /etc/sysconfig/harddisk/hda
/sbin/hdparm -c3 -m 16 -a 16 -X34 /dev/hda
Включение dma оказалось неудачным:
[root на tecra root]# hdparm -d1 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
Параметры поместил в /etc/sysconfig/harddisk/hda, при загрузке ОС видно,
что они применяются, и действительно:
[root на tecra root]# hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
IO_support = 3 (32-bit w/sync)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 16 (on)
geometry = 623/255/63, sectors = 10009440, start = 0
В первые несколько минут после загрузки ОС и Х тест по команде hdparm
-Tt /dev/hda дает чуть более лучшие результаты - Timing buffer-cache
reads в районе 50 MB/sec, Timing buffered disk reads - как и был, около
3-4 50 MB/sec.
После запуска пары приложений и начавшегося клокотания все постепенно
умирает. В это время тест выглядит так:
[root на tecra root]# hdparm -Tt /dev/hda
/dev/hda:
Timing buffer-cache reads: 16 MB in 2.11 seconds = 7.58 MB/sec
Timing buffered disk reads: 12 MB in 3.12 seconds = 3.85 MB/sec
а бывает и хуже:
[root на tecra root]# hdparm -Tt /dev/hda
/dev/hda:
Timing buffer-cache reads: 4 MB in 2.64 seconds = 1.52 MB/sec
Timing buffered disk reads: 2 MB in 6.49 seconds = 315.56 kB/sec
После получаса затишья приходит некоторое успокоение, однако комп нужен
не для того, чтобы он простаивал...
Вся надежда на включение dma (по логике), но это не выходит, как видно
из вышеприведенного примера. Читал на эту тему в сети, но не совсем
понял, что именно нужно делать, и как обойтись "малой кровью"..
Помогите, пожалуйста.
P.S. В Win 98 SE диск показывает производительность гораздо большую,
нежели оптимизированный с помощью hdparm в Linux..
--
С уважением,
Владимир Гусев
Подробная информация о списке рассылки community