LINUX.ORG.RU

Линус: Ядра 2.2 серии быстрее 2.4 на PIII


0

0

Попытка Линуса разьяснить причины снижения производительности 2.4 ядер в сравнении с 2.2.
Линус считает что снижение производительности замеченное пользователями является результатом использования SSE2 оптимизации на PIII.
Также кратко коментируется проблема со scheduler.
(IMHO более слабый scheduler в 2.4 чем в 2.2 - наибольшее разочарование).

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

★★★★

Проверено:

Очень и очень огорчительно :(((

sem
()

Что такое scheduler?

anonymous
()

Хе-хе, а разве это новость? И не только на PIII. По-крайней мере на Duronе тоже. Что, неужели все поверили всей этой маркетинговой пропаганде и бросились ставить себе такое "клевое" новое стабильное ядро? И никто не проверил, наколько быстрее стал его компьютер? Я проверял: Duron 600->900, Chaintech 7AJA, 128 Mb PC133, GeForce MX2 32Mb XFree-4.0.2, reiserfs. dnetc работает в фоновом режиме Quake3 1024x768, предельная конфигурация 2.2.18 -- 67 fps 2.4.x -- 53 fps от версии драйвера не зависит Aviplay ведет себя просто странно: когда гоняешь benchmark или фильму в большом формате и с максимальным качеством на 2.4.x, то загрузка процессора где-то около 80%, причем она не прыгает около этого уровня, а просто замирает на нем, если верить xosview. Другие приложения, однако, могут загружать процессор на все 100. Компиляция ядра проходит за одно и тоже время (в пределах ошибки) при этом system time у 2.4.х на пару процентов выше. И ядро, скомпилированое для Athlonа ничуть не быстрее, а может и медленнее, чем для Сelerona. И сменил я 2.2.18 на 2.2.19. Вот и возникает вопрос - почему такие вещи до сих пор не стали общеизвестными фактами? Я еще не видел ни одного бенчмарка, в котором 2.4.х выглядело бы хоть немного быстрее. Их вообще не найти. Почему все эти доморощенные популяризаторы Linuxа продолжают пичкать народ баснями про "new cool features", и ни один из них не удосужился привести цифры? И самое главное, неужели Линус не в курсе что его новое ядро немного не супер? Или стесняется сказать? А какие еще проблемы он замалчивает? Вот что на самом деле огорчительно - что все самому надо проверять. И хоть даже с квакой это совсем просто, все равно ведь пришлось качать, компилировать, перекомпилировать - ну чтобы поверить в то что с новым крутым ядром он стал на 20% медленнее. Почему бы прямо не сказать - 2.4.x - это круто на S390, а так лучше пользуйтесь 2.2.x пока не приспичило? Кто-нибудь с сеткой, сравните сетевую производительность! (ну типа time dd if=/dev/zero | rsh *** dd of=/dev/null - и посмотреть, сколько системного времени уйдет) Спасибо --ayurchen

anonymous
()

О, господи, а зачем тут по умолчанию "ignore line breaks"?
вот ведь не посмотрел :(
или это эксплодер здешний?

anonymous
()

Line Breaks - это западло от MaxCom'a :)

Уже попросили его поменять или вообще убрать этот ненужный пункт, пока что никаких результатов.

anonymous
()

Очень много проблем есть с 2.4 и указанное не самое крутое :( Однако, не все так плохо - по крайней мере, если это известно, то работы по модификации / убыстрения будут продолжены. Потом (опять) многим придется перекомпилить ядро, ставить его, налагать патчи и т.д. не надоело?

anonymous
()

Но сеть под 2.4 работает точно быстрее

anonymous
()

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

anonymous
()

По поводу отcутствия бенчмарков. Мне попадались на глаза бенчмарки SAP R/3 2.2 и 2.4. Увы, найте сейчас не могу. 2.4 значительно быстрее, благодаря более быстрой VM. Это я к тому, что для разных задач важны разные места в ядре :)

anonymous
()

По моим тестам apache+php+postgresql на 2.4 дают большую производительность, чем 2.2 и лучше ведут себя при критической нагрузке. Это на 2xPentiumIII 700 (SMP), 1Gb памяти и SCSI. Хотя планировщик действительно обладает некоторыми странностями.

maxcom ★★★★★
()

one size fits all


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

ну, судя по анонсу 2.4.5-pre1, нифига они там не устранили.
То, что над этим работают - хорошо, но почему везде пишут "юзайте
новое классное ядро с офигенной поддержкой USB и 64Gb RAM", но
нигде я еще не видел предупреждения, что quake и aviplay будут
работать на 20% медленнее? Эти бенчмарки SAP делались случайно
не на quad Xeon с 8 гигами оперативки и гигабитной сеткой?
Очень поучительные бенчмарки. Кто-нибудь вообще видел этот SAP?
Может он только как бенчмарк и годится?

И че там за такие невнятные обьяснения про SSE2? Насколько я понимаю
это специфично только для PIII, а какже Duron? Или Линус не знает,
что есть такая проблема? Может это мое больное воображение?
Может кто-нибудь скажет мне, "все ты гонишь, у меня все стало работать только лучше". Что означает заявление Nvidia, что их последние драйвера оптимизированы для 2.4.x? Что 2.2.18 лучшее
ядро из серии 2.4? А что бы было если б поддержку Xfree-4.0
не перенесли из 2.3 в 2.2.18?

ну да ладно, не суть

anonymous
()

Я думаю что сия проблема является временной, как и многие другие идиотизмы в линухе. А учитывая что ядро 2.4 еще очень юное и очень сырое чему вы удивляетесь. Что-то улучшили, что-то ухудшили, так было всегда, скоро исправят. А сетка кстати действительно под ним шустрее(во всяком случае в отношении smb).

devil
()

> Кто-нибудь вообще видел этот SAP? Может он только как бенчмарк и годится?

Анонимусы, чего с них взять? :)))

> новым крутым ядром он стал на 20% медленнее
Жаль, что LinuxGames об этом не знает. У них почему-то быстрее.
Ссылки на бенчмарки пробегали тут. Главное то, что по сетевой производительности Linux на 2.4 затыкает BSD почти по всем параметрам.

> придется перекомпилить ядро, ставить его, налагать патчи
Не смешите. Этим займутся только слакварьщики, но им это доставляет удовольствие.

AffreuxChien
()

SSE2 появилось в P4. В PIII есть просто SSE. В Duron же нет и просто SSE, там есть 3d now.

anonymous
()

в принципе во всех ос есть такая тенденция - чем больше она развивается - тем тяжелее и увесистей становится. выход один - полная модуляризация.<br> а то что 2.4 будут медленее я ни капли не сомневался - они ведь новее, больше кода, больше ошибок. ну прям как у microsoft ;)

