200 строк патча, творящие чудеса

Важные темы, объявления

200 строк патча, творящие чудеса

Сообщение bugx » 28 ноя 2010 23:27

В последнее время ведется работа по улучшению производительности Linux на десктопах. Недавно произошли значительные изменения и впереди еще много новых. Это разительно улучшает ощущения от использования Linux под сильной нагрузкой на процессор и память. К счастью,не перестают появляться замечательные изменения. Представляем вам новый патч, который ещё не включен в основной код, но уже прошёл несколько проверок за последние недели. Объем патча небольшой — всего около 200 строк. То, что он делает — самое настоящее чудо.

Патч, о котором идёт речь, автоматически организует задачи в группы с учётом TTY для улучшения ситуации с отзывчивостью под нагрузкой. Майк Гэлбрейт (Mike Galbraith) написал уже третью версию патча после того, как Линус Торвальдс вдохновил его на эту идею. Патч добавляет всего 224 строки и удаляет 9, поэтому затрагивается всего 233 строки кода.

Тесты, сделаные Майком, показывают уменьшение максимальной задержки в 10 раз и средней задержки в режиме десктопа в 60 раз. Линус Торвальдс уже восхваляет (по email) этот чудо-патч:

Удивительно (в хорошем смысле), каким маленьким, ненавязчивым и симпатичным он оказался в итоге.


Я так же очень рад тому, что он делает с отзывчивостью. Честно говоря, мой "тестовый стенд" весьма тривиальный (чтение почты в браузере, немного прокрутки... во время одновременной сборки ядра в 64 потока), но он весьма для меня актуальный. И показывает огромное улучшение.


Оно влияет на вещи типа прокрутки, но я заметил, что даже страницы стали загружаться намного быстрее. Может быть, это и не должно казаться сюрпризом, просто я всегда считал, что это зависит от производительности сети. Но, однозначно, нагрузка на процессор присутствует в любом случае при отрисовке страницы и, если у вас работает 50+ процессов одновременно, система будет тормозить во время загрузки, и, скорее всего, не сможет обрабатывать все эти HTTP-запросы вовремя.


Поэтому я и считаю, что это одно из «настоящих» улучшений. Отличная работа! Управление группами наконец-то переходит из разряда «полезная фишка для серверов под особой нагрузкой» в «важнейшая особенность».


// Линус


Первоначально об этом патче нам сообщил сегодня утром читатель. «Посмотрите, пожалуйста, на это, мой компьютер больше никогда не станет прежним, этот патч очень сильно повышает эффективность работы системы (все очень гладкое, плавный скроллинг и т.п.)... Он так же хорош, как патчи Кона Коливаса (Con Kolivas).»

Этот патч показал отличные результаты не только у Линуса, Андре Годдарда (читатель Phoronix, который сообщил о последней версии), и других тестеров, у нас он тоже творит чудеса. Хотя я и сильно занят разработкой OpenBenchmarking.org и «Iveland», я все же нашел несколько минут, чтобы записать два видео, которые демонстрируют все преимущества патча «sched: automated per tty task groups». Результаты очень впечатляющие.

Этот патч заработал на абсолютном большинстве тестируемых мной систем, от нетбуков с Intel Atom до систем с quad-core AMD Phenom. Для записи этих двух видеороликов я использовал систему с Ubuntu 10.10(x86_64) с процессором Intel Core i7 970 «Gulftown», который имеет шесть физических ядер плюс Hyper Threading, что обеспечивает ОС Linux двенадцатью потоками.

Ядро собиралось с исходников Linux 2.6.37-rc2 из ветки Линуса, версии 15 ноября. Единственное изменение, которое мы делали - это внесли патчи планировщика Майка Гэлбрейта. Этот патч позволяет автоматизированную групировку задач для каждого терминала, выполнять динамически в ядре, в режиме реального времени, записывая 0 или 1 в /proc/sys/kernel/sched_autogroup_enabled или добавив параметр «noautogroup» при загрузке ядра. Единственная разница между двумя записанными видео - это измененное значение sched_autogroup_enabled.

Оба видео показывают работу GNOME на Core i7 970 во время проигрывания 1080p видео в формате Ogg, запущеного glxgears, двух окон Firefox с открытыми сайтами Phoronix и Phoronix Suite, двумя терминалами, системным монитором GNOME и файловым менеджером Nautilus. Эти видео показывают как разные приложения реагируют на повышение нагрузки на систему, которая обеспечивается сборкой ядра Linux на 64 параллельных потоках, полностью загружая процессор.

