CPU Affinity на процессорах ARM

Я использую некоторые платы RaspberryPI для системы сбора данных. Это хорошие форумы с широкой поддержкой сообщества, но они очень медленные. Я думаю о постепенной замене их на многоядерные платы ODROID процессорами Samsung Exynos.

У меня есть некоторый опыт использования набора задач для установки соответствия процессоров на моих серверах, потому что я всегда запускаю приложения Node.js, которые по определению являются однопоточными.

Теперь можно ли сделать это на плате ARM? Я не понимаю, почему это не так в теории, но я сомневаюсь, насколько хорошо это будет работать.

У кого-нибудь есть опыт такого взлома? Кроме того, я был бы признателен за любые комментарии о процессорах ARM и о том, как они отличаются от x86.

2 ответа

Решение

Да, это возможно.
taskset это функция уровня операционной системы: не имеет значения, какую архитектуру процессора вы используете (в пределах разумного), вы просто указываете ядру, где оно может и не может что-то запускать.

Различия между ARM и x86 здесь в значительной степени несущественны, поэтому я не буду вдаваться в подробности (хотя вы должны знать о них и их последствиях для вашего конкретного случая использования - это исследовательский проект для вас в Ваше свободное время).


Нет, ты не должен этого делать.
Не пытайтесь перехитрить планировщик.
Планировщик умнее, чем вы думаете.
В большинстве случаев планировщик умнее вас.

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

Как сказал Дэвид, используя taskset или другие инструменты для ручного принудительного сродства (или любые другие настройки планировщика) могут иметь смысл тогда и только тогда, когда вы точно знаете , что ваша ситуация является "особой", и планировщик будет делать неправильные вещи, если оставить их собственным устройствам.
Это хирургические инструменты, разработанные для очень специфических, очень узких обстоятельств.
Неправильное использование инструментов может привести к гибели людей и снижению производительности.

потому что я всегда запускаю приложения Node.js, которые по определению являются однопоточными

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

AFAIK Не должно быть никакой разницы между чипами ARM и Intel для набора задач (или других вещей планирования, с явным исключением гиперпоточности). Но я не играл во взлом многоядерных ARM.

Другие вопросы по тегам