ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cpu affinity for linux



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




 




Copyright © Lexa Software, 1996-2009.