我正在运行性能测试,其中将一组进程/线程放入Linux中一组隔离的CPU中。
让我以/ usr / bin / stress为例,说明Linux 4.18.20中的不同行为。
系统中有16个CPU,CPU 2-13与isolcpus = 2-13隔离。
测试1,taskset -c 2-13 / usr / bin / stress -c12。目标是在CPU 2-13中运行12个Stress实例。但是实际上,所有压力实例都放在CPU2中,而不是其他CPU上。
测试2,taskset -c 2-13 chrt -f 1 / usr / bin / stress -c 12.这次,将12个实例放入12个CPU中,每个实例都在一个特定的CPU上。
所以问题是为什么测试1和2表现出不同的行为,内核的哪一部分导致了这种不同?