Здравствуйте!
После анализа поведения моей Linux системы я сделал вывод, что доступ к диску имеет наивысший приоритет над всеми остальными задачами и это плохо, просто ужасно!
Дело в том, что при активном взаимодействии с диском вся система просто виснет, в качестве примера приведу несколько ситуаций:
1. При сканировании большого файла программой LinuxDC++ начинает подтормаживать даже мышка, хотя система работает
2. Не так давно, я решил записать телепередачу с помощью программы mplayer, скорость кодирования и записи оказалась слишком мала и буфер программы начал рости, когда дело дошло до файла подкачки система просто зависла, мышка не двигалась, интерфейс не обновлялся. Подождав немного (когда размер памяти превысит допустимый программа умрет) интерфейс снова ожил. Система конечна не повисла, но была не работоспособна, такое поведение не допустимо!
3. Запустил я тут программу celtx, она начала писать чтото на диск, система ушла в ступор, да так и не вернулась от туда.
Менее интенсивный доступ к диску таких проблем не взывает.
И вопрос такой: можно ли снизить приоритет операций работы с диском или както изменить поведение планировщика, чтобы избежать вышеописанных проблем?
Система: Fedora, тоже самое творилось и с Ubuntu.
Спасибо.
Приоритет ввода/вывода
Модераторы: SLEDopit, Модераторы разделов
-
ivan1986
- Сообщения: 14
- ОС: Debian sid
Re: Приоритет ввода/вывода
Я не уверен, но похоже это делается с помошью пересборки ядра - там есть несколько планировщиков очереди IO
http://www.rhd.ru/docs/articles/schedulers/
для уменьшения задержек IO советуют выбирать AS или deadline.
хотя у меня на дефолтовом ядре дебиана при очень похожей задаче - мюторрент перехешировал все торренты после того как я его не с первого раза перенес на вайн верно - все было нормально, на XP это именно завешивало систему как вы и описываете, на дебиане я этого не заметил.
Вобщем попробуйте сменить планировщик очереди, хотя может и не помочь...
Если не поможет могу еще посоветовать прогнать винт с помощью mhdd или чего-нить в этом духе
http://www.rhd.ru/docs/articles/schedulers/
для уменьшения задержек IO советуют выбирать AS или deadline.
хотя у меня на дефолтовом ядре дебиана при очень похожей задаче - мюторрент перехешировал все торренты после того как я его не с первого раза перенес на вайн верно - все было нормально, на XP это именно завешивало систему как вы и описываете, на дебиане я этого не заметил.
Вобщем попробуйте сменить планировщик очереди, хотя может и не помочь...
Если не поможет могу еще посоветовать прогнать винт с помощью mhdd или чего-нить в этом духе
-
german
- Сообщения: 79
- ОС: Linux
Re: Приоритет ввода/вывода
А DMA включено ?
Код: Выделить всё
hdparm -v /dev/hd? (a,b,...)
...
using_dma = 1 (on)
...Если нет то включить обязательно.
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: Приоритет ввода/вывода
daa
Надеюсь, вы работаете не из-под root?
Для начала проверьте режим DMA для вашего диска. Сделать это можно командой:
Большинство современных дисков поддерживают режим UltraDMA5.
Затем запустите:
Если результат меньше 50 Мб/с, то либо у вас очень старый жёсткий диск, либо он находится не в оптимальном режиме.
Выбор другого планировщика может помочь. Но для этого не нужно пересобирать ядро! Достаточно к параметрам загрузки добавить elevator=<нужный планировщик>.
Это кто же такое советует?
as - для данного планировщика наивысший приоритет обработки имеют запросы, приводящие к наименьшему перемещению коромысла ЖД. Это часто приводит к тому, что ввод-вывод практически полностью захватывается одним процессом, другие же получают более-менее нормальный доступ к диску только по его освобождении занимающим процессом. По моим субъективным ощущениям — не самый лучший выбор для рабочей станции.
deadline - это вообще не годится для домашнего компьютера. Данный планировщик выдаёт попеременный монопольный доступ к диску одному приложению из всех. Это может сгодиться для файл-сервера, но не для рабочей станции.
Пожалуй, наилучший выбор — планировщик cfq («полностью справедливая очередь»). Работа этого планировщика наиболее напоминает классический однопроходный элеваторный алгоритм.
Но выбор планировщика может помочь только в случае неудовлетворительной отзывчивости системы при нормальной общей скорости обмена с диском. Если сам ввод-вывод медленный, то планировщик — это последнее, на что можно подумать.
Надеюсь, вы работаете не из-под root?
Для начала проверьте режим DMA для вашего диска. Сделать это можно командой:
Код: Выделить всё
hdparm -I <устройство>Большинство современных дисков поддерживают режим UltraDMA5.
Затем запустите:
Код: Выделить всё
hdparm -t <устройство>Если результат меньше 50 Мб/с, то либо у вас очень старый жёсткий диск, либо он находится не в оптимальном режиме.
ivan1986 писал(а): ↑02.05.2008 20:23Я не уверен, но похоже это делается с помошью пересборки ядра - там есть несколько планировщиков очереди IO
http://www.rhd.ru/docs/articles/schedulers/
для уменьшения задержек IO советуют выбирать AS или deadline.
Выбор другого планировщика может помочь. Но для этого не нужно пересобирать ядро! Достаточно к параметрам загрузки добавить elevator=<нужный планировщик>.
Это кто же такое советует?
as - для данного планировщика наивысший приоритет обработки имеют запросы, приводящие к наименьшему перемещению коромысла ЖД. Это часто приводит к тому, что ввод-вывод практически полностью захватывается одним процессом, другие же получают более-менее нормальный доступ к диску только по его освобождении занимающим процессом. По моим субъективным ощущениям — не самый лучший выбор для рабочей станции.
deadline - это вообще не годится для домашнего компьютера. Данный планировщик выдаёт попеременный монопольный доступ к диску одному приложению из всех. Это может сгодиться для файл-сервера, но не для рабочей станции.
Пожалуй, наилучший выбор — планировщик cfq («полностью справедливая очередь»). Работа этого планировщика наиболее напоминает классический однопроходный элеваторный алгоритм.
Но выбор планировщика может помочь только в случае неудовлетворительной отзывчивости системы при нормальной общей скорости обмена с диском. Если сам ввод-вывод медленный, то планировщик — это последнее, на что можно подумать.
-
daa
- Сообщения: 23
- ОС: Fedora
Re: Приоритет ввода/вывода
Спасибо за советы!
Я сменил планировщик на as и всё стало нормально, теперь интенсивные дисковые операции систему не вешают. Правда появилась другая проблема (как и описал Rootlexx): если ктото интенсивно использует диск, то остальные приложения, использующие диск могут очень долго ждать, но всёже это лучше чем подвисшая система.
Забыл написать сразу: диск у меня SATA.
нет
hdparm -I кроме всего прочего выдал:
Т.е. текущий режим udma6.
hdparm -t выдавал 55-60 Мб/с - это нормальная скорость для SATA диска?
Спасибо!
Я сменил планировщик на as и всё стало нормально, теперь интенсивные дисковые операции систему не вешают. Правда появилась другая проблема (как и описал Rootlexx): если ктото интенсивно использует диск, то остальные приложения, использующие диск могут очень долго ждать, но всёже это лучше чем подвисшая система.
Забыл написать сразу: диск у меня SATA.
daa
Надеюсь, вы работаете не из-под root?
нет
hdparm -I кроме всего прочего выдал:
Код: Выделить всё
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16 Current = 16
Recommended acoustic management value: 254, current value: 0
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120nsТ.е. текущий режим udma6.
hdparm -t выдавал 55-60 Мб/с - это нормальная скорость для SATA диска?
Спасибо!
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: Приоритет ввода/вывода
daa писал(а): ↑02.05.2008 23:22Я сменил планировщик на as и всё стало нормально, теперь интенсивные дисковые операции систему не вешают. Правда появилась другая проблема (как и описал Rootlexx): если ктото интенсивно использует диск, то остальные приложения, использующие диск могут очень долго ждать, но всёже это лучше чем подвисшая система.
А cfq вы попробовали? В Mandriva, скажем, ядро специально собирается с cfq по умолчанию.
Зависит от диска, но вроде нормальная. У меня 54 Мб/с.
-
daa
- Сообщения: 23
- ОС: Fedora
Re: Приоритет ввода/вывода
Ставить elevator с параметром не пробовал, но я смотрел текущий менеджер командой:
Код: Выделить всё
cat /sys/block/sda/queue/schedulerОна показала, что текущим был cfg.
Я всё больше склоняюсь к тому, что у меня старая материнская плата и возможно поддержка SATA там просто левая, по этому возникают такие странные проблемы. Материнская плата поддреживает только SATA, а диск у меня SATA II, на диске поставил перемычку в сторону совместимости с SATA, но возможно, какието проблемы всёже вылезают.