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