cpu affinity for linux

Igor Sysoev is at rambler-co.ru
Tue Nov 8 20:00:57 MSK 2005


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;

А 
worker_processes      5; worker_cpu_affinity   01 10 11 11 11;
получающаяся при первом варианте из
worker_processes      5; worker_cpu_affinity   01 10;
выглядит просто ошибкой конфигурации.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list