softnet_stat参数含义

[root@~]# cat /proc/net/softnet_stat 
00b231b3 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00b0375e 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0092859a 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
008ca905 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0087fac3 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00860c88 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00863315 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0082604d 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
2921884f 00000000 0000255a 00000000 00000000 00000000 00000000 00000000 00000000 00000000
281c8d61 00000000 000028b4 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1c561944 00000000 000033fe 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1a0bfee7 00000000 00002a6b 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1b0bef4d 00000000 00005071 00000000 00000000 00000000 00000000 00000000 00000000 00000000
187a0875 00000000 000029ab 00000000 00000000 00000000 00000000 00000000 00000000 00000000
2effe256 00000000 00002e60 00000000 00000000 00000000 00000000 00000000 00000000 00000000
2ae9a86f 00000000 00002f43 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00161d2a 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
005f0a1c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0031872c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
001fff64 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
001d39d4 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
001a1693 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0019a025 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
001a5f84 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0cbe5051 00000000 00001c8f 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1d98bbc7 00000000 000021a9 00000000 00000000 00000000 00000000 00000000 00000000 00000000
14a9f92e 00000000 00001fd2 00000000 00000000 00000000 00000000 00000000 00000000 00000000
12ee47dc 00000000 00005701 00000000 00000000 00000000 00000000 00000000 00000000 00000000
154419c4 00000000 00001cb8 00000000 00000000 00000000 00000000 00000000 00000000 00000000
15816c1d 00000000 00001b1b 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1843194c 00000000 00001be5 00000000 00000000 00000000 00000000 00000000 00000000 00000000
335fc2b0 00000000 00004921 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 

网卡收到包后会先将其放置在per cpu变量softnet_data里, 然后触发软中断重softnet_data里取数据包;

softnet_data里有几个status变量,如上图所示,其含义如下:

1、每一行表示每个cpu的softnat_data统计数据;

2、第1列表示该cpu收到的包个数;

3、第2列表示因softnet_data的输入队列满而丢弃的数据包个数(input_pkt_queue,队列长度最大值可通过/proc/sys/net/core/netdev_max_backlog调整);

4、第3列表示软中断一次取走netdev_budget个数据包,或取数据包时间超过2ms的次数;

5、第4~8列固定为0,没有意义;

6、第9列表示发送数据包时,对应的队列被锁住的次数;

7、表示开启rps时,该cpu向其它cpu发送的ipi中断个数;

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
softnet_data结构体是Linux内核中网络软中断处理机制的关键数据结构。它定义在include/net_softnet.h头文件中,其定义如下: ``` struct softnet_data { struct list_head input_pkt_queue; struct list_head process_queue; #ifdef CONFIG_NET_RX_BUSY_POLL u64 start_jiffies; #endif atomic_t poll_list_len; atomic_t process_budget; atomic_t backlog; bool have_raw; /* raw sockets are present, optimize for this */ bool have_fq; bool have_fq_tea; #ifdef CONFIG_RPS bool have_rps_sock; #endif #ifdef CONFIG_RFS_ACCEL bool have_rfs_sock; #endif }; ``` 其中,softnet_data结构体成员说明如下: - input_pkt_queue:存储网络接收的数据包队列的头部。 - process_queue:存储网络接收的数据包经过协议栈处理后的数据包队列的头部。 - start_jiffies:网络接收数据包的起始时间。 - poll_list_len:网络接收数据包队列的长度。 - process_budget:网络接收数据包被处理的预算。 - backlog:网络接收数据包被缓存的数量。 - have_raw:标识是否存在原始套接字。 - have_fq:标识是否启用了Fair Queueing。 - have_fq_tea:标识是否启用了Traffic Engineering and Accounting。 - have_rps_sock:标识是否存在RPS套接字。 - have_rfs_sock:标识是否存在RFS套接字。 该结构体主要用于协议栈接收数据包时的软中断处理机制,其中包括将接收到的数据包添加到input_pkt_queue、将input_pkt_queue中的数据包经过协议栈处理后添加到process_queue等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值