sergey_volosat
()

2.4 прежде всего "более правильное" ядро.
Сеть в 2.4 внушительно быстрее чем в 2.2 и что не менее важно - более правильно. Наконецто люди решили прочитать Стивенса.
Scaling в 2.4 не идет ни в какое сравнение с 2.2. Солидная часть тупых лимитов убраны. Именно по этому Linux 2.4 будет первой OS Itanium процессора, SGI говорит что на той тысяче эксперементальных Itanium розданных производителям работает исключительно Linux.

Слабый scheduler (планировшик) особо отмечен пользователями десктопов. На моей практике это выражается в замирании приложений на секунды - доли секунды которого на 2.2 при тех же приложениях не было. pty тоже раздаются медленней. Те изменения о которых говорит Linux в 2.4.4 - ИМХО просто очередной хак который небезопасен как выяснилось для приложений, поэтому дальше 2.4.4 он не пойдет; будет хорошо если его додумают в 2.5.

Tima_ ★★★★
() автор топика

Черт его знает. Мне показалось что новое ядро работает шустрее прежнего. Что сказать: будем посмотреть :-))

anonymous
()

2sergey_volosat: хе-хе... с такими идеями ты так и до концепции микроядра дойдешь...:) И это правильно...:)

Irsi
()

2AffreuxChien: Насчет того, что Линух быстрее БСД - фигня все это. Довольно давно, когда только вышел 2.4.0 (или 2.4.1) пробегала ссылка на бенчмарки именно сетевых приложений. Линух выиграл (в пределах погрешности) только при тестах сендмэйла, а в остальных - ему до фрюхи расти и расти (разница порядка 50%). Так что думайте господа... А насчет того, что только слакварщики ядро перекомпиляют - так это, батенька, неверно. У меня Spring2001 - пришлось перекомпилять. Что бы APM в консоли появился. Вот так, батенька... Regardы, Botsvein

