LINUX.ORG.RU

Большая загрузка процессора при работе с жестким диском


0

0

При работе с жестким диском система сильно тормозит. KCPUload показывает 100% загрузки процессора. Система debian 5.0 lenny. Машинка - asus eeepc 900. поиски в инете натолкнули на мысль, что проблема в использовании модуля ata_piix , всюду советуют использовать ahci. lsmod говорит, что загружены они оба. rmmod ata_piix ругается, что модуль используется, использовать -f побоялся:)


Вот. Что посоветуете?

Далее выводы некоторых команд.

sudo hdparm -t /dev/sda

/dev/sda:
Timing buffered disk reads: 112 MB in 3.05 seconds = 36.70 MB/sec




sudo hdparm -i /dev/sda

/dev/sda:

Model=ASUS-PHISON OB SSD , FwRev=TST2.04P, SerialNo= '
Config={ HardSect NotMFM Fixed DTR>10Mbs }
RawCHS=7818/16/63, TrkSize=32256, SectSize=512, ECCbytes=4
BuffType=DualPort, BuffSize=1kB, MaxMultSect=1, MultSect=?0?
CurCHS=7818/16/63, CurSects=7880544, LBA=yes, LBAsects=7880544
IORDY=yes, tPIO={min:120,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
AdvancedPM=no
Drive conforms to: Unspecified: ATA/ATAPI-4,5

* signifies the current active mode





sudo hdparm -I /dev/sda

/dev/sda:

ATA device, with non-removable media
Model Number: ASUS-PHISON OB SSD
Serial Number: '
Firmware Revision: TST2.04P
Standards:
Supported: 5 4
Likely used: 6
Configuration:
Logical max current
cylinders 7818 7818
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 7880544
LBA user addressable sectors: 7880544
device size with M = 1024*1024: 3847 MBytes
device size with M = 1000*1000: 4034 MBytes (4 GB)
Capabilities:
LBA, IORDY(cannot be disabled)
Standby timer values: spec'd by Vendor, no device specific minimum
R/W multiple sector transfer: Max = 1 Current = 0
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* Power Management feature set
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* CFA feature set
* Mandatory FLUSH_CACHE
Integrity word not set (found 0x0000, expected 0x92a5)

Re: Большая загрузка процессора при работе с жестким диском

А не включается.

sudo hdparm -d1 /dev/sda

/dev/sda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
HDIO_GET_DMA failed: Inappropriate ioctl for device

PivManOff ()

Re: Большая загрузка процессора при работе с жестким диском

> Неужели трудно прочитать то, на что отвечаешь? :)

От блин, действительно. Видать спать пора. Пока я на своих серверах не начал какую-нибудь хрень делать.

Хмм. Тогда хз, но я бы первым делом проверил:

1. биос, что там выставлено (внимательно, бывают малозаметные опции для дисков)

2. модуль. который использует ядро для работы с диском.

3. точно ли включена поддержка дма в ядре, это важно.

soomrack ★★★ ()

Re: Большая загрузка процессора при работе с жестким диском

Так. Прочитал первую строчку поста. :)

Пересобери ядро без модуля ata_piix, он, кажется, деприсед. Ну и остальные советы, тоже, на всякий случай проверь.

soomrack ★★★ ()

Re: Большая загрузка процессора при работе с жестким диском

В биосе посмотрел, но ничего толкового не увидел. Да там и смотреть не на что - настроек минимум. А вот с остальными советами проблемы, ибо просто не знаю, как это сделать.

Про поддержку дма в ядре посмотрел в /boot/config-2.6.26-1-686 , нашел там строку CONFIG_SCSI_DMA=y Это оно, или надо было как-то по-другому делать?

Про сборку ядра. Качаю сейчас исходники. Потом планирую

cd /usr/src/linux-source-2.6.26
cp /boot/config-2.6.26-1-686 .config
make menuconfig

и там поставить CONFIG_ATA_PIIX=n

Затем

make bzImage modules
make modules_install install
update-grub

Все правильно?

PivManOff ()

Re: Большая загрузка процессора при работе с жестким диском

все правильно, но я бы так не делал. Нужны отходные пути:

0. В новом ядре добавь метку: general setup/local version...

1. Новое ядро собери монолитным (модулей чтобы не было, или по минимому, вся вкомпиль в ядро, но поддержку модулей оставь).

2. не только отключи указанный модуль, но и посмотри для своего чипсета, вдруг есть?

3. make && make modules_install

4. cp arch/x86/boot/bzImage /boot (подсказка будет после make)

5. сделай доп строчки в /boot/grub/grub.conf для жтого нового ядра. Чтобы было меню вначале.

так, если что у тебя будет возможность откатится.

soomrack ★★★ ()

Re: Большая загрузка процессора при работе с жестким диском

> При работе с жестким диском система сильно тормозит. KCPUload показывает 100% загрузки процессора. ...

