Управляем CPU affinity или как ограничить процессы нужными ядрами

Опубликовано 9 нояб. 2025 г.

По просьбе коллеги @dox89.

Предыдущие статьи по настройке производительности Здесь и Здесь:

В современных системах число ядер только растет. И запущенный процесс гуляет по ядрам, как разочаровавшаяся в любви девушка.

Таким образом планировщик системы пытается балансировать нагрузку, ресурсы (и тепловыделение). Но это поведение можно изменить.

ЧИТАТЬ ПЕРВЫМ В ТЕЛЕГРАМ   ЧИТАТЬ ПЕРВЫМ В MAX

С помощью программы можно taskset можно запускать процессы на указанных ядрах.

Например:

taskset --cpu-list 0-2,6 thunderbird

Запустит thunderbird, и разрешит почтовому клиенту работать только на указанных ядрах.

Фактически taskset не разрешает работать на указанных ядрах, а запрещает работать на всех остальных, потому что по умолчанию любому процессу можно работать на всех ядрах.

Если использовать ключик -p PID, то аналогичную процедуру можно выполнить с уже запущенным процессом.

Современные процессоры имеют гибридную архитектуру. Т.е. они содержат и энергоэффективные и производительные ядра.

Так вот, с помощью этой команды можно немного оптимизировать производительность - ограничивая второстепенным приложениям доступ к высокопроизводительным ядрам.

Ну, или для всей «шушеры» выделить пару ядер, освободив остальные для самых важных процессов.

Но если Вам лень этим заниматься - знайте, что планировщик и так неплохо справляется. Единственное, чего он не знает - какие процессы для Вас более важные. Но ему всегда об этом можно напомнить, с помощью команды nice.

Ну, и напоследок - вредный совет.

Однажды у моего коллеги на работе эффективные менеджеры ввели KPI.

Деньги начали платить по проделанной, а не стабильной работе. После этого у всех, включая бухгалтерию в конце квартала все начинало тормозить Но не сразу, а как-то плавно, но заметно.

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

А потом - о5-25.

Но как они этого добивались - я не знаю :-)

man taskset
man nice

Комментарии