LINUX.ORG.RU

Для ядра Linux написан патч, многократно улучшающий отзывчивость системы

 


0

5

Майк Галбрейт (Mike Galbraith) написал патч, многократно улучшающий отзывчивость системы при использовании многопоточных фоновых приложений, таких как, например, компиляции. Линус Торвальдс проверил и высоко оценил данную работу. К примеру, он запустил сборку — 'make -j64' — и при этом система оставалась отзывчивой, а прокрутка в веб-браузере — плавной. Торвальдс прокомментировал патч так: «that's a killer feature».

>>> Подробности

★★★★★

Проверено: svu ()

Ответ на: комментарий от grim

> Что-ж он не вернулся, когда КДЕ стало тортом?

То-то и оно.


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

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

>PORTAGE_NICENESS =19

А как это поможет ручному make на ядре?)

У меня такое чувство, что при dd обслуживается только этот процесс и ядро кладет на остальные.

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

это ты типа предлагаешь вручную постоянно раскидывать процессы по группам? думаешь, всем настолько делать нехер?

А подумать?

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

кстати про ядро
пробовал -j256 - сс1 процессов только 4-5
WTF?

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

>И? Этот подход работает, что не так? 5 строк на баше надо запихивать в ядро только потому, что их никто не удосужился по дефолту в дистр впихнуть?

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

именно поэтому оное не решение, а костылик.

Патч войдёт только в 38-е ядро. Сделать из идеи решение можно гораздо быстрее. Если кому-то будет надо. Или в ядре должно быть всё, что ещё не успели написать в user-space?

ну так сделайте решение и махайте шашками. А то только одно и слышно. можно сделать, легко можно сделать.

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

«Проверь тест с dd - у меня таки все подвисает. »

от этого рецепт проще

echo 10 > /proc/sys/vm/vfs_cache_pressure
echo 4096 > /sys/block/sda/queue/nr_requests
echo 4096 > /sys/block/sda/queue/read_ahead_kb
echo 100 > /proc/sys/vm/swappiness
echo 0 > /proc/sys/vm/dirty_ratio
echo 0 > /proc/sys/vm/dirty_background_ratio

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

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

Приехали. Вам религия запрещает монтировать фс? /proc и /sys у вас тоже не монтируется? .bashrc и так отрабатывается на старте каждого терминала.

именно поэтому оное не решение, а костылик.

Внесём ясность: 5 строк на баше - костыль, а идентичный ему по функциональности патч в ядре - нормально. я правильно понял?

ну так сделайте решение и махайте шашками. А то только одно и слышно. можно сделать, легко можно сделать.

Елки. Да это ещё Леннарт в lkmlовом треде сделал, ну сколько можно?

Ximen ★★★★ ()

то то я думаю zen перестал собираться - ща на cfs переключусь погляжу на сие чудо )

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

реально чудес не бывает - 12309 почти пропал, компилится и браузится без заметных запинок ...но попугаи в том же unigine просели с 1000 до 880 при проигрывании видео) вобщем норм работает пока так поживу

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

Не помогает.

echo 4096 > /sys/block/sda/queue/nr_requests

echo 4096 > /sys/block/sda/queue/read_ahead_kb



А вот за это надо бить и желательно ногами.

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

> Проверь тест с dd - у меня таки все подвисает.

Запустил dd if=/dev/zero of=/dev/null и результат меня просто поразил. я такого не ждал! С сабжем повис сначала фф с ютубом, потом вообще всё, я даже окно терминала закрыть не мог. Пришлось убивать иксы через sysrq. Загрузил 36 ядро c ck+bfq - всё отлично, с дд можно работать ,смотреть флешки, эффекты компиза воркают номально. Я на столько удивился, что всё повисло, что повторил ещё раз с сабжевым патчиком - снова всё повисло.

Lennier ★★★★ ()

Собрал 2.6.37-rc2 с этим патчем. При запущенном торренте большие потери пакетов, интернет жутко тормозит. Торрент только раздает.

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

ну этот патч привязан к терминалу
дык вот - у тебя безликий демон чтоль?
иначе даже не представляю как такое возможно

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

и да - сабж не нужен!
BFS+BFQ+

desktop megabaks # cat scripts/renice/renice
#!/bin/bash
while [ 'pidof X' != '0' ]
do
sleep 2 && renice -n -19 -u megabaks &>/dev/null
sleep 2 && renice -n -19 `pidof X` &>/dev/null
sleep 2 &&ionice -n 0 -t -c 1 -p `pgrep -u megabaks` 0 &>/dev/null
sleep 2 &&ionice -n 7 -t -c 3 -p `pgrep -u root` && ionice -n 0 -t -c 1 -p `pidof X`  0 &>/dev/null
done

