Дисковые операции замораживают Debian

12

Я только что установил тестирование Debian на своем новом рабочем столе, и я не очень доволен производительностью - когда я выполняю операции с интенсивным диском, например, обновление пакетов в системе, все кажется зависшим, например, изменение вкладок в Iceweasel занимает 3 секунды. Я запускаю Debian на своем 3-летнем ультрапортативном ноутбуке Thinkpad X60, и у меня нет этих проблем. (каждый параметр ноутбука намного хуже, чем у рабочего стола).

Я использую стандартное упакованное ядро ​​и скрипты.

я бегу

hdparm -t /dev/sda1

И я получил около 96 ГБ / с, что ожидается. Что еще я могу попытаться заставить это работать лучше?

РЕДАКТИРОВАТЬ :

grzes:/home/ga# hdparm -i /dev/sda

/dev/sda:

 Model=WDC WD15EARS-00Z5B1, FwRev=80.00A80, SerialNo=WD-WMAVU1362357
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-1,2,3,4,5,6,7

 * signifies the current active mode

EDIT2 : Даже моя жена сказала: «На этом новом компьютере я ничего не могу сделать, когда копирую фотографии с камеры, и это намного хуже, чем на старом». Так что это должно быть серьезно.

EDIT3 : обновлен до 2.6.32, но все еще без улучшений

EDIT4 : я забыл упомянуть, что новый диск ext4, старый был ext3.

EDIT5 : до сих пор не решена. У меня есть плата P43 ASUS P5QL-E. Строки из dmesg, которые кажутся актуальными:

[    0.370850] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)                              
[    0.370852] io scheduler noop registered                                                                      
[    0.370853] io scheduler anticipatory registered                                                              
[    0.370854] io scheduler deadline registered                                                                  
[    0.370876] io scheduler cfq registered (default)
...
[    0.908233] ata_piix 0000:00:1f.2: version 2.13                                                               
[    0.908243] ata_piix 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19                                 
[    0.908246] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]                                                        
[    0.908275] ata_piix 0000:00:1f.2: setting latency timer to 64                                                
[    0.908316] scsi0 : ata_piix                                                                                  
[    0.908374] scsi1 : ata_piix                                                                                  
[    0.909180] ata1: SATA max UDMA/133 cmd 0xa000 ctl 0x9c00 bmdma 0x9480 irq 19                                 
[    0.909183] ata2: SATA max UDMA/133 cmd 0x9880 ctl 0x9800 bmdma 0x9488 irq 19                                 
[    0.909199] ata_piix 0000:00:1f.5: PCI INT B -> GSI 19 (level, low) -> IRQ 19                                 
[    0.909202] ata_piix 0000:00:1f.5: MAP [ P0 -- P1 -- ]                                                        
[    0.909228] ata_piix 0000:00:1f.5: setting latency timer to 64                                                
[    0.909279] scsi2 : ata_piix                                                                                  
[    0.909326] scsi3 : ata_piix                                                                                  
[    0.910021] ata3: SATA max UDMA/133 cmd 0xb000 ctl 0xac00 bmdma 0xa480 irq 19                       
Grzenio
источник
1
У меня тоже такая же проблема. Я использую Ubuntu 9.10 64 бит.
Абхиджит Растоги
1
какие-нибудь обновления к этому? все еще есть проблема? Если да, расскажите, какой чипсет используется на материнской плате? что-нибудь интересное в dmesgотношении чипсета или накопителя? если вы как-то исправили это, рассмотрите возможность публикации рецензии в качестве ответа, чтобы будущие читатели знали.
Квик-кихот
@ ~ шарлатан, еще не решен, смотрите редактирование.
Grzenio

Ответы:

4

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

Рейчел
источник
ooOOOOooo. Вы можете быть к чему-то. Вывод dmesg указывает, что он может обнаружить диск как сектор с 512-байтовым сектором: "[sda] 2930277168 512-байтовые логические блоки" .. есть ли на диске "перемычка XP", которая установит какой-то режим совместимости? есть ... см. перемычку "Advanced Format" здесь: wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/… .., которая, вероятно, говорит ОС, что у нее есть 512-байтовые сектора, убедитесь, что это не так устанавливать.
шарлатан-кихот
спасибо за ответ Не могли бы вы сказать мне, как я могу проверить смещение? Могу ли я просто переместить раздел или мне нужно его воссоздать?
Grzenio
Есть ли способ проверить смещение на разделе? Команду, которую можно запустить?
Уоррен П
Вы можете использовать gdisk для проверки смещений разделов - rodsbooks.com/gdisk
Джеймс Самнерс
4

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

Это не было связано ни с выравниванием, ни с настройкой hdparm (хотя я согласен, что это поможет).

Блокировка системы была вызвана планировщиком ввода-вывода, который слишком сильно задерживает некоторые операции ввода-вывода, необходимые для более интерактивных приложений (Firefox, KDE и т. Д.). Неисправный планировщик ввода-вывода был cfg .