Botsvein
()

2Irsi: естественно микроядра - это рулез. тут я с тобой согласен. операционные системы нового поколения - типа hurd, qnx могут спокойно вытеснить любые сейчас существующие, т.к. монолитные ядра свое уже доживают. ну а то что мелкософт не сможет сделать микроядерный мастдай это я уверен. ин придется переписывать весь код сначала - а они это сделать не смогут. у них просто на данный момент нет спецов которые это смогут сделать. хотя спецов они таки смогут любых купить. но врядле они это будут делать - больно уж тупые у них менеджеры (естественно не все, но 90%). а билли гейтс - вообще торгаш галимый.

sergey_volosat
()

> пришлось перекомпилять. Что бы
Но ведь не пришлось "накладывать"?
Если человек не любит делать лишнего, то сделает make xconfig, сделает rpm -ba <.spec> для custom -ядра.
> (разница порядка 50%)
Наоборот, BSD опередила только по тупому "бери больше-кидай-дальше".

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

> естественно микроядра - это рулез Это совсем не естественно! Хватит уже гнать пургу и сравнивать монолитные против микроядерных. Это _принципиально_ разные системы и их адекватная оценка невозможна. На _существующих_ приложениях Linux намного эффективнее QNX RtP, а про QNX 4.xx я уже и не говорю. Я уже объяснял IRSI, который, как мне показалось, меня понял, что эффективность микроядерных ОС будет заметна _только_на_специально_написанных_ приложениях, использующих возможности их. Это связано с тем, что стандартный IPC (межпроцессное взаимодействие) унаследованное от System V и вошедшее в POSIX там реализовано экстенсивно. Его производительость может оказываться в разы медленнее, чем Linux. В QNX RtP вместо обычных FIFO, pipes и сигналов нужно пользовать сообщения из POSIX для реального времени и т. п., Кстати в линухе эта система работает хуже, чем в RtP. Так что не надо казаться особо умными. И монолитные ядра имеют свои преимущества.

rivares
()

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

Какая проблемма? Эта:
"2.4.4 will give noticeably better numbers for fork and fork+exec"?
Дык это только для программ, которые fork постоянно делают. А тут речь шла совсем о других программах. Так что проблемма совсем не решена. Точнее она "sadly necessary"! :)

"Но сеть под 2.4 работает точно быстрее"

Да, должна бы быть. Они же обещали весь TCP/IP стек переписать. Но кто нибудь может протестировать и цифирки представить?
У меня просто возможности нет.

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

> когда только вышел 2.4.0 (или 2.4.1)
> Линух выиграл (в пределах погрешности) только при тестах сендмэйла,
> а в остальных - ему до фрюхи расти и расти (разница порядка 50%).
по идее сравнивать сейчас надо только с 2.4.4 , а не с 2.4.x (x<4)
Changelog: 2.4.4-pre3 : - David Miller: network zerocopy.

szh ★★★★
()

