使用netlink出现ENOBUFS问题的解决总结
背景笔者负责在交换机设备上维护snmp功能,原先的代码在arp表项打满的情况下会出现严重的性能问题,原因在于使用链表来保存arp表项,而从/proc/net/arp文件中读取出来的表项是无序的,但最终又要将数据按照ifindex和ip进行排序,所以查找就十分的耗性能,笔者经过一番分析之后,采用红黑树来保存arp表项,在初始化时使用netlink从内核而不是/proc/net/arp文件把数据dump出来,红黑树的key使用ifindex与ip作为联合key进行排序,这样查找的效率就会高很多,性能问题也就因
原创
2021-06-10 08:44:50 ·
1105 阅读 ·
0 评论