LINUX.ORG.RU
ФорумTalks

Опять про 12309


0

2

И все-таки. В очередной раз столкнулся с этим эпичным багом и решил узнать:

1) В чем все-таки проблема? В планировщике I/O или в планировщике процессов?

2а) В чем сложность исправления, что аж до сих пор никто не догадался как это исправляется?

2б) Почему, например, нельзя отследить коммит, после которого начал проявляться баг, и уже там найти бажное изменение?

★★★★★

Последнее исправление: pevzi (всего исправлений: 1)
Ответ на: комментарий от anon_666

>Это по твоему io?
это проявления геморов с ним
и кстати что по-твоему i/o?

megabaks ★★★★
()
Ответ на: комментарий от megabaks

вероятно, iowait там резко увеличивается за счёт «HDD wait» )

и вообще, /dev/null вроде безболезненно кормится ноликами. странно всё это.

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

есть ввод-вывод
есть кучка хлама передаваемого по нему
и не суть важно откуда и куда что посылается!!!
а в случае с винтом

iowait там резко увеличивается за счёт «HDD wait» )

megabaks ★★★★
()
Ответ на: комментарий от megabaks

> и не суть важно откуда и куда что посылается!!!

было бы не важно - девналль бы плевался от ноликов и вешал систему. там лес дремучий...

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

>суть в том, что почему именно винт?

Хорошо, тогда перефразирую свой вопрос - как повторить ту же ситуацию, не записывая ничего на hdd?

anon_666
()
Ответ на: комментарий от megabaks

>о_О

что сказать-то хотел?


Запись на hdd - это сферический io в вакууме.

anon_666
()
Ответ на: комментарий от anon_666

> как повторить ту же ситуацию, не записывая ничего на hdd?

придумай как ограничить скорость с которой принимает /dev/null...

melkor217 ★★★★★
()
Ответ на: комментарий от ramon13666

При проведении чудо-теста загрузка возросла до предела и интерфейс стал тормозить.

ramon13666 ★★★
()
Ответ на: комментарий от melkor217

>придумай как ограничить скорость с которой принимает /dev/null...

Лезть в ядро? Навыков нет..

anon_666
()

>'dd if=/dev/zero of=./111 bs=1G'

все норм, только после записи 6Gb на меня стали материться, что места нет

MrHouse
()
Ответ на: комментарий от ramon13666

Хуже не стало. Торрент работает, фильм идет. Просто система стала менее отзывчивой. Тормозов не видно.

Zodd ★★★★★
()
Ответ на: комментарий от Ximen

Значит у меня баг есть и можно бежать собирать 2.6.24? (У меня 2.6.31)

Только вот запустится ли оно на моём нетбуке?

Yareg ★★★
()

А кто мне прояснит такую ситуацию

bash-4.0$ time dd if=/dev/zero of=~/111 bs=500M
dd: запись `/home/ramon/111': На устройстве кончилось место
2+0 записей считано
1+0 записей написано
 скопировано 992407552 байта (992 MB), 55,7667 c, 17,8 MB/c
Command exited with non-zero status 1
0.00user 6.58system 0:55.94elapsed 11%CPU (0avgtext+0avgdata 0maxresident)k
33256inputs+1938296outputs (431major+149525minor)pagefaults 0swaps
bash-4.0$ time dd if=/dev/zero of=~/111 bs=100M
dd: запись `/home/ramon/111': На устройстве кончилось место
10+0 записей считано
9+0 записей написано
 скопировано 993800192 байта (994 MB), 24,071 c, 41,3 MB/c
