Re: [Lug-bg] Проблем с 2xQuad-Core
- Subject: Re: [Lug-bg] Проблем с 2xQuad-Core
- From: Marian Marinov <mm@xxxxxxxx>
- Date: Wed, 21 Jan 2009 23:27:30 +0200
- Organization: Yuhu.biz
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 към даден
процесор.
Аз съм си правил експеримента с patched init който дефакто имплементира
taskset и видях, че това нещо ми пречи повече отколкото да оставя ядрото да
разпределя натоварването. Просто ядрото има доста повече информация за процеса
отколкото самия потребител.
Един от основните проблеми които аз съм забелязъл е алокирането на големи
количества памет.
Ядрото има една много приятна табличка в която знае кой процер на какво
разстоятние е от дадена памет. И кой процесор с коя памет работи в момента.
Точно базирано на тази табличка много често scheduler-а премества даден процес
от един не натоварен процесор към друг по-натоварен, но по-близо до паметта
която му трябва на процеса.
Дефакто за да се получи 100% балансирана система трябва софтуерът който ще
работи на нея да е направен така.
За който се интересува повече по темата моля да се поразтърси ис beowolf
пощенският списък там всяка година имаме по 1 такова обсъждане.
Не винаги вързването на даден софтуер или хардуер към точно определен процесор
носи плюсове. Понякога, особено направено без знанието какво се случва отдолу,
това може да донесе привидни бонуси в началото и в бъдеще всичко да се
сгромуляса без никаква очевидна причина :(
Мариян
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|