Re: [Lug-bg] Проблем с 2xQuad-Core
- Subject: Re: [Lug-bg] Проблем с 2xQuad-Core
- From: Nickola Kolev <nikky@xxxxxxx>
- Date: Thu, 22 Jan 2009 00:06:09 +0200
Пак здрасти,
Виж коментарите ми по-долу, моля.
On Wed, 21 Jan 2009 23:27:30 +0200
Marian Marinov <mm@xxxxxxxx> wrote:
> On Wednesday 21 January 2009 22:33:49 Nickola Kolev wrote:
> > Здрасти,
> >
> > On Wed, 21 Jan 2009 22:10:34 +0200
> >
> > Marian Marinov <mm@xxxxxxxx> wrote:
> > > Из usr/src/linux/Documentation/IRQ-affinity.txt
> > > /proc/irq/IRQ#/smp_affinity specifies which target CPUs are permitted
> > > for a given IRQ source. It's a bitmask of allowed CPUs. It's not allowed
> > > to turn off all CPUs, and if an IRQ controller does not support IRQ
> > > affinity then the value will not change from the default 0xffffffff.
> > >
> > > IRQ балансиране неможе да се прави в user space тъй като програмите от
> > > user space нямат собствено IRQ. Можеш да наредиш отделните хардуерни
> > > устройства на отделните процесори, но никога няма да си сигурен кой
> > > софтуер на кой процесор ще ти върви.
> > >
> > > Ако знаеш как се прави това със софтуера, ще съм много любопитен да
> > > науча, благодаря.
> >
> > Намесвам се малко не на време в разговора, за което се извинявам. До скоро
> > и аз мислех, че единствено прекъсванията на хардуерни устройства могат да
> > се "залепят" към определен процесор/ядро. Оказа се обаче, че не е така. За
> > любопитните:
> >
> > apt-get install schedutils
> > man 1 taskset
>
> Добре де,
> наясно ли сте, че за да има правилно разпределение на натоварването върху
> процесите трябва всички да бъдат старирани с някакво affinity към даден
> процесор.
Не, аз лично не съм наясно, признавам. Предполагам, че процесите се стартират
с "някакво affinity", което ги прикрепва към процесор/ядро 0. С taskset обаче
*можеш* да промениш това.
> Аз съм си правил експеримента с patched init който дефакто имплементира
> taskset и видях, че това нещо ми пречи повече отколкото да оставя ядрото да
> разпределя натоварването. Просто ядрото има доста повече информация за процеса
> отколкото самия потребител.
>
> Един от основните проблеми които аз съм забелязъл е алокирането на големи
> количества памет.
>
> Ядрото има една много приятна табличка в която знае кой процер на какво
> разстоятние е от дадена памет. И кой процесор с коя памет работи в момента.
> Точно базирано на тази табличка много често scheduler-а премества даден процес
> от един не натоварен процесор към друг по-натоварен, но по-близо до паметта
> която му трябва на процеса.
>
> Дефакто за да се получи 100% балансирана система трябва софтуерът който ще
> работи на нея да е направен така.
Безспорно е така, но аз не съм kernel hacker и не знам как точно стои въпроса.
Тъй като досега обикновено съм разчитал единствено на ядрото да си се оправя
само, не ми се е и налагало да се си играя с taskset.
> За който се интересува повече по темата моля да се поразтърси ис beowolf
> пощенският списък там всяка година имаме по 1 такова обсъждане.
>
> Не винаги вързването на даден софтуер или хардуер към точно определен процесор
> носи плюсове. Понякога, особено направено без знанието какво се случва отдолу,
> това може да донесе привидни бонуси в началото и в бъдеще всичко да се
> сгромуляса без никаква очевидна причина :(
Най-вероятно точно заради това употребата на taskset не е особено популярна.
Съмнявам се много типове, освен компанията около Джеф Гарзик, Инго Молнар и
други подобни нечовеци, да са наясно какво точно се случва там. С изключение
може би на Линус (да се свети името Му). :)
> Мариян
> _______________________________________________
> Lug-bg mailing list
> Lug-bg@xxxxxxxxxxxxxxxxxx
> http://linux-bulgaria.org/mailman/listinfo/lug-bg
--
Никола
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|