Summary
When polling thousands of devices, the CPU bottleneck often shifts from the database to the network stack due to excessive kernel-to-user-space context switching.
Work
- System Calls: Implement
recvmmsg() (Linux-native) to read multiple UDP packets in a single system call, reducing context switch overhead.
- Protocol: Implement SNMP V2/V3 BulkGet more aggressively by default to request larger blocks of OIDs in a single network round-trip.
- Performance Gain: Reduces system CPU load by 30-40% during high-volume polling phases, allowing more threads to run concurrently without maxing out the network stack.
Acceptance Criteria
Summary
When polling thousands of devices, the CPU bottleneck often shifts from the database to the network stack due to excessive kernel-to-user-space context switching.
Work
recvmmsg()(Linux-native) to read multiple UDP packets in a single system call, reducing context switch overhead.Acceptance Criteria