Так что, если я запустлю поток пользовательского пространства, который был назначен изолированному ядру (с использованием isolcpus), и он выполнит какую-то операцию ввода-вывода, выполнится ли задача, созданная планировщиком ввода-вывода, на изолированном ядре?
То, что делает isolcpus
, вынимает это конкретное ядро из списка ядер процессора, где оно может планировать задачи.Поэтому, как только вы изолируете процессор от списка процессоров ядра, он никогда не будет планировать какие-либо задачи для этого ядра, независимо от того, является ли это ядро свободным или используется каким-либо другим процессом / потоком.
С CFSПохоже, что это способствует взаимодействию с пользователем. Означает ли это, что потоки, интенсивно использующие ЦП, могут получить меньше времени ЦП в долгосрочной перспективе?Изоляция ядер может помочь смягчить эту проблему?
По моему мнению, изоляция процессора имеет иное применение.По сути, если в ваших приложениях есть как быстрые потоки (потоки без системных вызовов и чувствительные к задержке), так и медленные потоки (потоки с системными вызовами), вы бы хотели иметь выделенные ядра ЦП для ваших быстрых потоков, чтобы они не прерывались планированием ядра.процесс и, следовательно, может работать до их завершения без шума.Быстрые потоки обычно чувствительны к задержке.С другой стороны, медленные потоки или потоки, которые на самом деле не чувствительны к задержке и выполняют вспомогательную логику для вашего приложения, не должны иметь выделенных ядер ЦП.Как упоминалось ранее, isloting процессорные серверы другого назначения.Мы все это делаем в нашей организации все время.
Изоляция ядер может уменьшить задержку планирования (время, которое требуется для потока, который был помечен как выполняемый, чтобы быть выполненным) для потоков, которые находятся в очередик изолированным ядрам?
Поскольку вы берете процессор из списка процессоров ядра, это, несомненно, повлияет на другие потоки и процессы, но опять же вы хотели бы уделить дополнительное внимание и внимание тому, что на самом деле является вашимкод, чувствительный к задержке, и вы хотите отделить его от кода, не чувствительного к задержке.
Надеюсь, это поможет.