>Во время работы несколько раз замирал FF, где то секунды на 2-3, остальное вроде все нормально ворочалось
собственно, «тормознутость» FF - это одно из проявлений проблемы fsync на больших файлах. Потому что sqlite. У гажима, подозреваю, причина подвисаний - тоже использование sqlite
>А патч или что-то там, исправляющий, уже есть? :)
Пока проблема носит характер подземного стука, причина не известна, не говоря уже об исправлении. Его даже воспроизводить толком не получается - либо есть, либо нет.
я тоже грешил. Пока не воткнул в бук чистый винт, куда поставил кармик. До этого дефрагментировал ext3, в итоге сейчас ext4, баг никуда не делся. Шедулеры пробовал разные - нет изменений.
кстати, тем, у кого ext4 и баг - немного поможет опция монтирования nobarrier.
Я уменьшал влияние бага путём кручения vm.dirty_ratio
в какую сторону крутил?
ну и хотелось бы не уменьшить влияние, а вообще избавиться от бага.
Уменьшил размер файлика в 8 раз (ну нету места у меня, нету) и получил вот такой прикольный результат.
setting up random write file
done setting up random write file
starting random io!
starting fsync run
fsync time: 9.9228s
fsync time: 30.8786s
fsync time: 1.0695s
fsync time: 1.6866s
fsync time: 1.2149s
run done 5 fsyncs total, killing random writer
Запускал несколько раз на винте, который никем не юзается - никаких фризов. Запускал в $HOME - тормозят только те, кто лезет на ФС. Ведро 2.6.32 amd64.
http://pastebin.ca/1726948
вот на таких древностях мы сидим. Тормозов особых не заметил, учитывая что у меня процессорный вентилятор подвывает от колесика мыши, я к ним привык.
Сомнительно.
Когда впервые зарелизилось ядро с CFQ - все радовались, эта бага исчезла.
Потом постепенно вернулась.
Очень зависит от железа, я на своём нетбуке практически не замечаю сейчас.
Раньше был hp nx7300 - там было заметнее в разы, но с тех пор и ядра поменялись сильно.
Ну смотри: бага в том, что ядро проводит недопустимо много времени в каком-то привилегированном участке, причем невытесняемом. Что такого в системе происходит, когда есть интенсивный I/O? Появляется много аппаратных прерываний от DMA-контоллера, которыми он уведомляет систему о необходимости считать данные из буфера. Где-то тут и тормозит. Я грешу на проблемы с обработчиками прерываний, а acpi тут может играть не последнюю роль ввиду того, что ей отдали распределение номеров прерываний и диапазонов ввода-вывода.
>а прерывания у тебя между устройствами кто разруливает?
хз, я в этих низкоуровневых вещах не слишком силён. Имел в виду что grep -i acpi /usr/src/linux/.config ничего не показывает (все соответствующие опции в ядре отключены).
P'nP OS
Нет вроде такого. Есть что-то типа «special PnP for PCI», установлена в «disabled». Материнка на nForce3.
acpi_os_name=«Microsoft Windows» ничего не изменило, и у меня аптайм похоже не влияет: сразу после загрузки системы 5-секундные фризы при включенном тесте и fsync time 1-7 секунд
баг есть у всех. Но проявляется он по разному, и зависит от того, как сконфигурирована система - какая fs, её фрагментация, кешируется ли запись журнала и есть ли он вообще, опции noatime, nomtime, кол-во ядер цпу (при отключении второго ядра, например - тормоза становятся сильно меньше), размер оперативки и активность свопа, размер буферов, частота сброса на диск, кол-во одновременно читающих/пишущих процессов, включено ли ncq (выставление размера очереди в 1 тоже улучшает ситуацию)
это всё - влияет, что-то больше, что-то меньше. Но у всего этого есть одно общее - настройки, увеличивающие общее кол-во запросов к диску на запись - выпячивают багу.
подозреваю, что косяк где-то в управлении очередью i/o. Может, дисковая подсистема стала очень умной, и ждет - не прилетит ли ещё запрос, который можно выполнить одновременно с уже имеющимися,а может - запросы на запись вставляются в начало очереди, как самые важные, в результате чего запрос на чтение файла вызывает запись atime + до кучи сброс залежалого товара в своп + ещё что-нибудь. В итоге ядро проводит 90% времени в iowait
тут надо кого-то, кто разбирается, как проходят вызовы внутри ядра.
зы: у самого чипсеты 945 и 965 - на обоих бага есть, масштабы отличаются незначительно.
кому невмоготу, пробуйте и наблюдайте за изменениями:
для всех fs - noatime
для ext4 - noatime, nobarrier
echo 1 > /sys/class/block/<диск>/queue/nr_requests
echo 99 > /proc/sys/vm/dirty_ratio
> подозреваю, что косяк где-то в управлении очередью i/o
Косяки с очередью наблюдались бы без привязки к чипсетам.
Кроме того, вот эта информация
945 и 965
никакого смысла не несет, потому что за дисковое I/O отвечает южный мост, к которому могут еще дискретные контроллеры отвечать. Так что мое предложение — у тех, кого баг проявляется явно и безоговорочно должны выяснить, к порту какого контроллера у них подсоединен их диск, название, и модель желательно. Вот это будет адекватный сбор информации.
Пока под подозрениями южные мосты от Nvidia, но это нужно проверять.
Про себя: Дисковая система на
SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH)
IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)
Да, кстати, всю логику планировщика можно отключить, выбрав планировщик noop. Он, как я понимаю, вообще никакого переупорядочивания запросов не делает. Пробуйте его тогда!
да пробовал. Отключение планировщика в общем-то никак не влияет на само существование очереди запросов. Даже если запросы не группировать и не объединять.
все опробованные планировщики i/o - noop, anticipatory, cfq, deadline, bfq - никак не влияют на баг