Command exited with non-zero status 1
0.00user 5.82system 0:24.08elapsed 24%CPU (0avgtext+0avgdata 0maxresident)k
400inputs+1941016outputs (2major+25887minor)pagefaults 0swaps
bash-4.0$ time dd if=/dev/zero of=~/111 bs=1G
dd: запись `/home/ramon/111': На устройстве кончилось место
1+0 записей считано
0+0 записей написано
 скопировано 993832960 байт (994 MB), 231,086 c, 4,3 MB/c
Command exited with non-zero status 1
0.00user 14.51system 3:51.45elapsed 6%CPU (0avgtext+0avgdata 0maxresident)k
1979712inputs+1941080outputs (31122major+473210minor)pagefaults 0swaps
Почему такая разница во времени записи?

ramon13666 ★★★
()
Ответ на: комментарий от Yareg

>'dd if=/dev/zero of=./111 bs=1G

Ахах бук умер в страшных муках. До сих пор тормозит гуй. А на десктопе все нормально, при этом еще и торренты отдает в полную силу.

flinks
()
Ответ на: комментарий от melkor217

> у винтов отклик большой, поэтому на них нерациональное планирование I/O лучше всего заметно.

Кстати, а никто не пробовал создать виртуальное устройство с искусственно большим откликом, чтобы проверить на нем? Чтобы выяснить в чем дело - в hdd или планировщике?

cvs-255 ★★★★★
()

Если баг где-то в районе 2.6.18, то можно поставить Debian Etch и проверить. И на нем же можно попробовать заюзать 2.6.17 и между ними, если что.

Pavval ★★★★★
()
Ответ на: комментарий от ramon13666

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

А то, что время настолько различается - это конечно печально.

melkor217 ★★★★★
()
Ответ на: комментарий от pekmop1024

>12309 - не баг, а фича.

Если ее пофиксят, я месяц буду пить только Арсенал Мицне.


+1. Забуду про Крушовице и волью Арсенал.

Pavval ★★★★★
()
Ответ на: комментарий от cvs-255

>for (i=0; i< 100000000; i++) ;

За такое в ядре - оторвут голову.

anon_666
()

С другим планировщиком I/O типа BFQ, эта проблема у многих уходит, либо менее заметна. Вообще, в новом ядре сейчас активно пилят планировщик CFQ, и судя по откликам помогает.

гугль: CFQ IOPS iosched

буквально нововведения из июльских патчей:


---------- slice_idle ----------

This specifies how long CFQ should idle for next request on certain cfq queues (for sequential workloads) and service trees (for random workloads) before queue is expired and CFQ selects next queue to dispatch from. By default slice_idle is a non zero value. That means by default we idle on queues/service trees. This can be very helpful on highly seeky media like single spindle SATA/SAS disks where we can cut down on overall number of seeks and see improved throughput.

Setting slice_idle to 0 will remove all the idling on queues/service tree level and one should see an overall improved throughput on faster storage devices like multiple SATA/SAS disks in hardware RAID configuration. The down side is that isolation provided from WRITES also goes down and notion of ioprio becomes weaker.

So depending on storage and workload, it might be a useful to set slice_idle=0.

In general I think for SATA/SAS disks and software RAID of SATA/SAS disks keeping slice_idle enabled should be useful. For any configurations where there are multiple spindles behind single LUN (Host based hardware RAID controller or for storage arrays), setting slice_idle=0 might end up in better throughput and acceptable latencies.

CFQ IOPS Mode for group scheduling

==================================

Basic CFQ design is to provide prio based time slices. Higher prio process gets bigger time slice and lower prio process gets smaller time slice.

Measuring time becomes harder if storage is fast and supports NCQ and it would be better to dispatch multiple requests from multiple cfq queues in request queue at a time. In such scenario, it is not possible to measure time consumed by single queue accurately.

What is possible though to measure number of requests dispatched from a single queue and also allow dispatch from multiple cfq at the same time. This effectively becomes the fairness in terms of IOPS (IO operations per second).

If one sets slice_idle=0 and if storage supports NCQ, CFQ internally switches to IOPS mode and starts providing fairness in terms of number of requests dispatched. Note that this mode switching takes effect only for group scheduling. For non cgroup users nothing should change. ...

maxxant
()
Ответ на: комментарий от Dudraug

Почти полностью повисшая система при проверке хэшей торрентов. Куда серьезнее?

Этот баг только на запись влияет, когда планировщик флашит грязные страницы одного процесса и забивает на всё остальное. С хэшами у тебя что-то другое.

true_admin ★★★★★
()
Ответ на: комментарий от cvs-255

Решается просто - монтирование NFS через WiFi.
Скорость передачи невысока - всего 2,6 Мбайт/сек.
Однако пока пара тестовых гигов не пролетит через интерфейс, система стоит колом.

whoami
()
Ответ на: комментарий от Yareg

> Когда делаешь 'dd if=/dev/zero of=./111 bs=1G' и всё зависает, то это оно и есть?

убунту 10.10, ядро 2.6.35, данная команда + transmission в раздаче + rhytmbox + компиляция в NetBeans - никаких тормозов, dd есть 5% процессорного времени, а нет - при наборе этого сообщения на середине слова «процессорного» была небольшая пауза( две буквы сразу напечатались ), но только один раз, т.е. эффект бага есть, но не некритичный

ahonimous
()
Ответ на: комментарий от true_admin

Этот баг только на запись влияет, когда планировщик флашит грязные страницы одного процесса и забивает на всё остальное. С хэшами у тебя что-то другое.

Это io_wait на сколько я знаю, ибо на bfq это пропадало. Ну а при записи творится просто полный ад

Dudraug ★★★★★
()
Ответ на: комментарий от Yareg

Аааа, я тебя ненавижу :) Решил проверить на нетбуке - система быстра ушла в своп, и уже 2-ю минуту не отвечает Оо

drakmail ★★★★
()
Ответ на: комментарий от ahonimous

> а нет - при наборе этого сообщения на середине слова «процессорного» была небольшая пауза( две буквы сразу напечатались )

о чем ты говоришь вообще?
12309 это когда при этом dd наступают такие тормоза, минуты на 2-5 минимум, что проще прибить все иксы по SAK, чем ждать пока оно отдуплится на ctrl+c либо закончит тормозить

r0mik
()
Ответ на: комментарий от r0mik

> о чем ты говоришь вообще?

12309 это когда при этом dd наступают такие тормоза, минуты на 2-5 минимум


о том что у меня этих тормозов нет ( это должен бы сказать К.О. - но я решил его не дожидаться )

ahonimous
()
Ответ на: комментарий от drakmail

при запуске этой же команды на десктопе внезапно стал подвисать Firefox. Всё остальное работало так же отзывчиво.

drakmail ★★★★
()
Ответ на: комментарий от Yareg

> dd if=/dev/zero of=./111 bs=1G

Попробовал - ничего не зависло.

На ^C программа копирования среагировала не сразу, а секунд через 13.

Оперативной памяти 4Гб и своп отключен - может в этом дело.

Хотя сегодня по какой-то причине получил эпические тормоза во flash-plugin. В чем причина так и не понял. Система как будто умирать собралась - хрустела винтом (и это при отсутствии свопа), между окнами не переключалась. Прибил флэш - ожила снова, хотя прибить его было совсем непросто.

sign
()
Ответ на: комментарий от drakmail

Безопаснее делать что0то вроде

dd if=/dev/zero of=./111 bs=1G&(sleep 10&&killall dd)

Yareg ★★★
()
Ответ на: комментарий от Yareg
> dd if=/dev/zero of=./111 bs=1G
^C2+0 records in
1+0 records out
1073741824 bytes transferred in 35.979377 secs (29843258 bytes/sec)

Во время работы dd начал подтормаживать/заикаться Exaile. Все остальные программы (Firefox, GNOME System Monitor) продолжали нормально работать. Скроллирование страниц в Firefox происходило всё также плавно, как всегда. На «^C» dd остановился не сразу, а через 5-7 секунд после нажатия комбинации клавиш, сама надпись комбинации появилась без задержки.

Это нормально?

iZEN ★★★★★
()
Ответ на: комментарий от ahonimous

нет конечно, у меня 58Мб/сек итоговая скорость

У меня с каждым новым запуском разгоняется:

> dd if=/dev/zero of=./111 bs=1G
^C2+0 records in
1+0 records out
1073741824 bytes transferred in 35.979377 secs (29843258 bytes/sec)
> dd if=/dev/zero of=./111 bs=1G
^C5+0 records in
4+0 records out
4294967296 bytes transferred in 74.140453 secs (57930146 bytes/sec)
> dd if=/dev/zero of=./111 bs=1G
^C12+0 records in
11+0 records out
11811160064 bytes transferred in 185.374401 secs (63715162 bytes/sec)
:)

iZEN ★★★★★
()
Ответ на: комментарий от sign

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

drakmail ★★★★
()
Ответ на: комментарий от drakmail

>когда нету свопа, ядро, если вся память закончилась, вроде, может создавать динамический файл со свопом на диске, перекидывая туда куски оперативы, из за чего всё начинает жуутко тормозить.
чтооо о_О?

megabaks ★★★★
()

тест с dd if=/dev/zero of=file bs=1048576

при выполнении операции с sync никаких тормозов нет. Стоит перемонтировать без sync - сразу тормоза.

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