I have a constant 5% and more CPU time spent in handling soft interrupts. Doe to that, the ksoftirqd
is running almost constantly, but is using a very small amount of CPU (less than 1%).
However, regardless of this heavy load there is still a fairly high percentage of idle time (30% and more)(this is the top
value for idle, or the idle from mpstat
).
Some background (However, I would like a conceptual answer, not one that solves the problem on my system). The system is used for routing (echo 1 > /proc/sys/net/ipv4/ip_forward
) and NAT with iptables, and runs additional user space application not related to networking. Also, the load average is always above 1 (it's a single core processor)(this is the value Load average from top
, or the output of sar -q
).
What is preventing the system to use the idle time to prevent the handling of soft interrupts from being missed?
I would expect to see the idle time (id in top) be used for serving software interrupts (si in top) and not have the processor miss tasks and be idle at the same time.
No comments:
Post a Comment