Чтобы решить эту проблему, вы должны использовать планировщик ввода-вывода срока. Вы активируете его на диске с помощью следующей команды, которую вы можете добавить в /etc/rc.local :

echo deadline >  /sys/block/sda/queue/scheduler

Проверьте « Решение проблемы блокировки системы Linux», когда интенсивный дисковый ввод-вывод выполняется для получения дополнительной информации.

Цицерон
источник
2

Это выстрел в темноте, но у меня была такая проблема некоторое время назад, и причина оказалась в том, что ядро ​​не полностью поддерживало чипсет, и DMA был выключен. Проверить с

hdparm -i /dev/sda

включен ли один из режимов DMA.

(Решением в этом случае было получить более новое ядро.)

Питер Айзентраут
источник
ВЫХОД: - Режимы DMA: MDMA0 MDMA1 MDMA2 Режимы UDMA: UDMA0 UDMA1 UDMA2 UDMA3 UDMA4 UDMA5 * UDMA6 Итак, в чем проблема?
Абхиджит Растоги
Я получил: Model=WDC, FwRev=80.00A80, SerialNo=WD-WMAVU1362357 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50 BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=no WriteCache=enabled Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7
Grzenio
Нет режима dma, кажется, есть звезда (это его актуально). Это имеет значение? Как я могу настроить это?
Грзенио
Также я не уверен, что это не относится только к устройствам IDE, потому что я получаю: hdparm -d / dev / sda / dev / sda: HDIO_GET_DMA: не подходит ioctl для устройства
Grzenio
@Grzenio: режим udma6, кажется, имеет звезду, это неправильно? Возможно, вы захотите отредактировать эту информацию в своем сообщении, чтобы вы могли отформатировать ее.
шарлатанство
2

Я столкнулся с проблемами, когда операции, которые выполняют много вызовов fsync (2), вызовут значительное замедление работы системы. В моем случае я работаю с моим корневым разделом, содержащимся в LVM, содержащемся в LUKS. Вы используете LVM или LUKS?

Называется инструмент, который может помочь точно определить, что именно пережевывает ваши диски (а не просто «устанавливать пакеты») iotop. Я бы посоветовал запустить его, пока вы выполняете одну из этих задач, и он может указать на какой-то другой фоновый процесс, который может запускаться одновременно и поглощать всю вашу пропускную способность ввода / вывода.

pioto
источник
Привет, извините за поздний ответ: iotop говорит, что [jbd2 / sda3-8] использует 80% -99% ввода-вывода, но чтение с диска, запись и замена - 0.0 одновременно. Есть идеи?
Грзенио
В общем, проверка чрезмерного fsync - это хороший момент для проверки. Однако в этом случае то же программное обеспечение работает намного лучше на другом оборудовании (старом T60), так что это больше похоже на проблему с этой конкретной комбинацией аппаратного драйвера. Тем не менее, хорошо иметь это в виду.
слеске
2

sudo fdisk -u / dev / sda

Это должно дать вам начальное смещение. Я «думаю», что вы можете создать раздел, используя fdisk -o 64 или что-то еще - я должен был бы прогуглить его, так что я позволю вам выполнить поиск в Google по fdisk и вручную установить смещение раздела (по умолчанию 63, так что ничего хорошего).

и да, диск будет отображаться с 512b секторами, поскольку он притворяется таковым для ОС - Vista / W7 справляется с этим, устанавливая правильное смещение, но XP и я думаю, что почти все дистрибутивы linus не работают :( вручную это единственный способ, которым это кажется (у меня просто накопитель, созданный в win7 / ntfs, так что для меня это не проблема)

Редактировать: - На WDC нашел хороший пост - это должно помочь вам в кратчайшие сроки :)

http://community.wdc.com/t5/Desktop/Problem-with-WD-Advanced-Format-drive-in-LINUX-WD15EARS/mp/10920#M631


