Я использую некоторые платы RaspberryPI для системы сбора данных. Это хорошие доски, пользующиеся большой поддержкой сообщества, но они очень медленные. Думаю постепенно заменить их на ODROID многоядерные платы, с процессорами Samsung Exynos.
У меня есть некоторый опыт использования набор задач чтобы установить соответствие ЦП на моих серверах, потому что я всегда запускаю приложения Node.js, которые по определению являются однопоточными.
Теперь, возможно ли это сделать на плате ARM? Я не понимаю, почему бы этого не было в теории, но я сомневаюсь, насколько хорошо это будет работать.
У кого-нибудь есть опыт подобного взлома? Кроме того, я был бы признателен за любые комментарии о процессорах ARM и их отличиях от x86.
потому что я всегда запускаю приложения Node.js, которые по определению являются однопоточными
эээ .... не уверен в наборе задач - действительно идеальное решение. Конечно, есть преимущество в том, чтобы сохранить задачу, связанную с одним и тем же кешем l2 - если вы используете CFS, то установка более высокого значения для sched_migration_cost может быть более подходящей.
AFAIK не должно быть разницы между чипами ARM и Intel для набора задач (или других элементов планирования, за очевидным исключением гиперпоточности). Но я не баловался взломом многоядерных ARM.
Да, это возможно.
taskset
- это функция уровня операционной системы: неважно, какую архитектуру ЦП вы используете (в разумных пределах), вы просто указываете ядру, где оно может и не может запускать что-то.
В различия между ARM и x86 в значительной степени несущественны здесь, поэтому я не буду вдаваться в них подробно (хотя вы должны знать о них и их последствиях для вашего конкретного варианта использования - это исследовательский проект для вас в свободное время).
Нет, не надо этого делать.
Не попробуй перехитрить планировщик.
Планировщик умнее, чем вы думаете.
В большинстве случаев планировщик умнее вас.
Планировщик был разработан людьми, которые полностью понимают внутреннее устройство операционной системы. Эти люди имеют большой практический опыт оптимизации систем, и они вложили этот опыт (вместе с немалым количеством крови, пота, слез и ненормативной лексики) в алгоритм планировщика вашей операционной системы.
Так как Дэвид сказал, с помощью taskset
или другие инструменты для вручную привязка силы (или любые другие настройки планировщика) может иметь смысл если и только если знаешь по факту что ваша ситуация «особенная», и планировщик поступит не так, если оставить его наедине с собой.
Это хирургические инструменты, разработанные для очень специфических, очень узких стилей обстоятельств.
Неправильное использование инструментов приведет к убивая людей снижение производительности.