Возможно вся суть проблемы, что у Вас в Crontab прописана fcheck, которая каждые 30 секунд производит проверку на изменения в файлах? Обычно, она идет минут 10-20 в зависимости от размера дискового пространства. Поэтому, отсюда могут быть такие тормоза.

rjaan ★★ ()

Re: Большая загрузка процессора при работе с жестким диском

>Crontab прописана fcheck, которая каждые 30 секунд производит проверку
> она идет минут 10-20
20-40 копий fcheck затормозят любой компьютер, только я что-то с таким не сталкивался.

gnomino ()

Re: Большая загрузка процессора при работе с жестким диском

Да, кстати, тут вот недавно знакомым, которые хотели сэкономить средства на покупку ПО за счет установки Linux, на ноут toshiba L40-14b установил lenny и ничего никаких тормозов. Правда, рабочий стол там используется Gnome.

rjaan ★★ ()

Re: Большая загрузка процессора при работе с жестким диском

Спасибо. Но увы. Не прописано. Да и симптомы другие. При оычной работе ничего не тормозит. Зато стоит начать что-то копировать на винт, как начинаются страшные тормоза.

PivManOff ()

Re: Большая загрузка процессора при работе с жестким диском

В БИОСе режим legacy на диски не включен ?

ovax ★★ ()

Re: Большая загрузка процессора при работе с жестким диском

> s/dedline/deadline/

Не буду отрицать такую возможность, но планировщик отвечает в первую очередь за планирования выполнения процессов и потоков(нитей) из очереди. Его работа "тактируется" прирыванием от таймера. При копировании на жесткий диск возникают прерывания от SATA-контроллера или DMA-контроллера после его заполнения. Поэтому, здесь вряд ли такое возможно. Но чем черт не шутит :)))

Для того, чтобы узнать какой планировщик используется нужно выполнить:

$ dmesg | grep schedule

Как показывает дамп ниже используется cfq-планировщик.

io scheduler noop registered

io scheduler anticipatory registered

io scheduler deadline registered

io scheduler cfq registered (default)

rjaan ★★ ()

Re: Большая загрузка процессора при работе с жестким диском

> В БИОСе режим legacy на диски не включен

Согласен, вот это вроде бы близко к теме, что подтверждает гугль http://www.google.com/linux?hl=ru&q=BIOS+SATA+Native+SATA+%D0%B8+legacy%2...

rjaan ★★ ()

Re: Большая загрузка процессора при работе с жестким диском

Я предложил не решение проблемы, а облегчение последствий, так система немного отзывчивее. Вообще-то этот вопрос уже несколько раз подымался на ЛОРе.

gnomino ()

Re: Большая загрузка процессора при работе с жестким диском

> Я предложил не решение проблемы, а облегчение последствий, так система немного отзывчивее. Вообще-то этот вопрос уже несколько раз подымался на ЛОРе.

А никто и не спорит, что систем будет отзывчива :))) Тут скорее вопрос к автору топа - он копирует большого размера данные или нет. Потому что у меня такое наблюдается при копировании большого размера данных на внешний жесткий диск, который сопряжен через USB-интерфейс. Правда эффект на других интерфейсах сопряжения(Serial ATA и IDE) накопителей мало заметен, но присутствует.

rjaan ★★ ()

Re: Большая загрузка процессора при работе с жестким диском

Заметил какие-то странные строки в dmesg. Похоэже, это связано с жесткими.

[ 1.772915] Driver 'sd' needs updating - please use bus_type methods
[ 1.772915] sd 1:0:0:0: [sda] 7880544 512-byte hardware sectors (4035 MB)
[ 1.772915] sd 1:0:0:0: [sda] Write Protect is off
[ 1.772915] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 1.772915] sd 1:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1.772915] sd 1:0:0:0: [sda] 7880544 512-byte hardware sectors (4035 MB)
[ 1.772915] sd 1:0:0:0: [sda] Write Protect is off
[ 1.772915] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 1.772915] sd 1:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1.772915] sda: sda1 sda2 < sda5 >
[ 1.772915] sd 1:0:0:0: [sda] Attached SCSI disk
[ 1.772915] sd 1:0:1:0: [sdb] 31522176 512-byte hardware sectors (16139 MB)
[ 1.772915] sd 1:0:1:0: [sdb] Write Protect is off
[ 1.772915] sd 1:0:1:0: [sdb] Mode Sense: 00 3a 00 00
[ 1.772915] sd 1:0:1:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1.772915] sd 1:0:1:0: [sdb] 31522176 512-byte hardware sectors (16139 MB)
[ 1.772915] sd 1:0:1:0: [sdb] Write Protect is off
[ 1.772915] sd 1:0:1:0: [sdb] Mode Sense: 00 3a 00 00
[ 1.772915] sd 1:0:1:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

Это нормально? Что за драйвер такой?

PivManOff ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.