2sergey_volosat: вот про микроядерность и мелкософт вопрос особый... Здесь спорить не охота - сначала сходи на http://www.sysinternals.com/ почитай... Много интересного узнаешь... нтя изначально была микроядерной вообще-то... Потом микрософт модифицировало и эээ... ну все мы в курсе какое у этой фирмы эээ... особое понятие приставки "микро"...:)
А вот на счет QNX - оставь. Весьма специфичиская и узскоспециализированная ОС. Нет, она мне нравится по-прежнему, но всеобщей и полной победы я ей не предрекаю и не предрекал никогда... Я еще с дубу не рухнул...:) К слову имхо для десктопов гораздо более перспективны BeOS-like OS...

2rivares: тоже вопрос спорный, но в общем случае ты прав. Это имхо само собой разумеется - новый подход к построянию ядра требует нового подхода к написанию программ. Хотя наверно можно как-то извратиться... Не знаю, имхо об этом лучше всего спросить например у разработчиков дарвина или мклинукса... Имхо у первых лучше...:)

Irsi
()

zsh: так вот почему она иногда виснет при передаче по сети фалов определнного размера!!! они туда этот фигов патч прибахали (не идея то классная, но реализовать намана не смогли)

chuchelo
()

1) в 2.4 более правильный MM (к сожалению, это пока касается только kernelspace memory, в основном buffercache и pagecache. но даже это - великолепно!) 2) в 2.4.4 засунули zerocopy, что тоже есть прекрасно 3) _значительно_ улучшено scalability на smp, так как kernel постепенно движется в сторону полного отказа от big kernel lock 4) гигантское кол-во менее заметных улучшений то, что что-то работает не стабильно, или в каких-то ситуациях 2.4 проигрывает, не означает что оно плохое до дизайну. в большинстве таких ситуаций просто требуется доводка до ума. если вам нужно хорошее ядро, то постите результаты в lkml, готовьте и шлите патче, а не сидите как последнее @#$%^&*, доказывая что оно sux...

anonymous
()

кто-нить может объяснить как можно на PIII втиснуть SSE2 оптимизацию? или я что-то не так понял? насколько я помню PIII это SSE набор команд, а PIV - SSE2, причем если третий пень увидит команду из SSE2 то он сильно расстроится (выразив при этом исключение "неизвестная команда")

hoopoe ★★
()

Залез, прочитал.
Там сказано, что для обеспечения полной функциональности SSE2 комманд в ядре 2.4.x пришлось уменьшить стек сигналов до 700 байт (что на 200 байт меньше, чем было..) Без этого никак.
Игорь.

anonymous
()

Интересно, кто-нить статью читал? :)))
Цитата:
"The signal handling one is because 2.4.x will save off the full SSE2
state, which means that the signal stack is almost 700 bytes, as
compared to <200 before. This is sadly necessary to be able to take
advantage of the SSE2 instructions ...."
Тенденция обсуждать новости не читая их :)))

evil
()

> уменьшить стек сигналов до 700 байт (что на 200 байт меньше, чем было..:-}
У человека явно проблемы с англисским ...
Там же англисским по белому написано :
... signal stack почти 700 байт в сравнении с <200 байт прежде ...

anonymous
()

>... signal stack почти 700 байт в сравнении с <200 байт прежде ...
^
< -я думаю это меньше.
as compared < XXX before можно перевести как : " что в сравнении на 200 меньше чем было.
Я настаиваю.
Игорь.

anonymous
()

Igor' , ti ne prav! "bilo <200 , stalo 700" , I insist! :)

szh ★★★★
()

