클라이언트에서 간단한 프로그램을 실행 중이며 계속 UDP 패킷을 서버로 보냅니다. 서버의 인터페이스는 다중 대기열 네트 카드이지만 udp4의 rx-flow-hash를 sd로 설정했습니다. 따라서 모든 패킷은 하나의 CPU에서 생성됩니다.리눅스 softirq cpu 사용법이 이상하게 보입니다.
40Wpackets/s를 수신하면 서버의 CPU가 softirq에서 1 %의 비용이 발생합니다. 60Wpackets/s를 수신하면 서버의 CPU가 softirq에서 8 %가됩니다. 90Wpackets/s를 받으면 서버의 CPU cosr이 softirq에서 100 %가됩니다.
받은 번호는 잠시 동안 sar -n UDP 1
번으로 실행됩니다. CPU 비용은 잠시 동안 mpstat -P ALL 1
을 통해 전달됩니다.
그래서 나는 이것에 대해 혼란스러워합니다.
선형이 아닌 이유는 무엇입니까?