for i in `pidof kswapd0`; do renice -n 19 $i; done
desktop megabaks # 
рулят и педалят

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

>у тебя безликий демон чтоль?

Битторрент клиент то? Да, deluged.

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

а сабж даёт низкий приоритет тому, кто запущен из терминала - может в этом дело?

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

Ну так тем более странно почему из-за низкого приоритета битторрент клиента тормозит интернет в браузерах (долгое ожидание ответа, медленная загрузка страниц) и ping показывает потери пакетов 30%-80%.

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

>Запустил dd if=/dev/zero of=/dev/null и результат меня просто поразил. я такого не ждал! С сабжем повис сначала фф с ютубом, потом вообще всё, я даже окно терминала закрыть не мог.

+1. Причем отключение sched_autogroup через /proc это убирает. Вывод: патч сырой.

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

>dd if=/dev/zero of=/dev/null
так! стоп!
вот прям ща оно делаецо - и нифига - ну кушает проц
да - недопатча нет - у меня своё решение :3

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

>да - недопатча нет - у меня своё решение :3

давай, не темни

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

>вот прям ща оно делаецо - и нифига - ну кушает проц

на хард пиши, а не в /dev/null :)

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

сейчас у меня хоть куда писать
мне вот интересно - как могло что-то повиснуть при забивании /dev/null

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

И ты предлагаешь всем домохозяйкам прописывать этот костыль? все должно работать изкаропки.

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

И ты предлагаешь всем домохозяйкам прописывать этот костыль? все должно работать изкаропки.

Положить костыль в коробку и делов :)

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

Не пойму я вас. Вам нужна вся эта логика до окончания загрузки системы? Если нет - чем сложнее включить в дистрибутив то самое монтирование файловой системы и пару строк в /etc/skel/.bashrc, чем новое ядро? Тем более, что userspace-решение всё равно понадобится, так как далеко не всё запускается с tty, и завернуть какой-нибудь Эклипс в свою группу - дело святое, как и писалку дисков, к примеру

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

>сейчас у меня хоть куда писать

а у меня все равно висит при записи на хард)
От 12309 это нифига не спасает.

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

а у меня все равно висит при записи на хард) От 12309 это нифига не спасает.

А у меня, оказывается, 12309 поломался и больше не работает, а я и не заметил... :(

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

>cgroups, новый патч, -ck и твой скрипт)
ты перемудрил :3
т.к. и autocgroup и скрипт с cgroups и мой скрипт по-разному назначают приоритеты

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

и да -ck без bfs?
т.к. он с патчем autogroup не дружит ниразу

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

>т.к. и autocgroup и скрипт с cgroups и мой скрипт по-разному назначают приоритеты
да, и группы у них у всех разные - по-разным принципам процессы объединяются
короче я хз что у тебя получилось %)

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

>предлагаешь всем домохозяйкам прописывать этот костыль? все должно работать изкаропки.
во-первых я ничего не предлагаю :)
тем более домохозяйкам
во-вторых: ты не поверишь! - домохозяйке няшка привязанная к терминалу даром не нать
ну а ежели шаришь в сях - вперёд править sched.*, ioprio.* и т.д.*
я жду патча :3

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

>ты перемудрил

0. Просто чистая система .37-rc2
1. .37-rc2 + cgroup + скрипт от red hat
2. .37-rc2 + autocgroup
3. .37-rc2 + твой скрипт
4. .36-zen0 + твой скрипт
5. .36-zen0 + cgroup + скрипт от red hat

Между 1-5 никакой особой разницы. Загрузка cpu одним процессом не мешает остальным. Но вот запись на хард через dd сильно все тормозит.

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

Все перепробовал. Сейчас no port-IO delay, но разницы никакой.

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

так - лучше расскажи что за железо - есть ли своп
скока рамы - как тестишь
какие планировщики
и т.д.
просто интересно даже что за на*** )

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

Ноут Y550P, чипсет HM55
8 гигов оперы, своп отрублен.

BFS+BFQ.

Тестируется dd if=/dev/zero of=test bs=1G с разными nice и ionice.

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

>мне вот интересно - как могло что-то повиснуть при забивании /dev/null

Затрудняюсь сказать , но факт - висло. В общем моё имхо такое, что Коливас по прежнему нужен и ck+bfq лучшее ядро для десктопа. Я ещё добавляю tuxonice и ureadahead. В общем сабжем пользоваться не буду, по крайней мере сейчас.

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

>>>2.6.36-zen1

где взял?


из git, где ж еще.


Это? git://zen-kernel.org/kernel/zen-stable.git

Так оно ещё не допилено же, не?

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

stable - допилено)
а вот разработку =git они забросили((

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

>stable - допилено)

А почему тогда нет информации на главной? Вообще там в логах гита последние изменения в 2.6.36 18 часов назад.

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