相同端口的UDP套接字数量过多导致软中断占用CPU利用率高的原因分析

本文分析了相同端口UDP套接字过多导致软中断占用CPU利用率高的原因,指出在reload过程中使用shutdown()而非close(),以及设置SO_REUSEADDR选项可能导致的问题。长链表的UDP套接字在接收包时需遍历所有套接字,增加处理时间,影响软中断性能。解决方案包括正确关闭套接字和避免不必要的SO_REUSEADDR设置。
摘要由CSDN通过智能技术生成
  导致出现很多相同端口的UDP套接字的原因有两点:
     1)在reload的时候,调用shutdown()而不是close()来关闭UDP套接字。shutdown()是用来关闭连接 ,但是文件描述符还是会存在。UDP协议并没有提供shutdown接口(参见 udp_prot),所以调用shutdown()并没有真的关闭套 接字,而且reload的次数 太多
     2)设置了SO_REUSEADDR选项。如果没有设置这个选项,在bind的时候就会报错,漏关或者使用shutdown()关闭的错误就很容易发现。UDP套接字没有TIME_WAIT状态,而且要使用的UDP套接字数量不多,所以没有必要设置该选项。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值