= Сообщение: 8864 из 10753 ===================================== RU.UNIX.BSD = От : Eugene Grosbein 2:5006/1 27 Apr 19 19:39:59 Кому : Anton Gorlov 27 Apr 19 19:39:59 Тема : Re: interrupt cpu usage FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+b72c020d На : area://RU.UNIX.BSD?msgid=2:5059/37@FidoNet+5cc36b43 = Кодировка сообщения определена как: IBM866 ================================= Ответ: area://RU.UNIX.BSD?msgid=2:5059/37@FidoNet+5cc815fa ============================================================================== 26 апр. 2019, пятница, в 20:55 NOVT, Anton Gorlov написал(а):
AG> All -а можно ли чего ещ потюнить, дял уменьшения нагурки от прерываний?
AG> CPU 0: 0.0% user, 0.0% nice, 0.0% system, 17.4% interrupt, 82.6% idle AG> CPU 1: 0.0% user, 0.0% nice, 0.0% system, 23.9% interrupt, 76.1% idle AG> CPU 2: 0.0% user, 0.0% nice, 0.0% system, 14.7% interrupt, 85.3% idle AG> CPU 3: 0.0% user, 0.0% nice, 0.0% system, 11.0% interrupt, 89.0% idle AG> CPU 4: 0.0% user, 0.0% nice, 0.0% system, 17.4% interrupt, 82.6% idle AG> CPU 5: 0.0% user, 0.0% nice, 0.0% system, 22.0% interrupt, 78.0% idle AG> CPU 6: 0.0% user, 0.0% nice, 0.9% system, 15.6% interrupt, 83.5% idle AG> CPU 7: 0.0% user, 0.0% nice, 0.0% system, 25.7% interrupt, 74.3% idle AG> CPU 8: 0.0% user, 0.0% nice, 0.9% system, 2.8% interrupt, 96.3% idle AG> CPU 9: 0.0% user, 0.0% nice, 0.0% system, 6.4% interrupt, 93.6% idle AG> CPU 10: 0.0% user, 0.0% nice, 0.0% system, 2.8% interrupt, 97.2% idle AG> CPU 11: 0.0% user, 0.0% nice, 0.0% system, 3.7% interrupt, 96.3% idle
Hичего не нужно делать, всё хорошо.
Hужно понимать, что именно показывает топ в столбце interrupt. А показывает он всю работу, совершенную ядром в контексте обрабтчика прерывания. По умолчанию это вообще всё, что делается: выбирание пакетов из аппаратных очередей NIC, фильтрация файрволом, routing lookup (весьма дорогая операция при использовании BGP full view), опять фильтрация файрволом (если есть NAT - до кучи трансляция) и прочее, буде такое найдётся (bpf etc.), вплоть до помещения пакета в FIFO исходящего интерфейса.
Если набор сетевых интерфейсов статический (нет создания/удаления интерфейсов, как в BRAS), можно поиграться с sysctl net.isr.dispatch=defered , чтобы при получении пакета обработчик прерывания только укладывал принятый пакет в одну из очередей ISR и завершал свою работу, тогда % interrupt сильно упадёт. Всю остальную работу тогда станут выполнять разгребатели очередей ISR (те самые net.isr.numthreads) и записываться эта нагрузка станет на system вместо interrupt, но делать это нужно осторожно - во времена FreeBSD 8 накладные расходы на синхронизацию вносили заметную дополнительную задержку на обработку, так что общая прокачка через систему у меня падала, а не увеличивалась, и падала весьма заметно, до 20% (но у меня железо было перегружено).
Зато при sysctl net.isr.dispatch=defered можно увидеть в top отдельно сколько занимает именно обработка прерываний, а сколько всё остальное.
Eugene --- slrn/1.0.3 (FreeBSD) * Origin: RDTC JSC (2:5006/1@fidonet) |