I am running a simple program in a client, it continue sending udp packet to a server. The interface of server is a multi-queue netcard, but I set its rx-flow-hash of udp4 to sd. So all packet will be produced in one CPU.
When I receive 40Wpackets/s, the server's that CPU cost 1% in softirq. When I receive 60Wpackets/s, the server's that CPU cost 8% in softirq. When I receive 90Wpackets/s, the server's that CPU cosr 100% in softirq.
The received number is get via running sar -n UDP 1
for a while.
The cpu cost is get via mpstat -P ALL 1
for a while.
So I am confused about this.
Why it is not linear?