по идее ок по причине использование сети) сами прерывания они же исполняются в kernel, поэтому высокий softirq time может как то влиять на system time?
Да, будет влиять. Там все рутины близко, аккаунтятся чутка по-разному. Если причину хочешь понять, то perf record -a --call-graph dwarf -F 99 -e cycles:Ik -- sleep 5 тебе в помощь.
если под system time имеется в виду попроцессная статистика, то нет, softirq считается отдельно. если про system_time в cpuacct.stat в cpuacct cgroup, то учитывается.
Чтобы снизить время в softirq и прочем системном, советую внимательно посмотреть на RSS, RPS, RFS, а также включить разные виды offload'а на сетевой карте (ethtool). https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/performance_tuning_guide/sect-red_hat_enterprise_linux-performance_tuning_guide-networking-configuration_tools#sect-Red_Hat_Enterprise_Linux-Performance_Tuning_Guide-Configuration_tools-Configuring_Receive_Side_Scaling_RSS
Да, может, т.к. обработчики прерываний могут откладывать дополнительную работу с сетевыми пакетами на потом в потоках операционной системы (system time). Вообще, поотключайте iptables. У нас после этого снижалось как softirq, так и system time. Еще можно попробовать разнести обработку очередей сетевой карты на разные ядра процессора. Иногда помогает. И последний вариант - сменить сетевуху на более крутую, которая может выполнять болбше работы без привлечения ядер cpu
Обсуждают сегодня