Назад | Перейти на главную страницу

Параметр ядра isolcpus, похоже, не влияет на сервер Ubuntu с NUMA

Я использую параметр ядра isolcpus, чтобы ограничить количество процессоров, которые планировщик Linux должен использовать для размещения процессов.

cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-4.2.0-18-generic.efi.signed root=UUID=78e5b46f-6c1c-4e8f-b921-8c091c98209b ro isolcpus=4−23,28−47

Из того, что я прочитал, это должно разместить все процессы, которые явно не указаны cpuset или аналогичными, на процессоре, которые не находятся в списке Isolcpus.

Однако процессы выполняются на произвольных процессорах, якобы изолированные процессоры все еще используются. Вот часть вывода ps -F ax:

UID        PID  PPID  C    SZ   RSS PSR STIME TTY      STAT   TIME CMD
message+  1185     1  0 10712  3804  11 20:36 ?        Ss     0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root      1208     1  0  4411  5364  20 20:36 ?        S<L    0:00 /usr/bin/atop -a -w /var/log/atop/atop_20151114 600
root      1214     1  0  7135  3008   2 20:36 ?        Ss     0:00 /lib/systemd/systemd-logind
daemon    1221     1  0  4795  1912  42 20:36 ?        Ss     0:00 /usr/sbin/atd -f

Как вы можете видеть в столбце PSR, используются процессоры 11, 20 и 42, чего не должно быть.

Я пробовал следующие версии Ubuntu во всех случаях с результатом, описанным выше:

Есть идеи, в чем может быть проблема?

Обновить

Isolcpus действительно работает при запуске Ubuntu на виртуальной машине без NUMA (Core i7). Однако он по-прежнему не работает на сервере с NUMA (2x Xeon E3 v3 2690).