Как cpumask влияет на планирование других процессов в ядре Linux? - PullRequest
1 голос
/ 20 ноября 2011

Я использую ядро ​​Linux 2.6.x на моей машине, на которой установлена ​​Ubuntu (Ubuntu упоминается только в случае, если это что-то изменит).Ядро работает на машине с 8 ядрами.Машина также работает openvz, но я не думаю, что это меняет контекст вопроса.

У меня установлено программное обеспечение, которое позволяет использовать только два ЦП, и оно устанавливает жесткую привязку ЦП к первым обоим ЦП (cpumask 3).Я спрашиваю себя, как это влияет на планирование других процессов.Я думаю, что прочитал кое-что об этом, но я предполагаю, что процессы, вероятно, будут присоединены к первым процессорам.И ядро ​​старается всегда держать процессы на одном и том же процессоре, чтобы избежать аннулирования кэша.

На машине запущено довольно много процессов.Как ядро ​​справляется с этой ситуацией?Может ли быть так, что процессы привязки к жесткому процессору работают медленнее, потому что они подвержены влиянию, будучи привязанными к загруженной зоне?Как ядро ​​заботится о жестком сродстве.

1 Ответ

2 голосов
/ 20 ноября 2011

Что произойдет в долгосрочной перспективе, так это то, что код балансировки нагрузки планировщика переместит больше несвязанных задач на остальные процессоры, чтобы учесть, что эта задача связана с первыми двумя.

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

Конечно, поскольку ваша конкретная задача связана с первыми двумя процессорами, баланс нагрузки выберет другие задачи для перемещения - так что ваша связанная задача в конечном итоге «вытолкнет» достаточно других не связанных задач на другие процессоры и баланс будут сохранены.

...