Да это вообще тупой спор...Linux 2.2.x - это проверенное временем ядро и скорей всего более стабильное и возможно быстрое чем 2.4.x, но при этом серия 2.4 отличается более правильным построением ядра и новыми возможностями. Я так же почти уверен что 2.4 быстрее работает с TCP/IP, чем 2.2... Скоро пройдет время и ядро 2.4 догонит и перегонит - 2.2, это вопрос времени, а не ядра. Тем более даже сейчас рекомендуют все таки ставить ядро из 2.2 серии, потому как 2.4 еще все же сырое. Насчет микроядерной архитектуры: естественно она по своей сути лучше монолитного ядра, но не сегодня и не здесь, для QNX возможно и есть преимущества, но вот для Hurd они пока мало заметны - лучше всего на Darvin смотреть, у него это лучше всех получилось... Кстати, я согласен с Irsi, Win NT действительно была и задумывалась как микроядерная ОС, но познее стала такой - какой ее сейчас все видят...Хотя и сейас это не 100% завязанная на монолитном ядре ОС. Если будет надо Microsoft сделает подобие микроядерной архитектуры ОС, но этого пока ни кому не надо... Только вот что я вообще не понял: КАКАЯ(ОЙ) SSE2 НА PIII?! Объясните, обоснуйте если можете... -Direct

anonymous
()

А никакая. SSE2 появилась, как известно, только в Pentium 4. Линус похоже имел ввиду просто SSE. Описка, не мог же он так ошибиться ;) В интервью говорится, что снижения производительности нет в процессорах без SSE - Pentium/Pentium II. Кстати а состояния 3DNow! регистров ядро сохраняет?

Eugeny_Balakhonov ★★
()

IMHO, Он сказал, что стек увеличили с 200 до 700 байт для того, чтобы "воспользоваться ВСЕМИ преимуществами SSE2"... Соответственно, на процессорах без SSE2 стек такого размера мало того, что не нужен, так ещё и мешает...
Видимо, всё, что Линусу нужно сделать - это определение размера стека в зависимости от архитектуры процессора (типа для <=PIII,K7 - 200 байт, для PIV - 700 байт). Опять-же IMHO - патчик элементарный и в 2.4.5, скорее всего, всё будет исправлено. Либо кто кул-хуцкер ядра может попробовать сам пропатчить и всё исправится.

По поводу ветки 2.4.х уже много раз обсуждали... Вспомните историю! Вспомните переход с 2.0.36 (?) на 2.2.х - тоже все ругали, плевались и вообще орали "SUXXX похлещё маздая!". А теперь, спустя два года, (на самом деле раньше, 2.2.10 - уже было вполне...) ядро 2.2.19 - признанный лидер. IMHO, то же самое будет с 2.4.х. Причём, не в 2.4.10, а в 2.4.7 уже будет всё нормально. Просто потому, что Кокс мешаться не будет! ;-) (Все знают, как 2.2.0 появилось? ;-) )

R00T
()

to Игорь:
"The signal handling one is because 2.4.x will save off the full SSE2
state, which means that the signal stack is almost 700 bytes, as
compared to <200 before. This is sadly necessary to be able to take
advantage of the SSE2 instructions ...."

В вольном переводе :)
"Т.к. управление сигналами в 2.4.х сохраняет полное состояние SSE2, размер сигнального стека составляет почти 700 байт в сравнении с менее чем 200 байт ранее..."

Ты, конечно, можешь продолжать настаивать, но... ты не прав :)

С уважением - Алекс Марти.

anonymous
()

Ну не прав, ну и фиг с ним...
Игорь.

anonymous
()

2McGray: Да там темное что-то было...
Кароче, есть 2 варианта:
В Новый Год 1999 Линус укатил куда-то (уж не Эльбрусу E2K ли ядро писать, чтобы Linux работал на нём???) А в это время Кокс вылез из своей норы и начал вопить "Если мы сейчас 2.2.0-е не выпустим, то не выйдет оне никогда!!! Линус не даст!!!". Вот так и появилось 2.2.0-е. Потом, когда Линус вернулся, его просто поставили перед фактом... Вони было НЕМЕРЯННО... ;-) Линус даже хотел объявить "2.2.0" - незаконнорожденным... ;-) Его как-то Кокс уломал, в результате чего Линус немножко поуспокоился. Тем не менее, 2.2.х-ветку Линус не любит, в результате чего Линус в основном занимается 2.4.х, а Кокс - 2.2.х.
А второй вариант - всё тоже самое, но Линус никуда не уезжал, только его все девелоперы ядра уговорили...

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