Intereting Posts
Почему bash добавляет одинарные кавычки к неуказанным неудачным расширениям имени пути в команде перед ее выполнением? Почему pstack запускает gdb (и как это предотвратить)? Есть ли что-нибудь в unix crontab, чтобы определить, что это должно быть выполнено в стандартное время PST / CST? Трудный рекурсивный псевдоним bash? установить при первом использовании ошибка локали. не может открыть файл определения локали `fa_IR ' Выберите ряд файлов после их сортировки Какой процесс имеет PID 0? Проблема с awk-совпадением Где открываются дескрипторы файлов, когда они умирают? Как настроить команду времени для измерения прошедшего времени программы Пропустить первые 6 строк / строк в текстовом файле с помощью awk Debian jessie no sound Ctrl-стрелка не работает в urxvt при использовании расширения с вкладками sed после матча и перед следующим матчем Попытка grep url из источника html в .txt-файле с помощью sed

Есть ли в Linux 3.10 CFS «временные интервалы»?

Есть ли в Linux 3.10 CFS “временные интервалы”?

Я запутался, потому что sched-design-CFS.txt ясно заявляет:

CFS использует учет гранулярности наносекунды и не полагается ни на какие ошибки или другие детали HZ. Таким образом, планировщик CFS не имеет понятия «временные интервалы», как у предыдущего планировщика, и не имеет эвристики вообще. Существует только одна центральная настройка (вы должны включить CONFIG_SCHED_DEBUG):

/ Труды / системы / ядра / sched_min_granularity_ns

который может быть использован для настройки планировщика с «настольных» (т. е. с низкими задержками) на «серверные» (т. е. с хорошим пакетированием) рабочих нагрузок.

Но затем в руководствах по настройке планировщика нескольких задач предлагаются две разные формулы расчета «временного интервала». (В зависимости от количества выполняемых задач.) Например, это руководство OpenSUSE .

Я использую только streamи SCHED_FIFO на изолированных процессорах.

CFS не имеет временных интервалов «так, как у предыдущего планировщика».

В CFS временной интервал – это в основном длительность между последовательными переключателями, чтобы предоставить время выполнения ЦП тому же streamу. Это дает вам два варианта:

  • Все ваши streamи имеют достаточно времени для выполнения хотя бы min_granularity_ns течение одного latency_ns . Затем ваш timeslice = scheduling period * (task's weight/total weight of tasks in the run queue)

  • В latency_ns слишком много streamов для размещения, поэтому ваши временные fragmentы увеличиваются, чтобы вместить больше streamов, которые хотят работать в соответствии с timeslice = number_of_running_tasks * sched_min_granularity_ns

Вот почему CFS означает « Полностью честный планировщик», так как он не исключает streamи с более низкими приоритетами, но без parsingа увеличивает временные интервалы для всех.