источник
Привет, я получил: grzes: / home / ga # fdisk -u / dev / sda Число цилиндров для этого диска установлено в 182401. В этом нет ничего плохого, но это больше, чем 1024, и может в некоторых настройках вызвать проблемы с: 1) программным обеспечением, которое запускается во время загрузки (например, старые версии LILO) 2) загрузкой и разделением программного обеспечения из других ОС (например, DOS FDISK, OS / 2 FDISK) команда (m для справки):
Grzenio
Мне наконец удалось это сделать, но это не помогло :( Реальная проблема должна быть где-то еще.
Grzenio
1

Просто случайный снимок, который кажется глупым, учитывая, что вы используете Debian ... но я обнаружил, что он помог кому-то с той же моделью жесткого диска: вы пытались обновить BIOS?

liori
источник
Нет, не знаю Хотя стоит попробовать
Грзенио
1

Как правило, если вы можете использовать hdparm на устройстве, то это «старый» интерфейс ATA по сравнению с более новым интерфейсом SATA / SCSI. Если это так, то проблема, вероятно, заключается в том, что дисковые операции во время прерываний не включены по умолчанию. Это распространенная проблема на некоторых машинах, использующих более старый интерфейс ATA, и снижает производительность диска или системы во время тяжелых операций ввода-вывода.

Вы действительно должны попробовать это:

sudo hdparm -t -T /dev/sda
sudo hdparm -a8 -c3 -u1 /dev/sda
sudo hdparm -t -T /dev/sda

Если вы не видите улучшения производительности во 2-м цикле (третья команда), тогда происходит что-то еще.

Другим фактором является ожидание, что режим UDMA6 будет работать по кабелю не-UDMA (при условии, что это не интерфейс SATA). Если вы используете 80-контактный кабель ATA, все в порядке; Если вы используете более старый 40-контактный разъем, вы получите все виды горя. Если кабель является старым 40-контактным, вам нужно снизить скорость передачи до уровня, который может поддерживаться «безопасно». ВНИМАНИЕ: настройка интерфейса IDE может привести к зависанию диска и / или интерфейса, и, если диск является вашей корневой файловой системой, вся система зависнет вместе с ним!

Если вам нужно уменьшить скорость передачи данных в соответствии с оборудованием, попробуйте следующее:

sudo hdparm -t -T /dev/sda
sudo sync; sleep 3 ; sync    
sudo hdparm -d 1 -X mdma2 /dev/sda
sudo hdparm -t -T /dev/sda

Опять же, второй тайминг (третья команда выдана) должен показать улучшение.

Наконец, сам диск может быть маргинальным, но без отчетов SMART вы можете не заметить проблему (пока не станет слишком поздно). Я действительно рекомендую установить smartmontoolsпакет, чтобы помочь вам, особенно если у вас есть старый диск, который будет нуждаться в небольшом TLC время от времени.

sudo apt-get update && apt-get install smartmontools

Если все остальное терпит неудачу, ищите /var/log/messagesошибки дискового ввода-вывода.


Обновить:

Похоже, вы не одиноки. По всей сети есть доски объявлений, сообщающие обо всех видах душевной боли с этими устройствами.

Также упоминается, что диск использует размер сектора 4 КБ по сравнению с «традиционным» размером 512 байт. Я могу только представить, какие неприятности это должно вызывать.

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

Эйвери Пэйн
источник
Привет, спасибо за ваш ответ. (1) Это диск SATA и он подключен с помощью тонкого кабеля SATA к интерфейсу SATA на материнской плате. (2) Пробовал первый тест, и производительность фактически снизилась с 90,93 МБ / с до 52,50 МБ / с. Необработанная производительность чтения, похоже, не является проблемой (90 МБ - это то, что я ожидаю от этого накопителя), просто некоторые незначительные операции замораживают систему
Grzenio
Второй тест тоже ничего не улучшил. Как в первом, так и во втором большинстве параметры не могут быть установлены: hdparm -d 1 -X mdma2 / dev / sda / dev / sda: установка using_dma на 1 (вкл.) 34 (режим нескольких слов DMA2) HDIO_DRIVE_CMD (setxfermode) не удалось: недопустимый обмен HDIO_GET_DMA не удалось: неподходящий ioctl для устройства
Grzenio
Я вчера установил smartmontools, но я не знаю, как их использовать. Не могли бы вы дать немного больше деталей?
Грзенио
Уч. Так что новый жесткий диск будет хорошей идеей.
Уоррен П
1

Это наконец исправлено! Как отметил @Rachel, проблема действительно заключалась в выравнивании по секторам 4 КБ, но, к сожалению, ссылка на статью была неправильной :(

Правильный способ выравнивания разделов находится здесь: http://www.linuxconfig.org/linux-wd-ears-advanced-format

И эта статья дает довольно хороший тест, так что вы можете проверить правильность таблицы разделов: http://article.gmane.org/gmane.linux.utilities.util-linux-ng/2955

Кстати, если у вас есть этот диск и вы используете Linux, вы также ДОЛЖНЫ увеличить один из таймеров простоя, как описано здесь: http://wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/std_adp .php? p_faqid = 5357 & p_created = 1266947046 & p_sid = Os7DQL2k & p_accessibility = 0 & p_redirect = & p_srch = 1 & p_lva = & p_sp = cF9zcmNoPTEmcF9zb3J0X2J5PSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9NTEsNTEmcF9wcm9kcz0yMjcsMjk0JnBfY2F0cz0xMzAmcF9wdj0yLjI5NCZwX2N2PTEuMTMwJnBfcGFnZT0x & p_li = & p_topview = 1

Grzenio
источник
2-я ссылка не работает никакой замены?
xliiv