Иногда ядра загружены, хотя пользовательские процессы почти ничего не делают
Причина может быть в hardware interrupts - процессор постоянно получает прерывания от сетевой карты, диска, таймера или другого устройства
cat /proc/interrupts
В выводе каждое устройство имеет счётчик прерываний по CPU
Например, если у сетевой карты почти все события приходят на один CPU, нагрузка может распределяться очень неравномерно
grep -Ei 'nvme|eth|ens|enp' /proc/interrupts
Можно увидеть, например, что NVMe или NIC генерирует огромное количество IRQ
watch -n 1 'grep -Ei "nvme|eth|ens|enp" /proc/interrupts'
Важны не сами большие числа, а то, как быстро они растут
Если за секунду один счётчик увеличивается на десятки тысяч, устройство активно генерирует прерывания
Сетевая карта может иметь несколько очередей, каждая из которых связана со своим IRQ
Если распределение получилось неудачным, один CPU будет заниматься обработкой почти всего сетевого трафика, пока остальные ядра простаивают
Проверить softirq:
grep NET_RX /proc/softirqs
Если одновременно растут IRQ сетевой карты и
NET_RX на одном CPU, нагрузка уже уходит глубже обычного процесса

