cpu affinity for linux

Andrei Nigmatulin anight at monamour.ru
Tue Nov 8 20:19:06 MSK 2005


On Tuesday 08 November 2005 20:00, Igor Sysoev wrote:
> On Tue, 8 Nov 2005, KPOXA wrote:
> > Igor Sysoev wrote:
> >> On Tue, 8 Nov 2005, Andrei Nigmatulin wrote:
> >>> On Tuesday 08 November 2005 14:36, Igor Sysoev wrote:
> >>>> On Tue, 8 Nov 2005, Andrei Nigmatulin wrote:
> >>>>> Планируете ли Вы добавить в nginx поддержку cpu affinity ?
> >>>>>
> >>>>> http://www.kernel.org/pub/linux/kernel/people/rml/cpu-affinity/README
> >>>>>-cpu -affinity
> >>>>>
> >>>>> Я имею ввиду конфигурационную директиву для низкоуровнего управления
> >>>>> - сколько воркеров и на каких cpu должны исполняться.
> >>>>
> >>>> Это было бы интересно. Вопрос - как это описать диреткивами.
> >>>
> >>> Ну например "worker_cpu_affinity_masks" и далее перечисление через
> >>> пробел всех
> >>> affinity masks, по одной для каждого worker'а. Насколько я понимаю,
> >>> максимально просто для реализации и максимально гибко для
> >>> пользователей.
> >>
> >> Синтаксис подходящий. Маски, скорее всего, лучше задавать в бинарном
> >> виде для нагладности:
> >>
> >> worker_processes      2;
> >> worker_cpu_affinity   0101  1010;
> >>
> >> Первый воркер привязан к 0 и 2, второй - к 1 и 3.
> >> При несовпадении количества процессов и масок выдавать предупреждение
> >> и использовать 11111111...1111 для оставшихся процессов.
> >
> > А если прописать
> > worker_processes      17;
> > worker_cpu_affinity   1000;
> >
> > То все 17 должны быть на 0 проце.
>
> Появились разночтения. Во-первых, нужно решить, как задавать маску -
> как little endian, или как big endian.

Имхо, такие проблемы есть только у процессоров. У людей принято старшие 
разряды записывать первыми.

> Во-вторых, нужно решить, что 
> делать при несовпадении числа процессов и масок. Вариант повторять
> маску для оставшихся процессов выглядит логичнее, чем моё первое
> предложение, так как
> worker_processes      5; worker_cpu_affinity   10;
> выглядит логичной заменой
> worker_processes      5; worker_cpu_affinity   10 10 10 10 10;

Да, вроде так логичнее.


-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D

No Microsoft products were used in any way
for the creation of this message. If you are
using a Microsoft product to view it, BEWARE!
I'm not responsible for any harm you might
encounter as a result.


More information about the nginx-ru mailing list