Итак, давайте взглянем на видео!

Ниже представлено видео работаюшего на последнем ядре из git. Обсуждаемый патч применён, но планировщик autogroup отключен через интерфейс sysfs.

http://www.youtube.com/watch?v=uk70SeGA7pg

Как вы можете заметить, ощущения от компиляции ядра на стольких параллельных потоках весьма мучительно. И, хотя пример 1080p видео ни разу не остановился, ничего не изменилось по сравнению с текущим ядром 2.6.37. Также, наблюдалось лёгкое залипание в glxgears и проблемы с отзывчивостью в тут и там. Это всё несмотря на все включеные в состав 2.6.37 улучшения. Если записывать видео с предыдущей версии, всё будет намного ужасней! Теперь давайте посмотрим, что случится, если включить новый планировщик.

http://www.youtube.com/watch?v=prxInRdaNfc

Разница очевидна также, как между днем и ночью. Видео в 1080p практически всё время воспроизводится плавно, и также большую часть времени, пока компилируется ядро. Поведение glxgears заметно улучшилось, а движения окошек и отзывчивость рабочего стола стала намного приятней.
Во время компиляции ядра в 128 потоков или других тяжёлых задачах результат ещё более показательный, хотя и не так хорош для демонстрации на видео. Первое видео, которые мы сделали для состояния «до патча», больше походило на фотографию.

Патч действительно творит чудеса, улучшая отзывчивость и интерактивность на десктопах. Этот патч делает ощущения от прогулки по интернету намного приятнее и, самое главное, удивляет даже Линуса Торвальдса. Окно для включения изменений в 2.6.37 уже закрыто, поэтому это будет отличным добавлением в выпуск 2.6.38 наряду с ожидающей своей очереди поддержкой Reiser4, открытых дров для VIA Graphics / Radeon HD 6000 Серий DRM.

Патч: http://marc.info/?l=linux-kernel&m=128978361700898&w=2

Оригинал: http://www.phoronix.com/scan.php?page=a ... ideo&num=1

Так же поклоникам бубунту http://ubuntual.com/ubuntu-%D0%BF%D0%B0 ... %BE%D0%BA/
root@vpupkin:~$ cat /dev/ass > /dev/head
Аватара пользователя
bugx

 
Сообщения: 34
Зарегистрирован: 16 июл 2010 10:56

Re: 200 строк патча, творящие чудеса

Сообщение bugx » 28 ноя 2010 23:33

тока что поставил, и т.к. у меня система не особо то и мощная, значительный прирост производительности реально ощущается :-): :ya_hoo_oo:
root@vpupkin:~$ cat /dev/ass > /dev/head
Аватара пользователя
bugx

 
Сообщения: 34
Зарегистрирован: 16 июл 2010 10:56

Re: 200 строк патча, творящие чудеса

Сообщение tensor » 26 дек 2010 05:17

Не знаю как с производительностью, но глюков стало реально больше. Пропала возможность распечатывать pdf документы :( + нарушилось нормальное исполнение некоторых скриптов связанных с perl. Не ставьте этот патч. Мизерный прирост производительности не стоит такого снижения стабильности.
Изображение
Just do it perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see' Just for fun :)
Ось должна быть в кайф!
Аватара пользователя
tensor

 
Сообщения: 208
Зарегистрирован: 10 янв 2010 16:07
Откуда: Gomel

Re: 200 строк патча, творящие чудеса

Сообщение bugx » 26 дек 2010 17:40

Печать pdf тока что опробовал, все отлично печатает. На моей памяти ставил пару скриптов, проблем не наблюдалось.
root@vpupkin:~$ cat /dev/ass > /dev/head
Аватара пользователя
bugx

 
Сообщения: 34
Зарегистрирован: 16 июл 2010 10:56

Re: 200 строк патча, творящие чудеса

Сообщение kos32 » 07 янв 2011 15:20

планируется ли внести этот патч в ядро? когда можно его ждать в ядре?
Аватара пользователя
kos32

 
Сообщения: 36
Зарегистрирован: 12 мар 2010 21:33

Re: 200 строк патча, творящие чудеса

Сообщение Zendar » 12 янв 2011 10:42

планируется ли внести этот патч в ядро? когда можно его ждать в ядре?

2.6.38
Аватара пользователя
Zendar

 
Сообщения: 276
Зарегистрирован: 10 янв 2010 15:05
Откуда: Гомель


Вернуться в Важно

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron