Я чувствовал, что Ubuntu работает немного вяло, а затем я пошел посмотреть процессы, запущенные на нем, и нашел тот, который использовал что-то вроде 50% процессора, называемого ksoftirqd/0.
Кто-нибудь знает, что делает этот процесс, почему он использует так много процессора и как сделать его менее ресурсоемким?
Ваш компьютер взаимодействует с подключенными к нему устройствами с помощью IRQ (запросов на прерывание). Когда прерывание поступает от устройства, операционная система приостанавливает то, что она делала, и начинает обрабатывать это прерывание.
В некоторых ситуациях IRQ приходят очень быстро один за другим, и операционная система не может завершить обслуживание одного до прибытия другого. Это может произойти, когда высокоскоростная сетевая карта получает очень большое количество пакетов за короткий промежуток времени.
Поскольку операционная система не может обрабатывать запросы IRQ по мере их поступления (поскольку они поступают слишком быстро один за другим), операционная система ставит их в очередь для последующей обработки специальным внутренним процессом с именем ksoftirqd.
Если ksoftirqd занимает более крошечного процента процессорного времени, это указывает на то, что машина находится под большой нагрузкой прерываний.
Со справочной страницы, ksoftirqd это поток ядра для каждого процессора, который выполняется, когда машина находится под большой нагрузкой с мягкими прерываниями.
Вы можете немного изменить настройки, определив, какой процессор принимает определенное прерывание. Вы делаете это, изменяя содержимое /proc/irq/$interrupt_number/smp_affinity. Вы можете получить список прерываний и их значение, выполнив:
cat /proc/interrupts
Число в smp_affinity представляет собой растровое изображение процессоров, представленное в шестнадцатеричном коде. Крайний правый бит является наименее значимым. Например, моя система имеет 8 ядер. Если бы я хотел использовать только ядра 1, 3 и 4, я бы установил значение smp_affinity равным 1a:
ksoftirqd - это поток ядра для каждого процессора, который выполняется, когда машина находится под большой нагрузкой с мягкими прерываниями.Таким образом, это не потребляет ваш процессор, а скорее снижает нагрузку на IRQ.