当前位置: 首页 > news >正文

静态网站规范dw制作简单网站模板下载

静态网站规范,dw制作简单网站模板下载,怎么做垂直门户网站,网站建设方案书 内容管理制度背景: 3.10内核下容器使用的veth网卡,默认开启的是一个队列,导致在某些单线程多TCP链接的应用场景下,出现某个CPU软中断高的情况。之前处理的方案一直是开启这个veth网卡的RPS,让其在多流场景下可以去分散到其它CPU上…

背景:

3.10内核下容器使用的veth网卡,默认开启的是一个队列,导致在某些单线程多TCP链接的应用场景下,出现某个CPU软中断高的情况。之前处理的方案一直是开启这个veth网卡的RPS,让其在多流场景下可以去分散到其它CPU上,将某个CPU上的软中断降低。

偶然发现veth也支持多队列,那是不是可以直接利用多队列去分流,不需要手动开启RPS了呢?带着这个问题看一下内核的处理流程。如下。

上层协议栈

->__dev_queue_xmit

   - >netdev_pick_tx  – 这里会通过skb_tx_hash获取发送队列的id

   - > dev_hard_start_xmit->xmit_one → netdev_start_xmit →ndo_start_xmit → veth_xmit

在veth_xmit中

→dev_forward_skb

   → netif_rx_internal

       → get_rps_cpu

最终调用get_rps_cpu接口:

 

其中,skb_get_rx_queue可以通过veth的多队列,拿到不同的队列,但是下面的一个流程,是要配合rps去使用的,所以当前3.10.957的内核即使veth使用了多队列,若没有开rps的话,仍然是返回到当前cpu。

附一个stap脚本:

# cat veth_rps.stp 
#!/usr/bin/stap --all-modules
%{
#include <linux/kernel.h>
#include <linux/net.h>
#include <linux/textsearch.h>
#include <net/checksum.h>
#include <linux/dma-mapping.h>
#include <linux/netdev_features.h>
#include <linux/skbuff.h>
#include <uapi/linux/ip.h>
#include <uapi/linux/udp.h>
#include <uapi/linux/tcp.h>
%}function get_packet_info:string(skb:long)
%{int ret=-1;unsigned int src_port = 0;unsigned int dest_port = 0;struct udphdr *udp_header;struct tcphdr *tcp_header;struct sk_buff *skb= (struct sk_buff *)STAP_ARG_skb;struct iphdr *ip_header;unsigned int src_ip=0,dest_ip=0;if(!skb){goto EXIT_F;}ip_header = (struct iphdr *)skb_network_header(skb);if(!ip_header){goto EXIT_F;}src_ip = (unsigned int)ip_header->saddr;dest_ip = (unsigned int)ip_header->daddr;
EXIT_F:snprintf(STAP_RETVALUE, MAXSTRINGLEN, "%d.%d.%d.%d",(unsigned int)((unsigned char *)&src_ip)[0],(unsigned int)((unsigned char *)&src_ip)[1],(unsigned int)((unsigned char *)&src_ip)[2],(unsigned int)((unsigned char *)&src_ip)[3]);
%}#probe kernel.trace("set_rps_cpu") {
probe kernel.statement("get_rps_cpu@net/core/dev.c:3651") {SrcIp=get_packet_info($skb)if(SrcIp==@1){printf("=== %s   queid:  %d, cpu:  %d  , rps map:%x ===\n", SrcIp, $skb->queue_mapping, $cpu, $rxqueue->rps_flow_table)print_backtrace()}}

可以看见queid是散列的,但是cpu仍然是-1,最终和调用者的cpu保持一致。 

http://www.yayakq.cn/news/644489/

相关文章:

  • 红木家具网站建设总体规划7k7k小游戏在线玩
  • 嘉兴网站建设托管注册公司流程和费用找哪家
  • 优秀大校网站开公司流程及费用2022最新
  • 建购物的网站需要多少钱ai国外教程网站
  • 商标可以做网站吗网站开发有哪些语言
  • 重庆网站开发服务地方网站盈利模式
  • 怎做连接网站我为群众办实事实践活动
  • 宁波网站建设优化技术现今网站开发的主流框架
  • 网站建设需要多少天沧州网站制作网站
  • 怎么制作微信网站佛山网站建设 乐云践新专家
  • 横店影视城网站建设零基础学计算机难吗
  • 网站信息优化的方式宁波平面设计公司
  • 自动获取网站缩略图微信公众号如何创建文件夹
  • 好的网站建设启示微信公众号开发流程
  • 如何免费建站电子商务网站建设需求说明书
  • 网站首页优化用jquery做的网站
  • 软件站php网站源码怎么在本地电脑调式
  • 福建省武夷山市城乡建设网站全国大学生平面设计大赛
  • 西安网站建设怎么接单中国建设银行青海省分行网站
  • 惠阳网站建设s001网站建设公司
  • 百度网站优化排行东莞品牌网站建设
  • 福鼎网站优化公司大图模板网站
  • 网站建设合同是否缴纳印花税烟台网站建设优化
  • 最好的国内科技网站建设企业宣传片策划制作
  • 网站有哪些内容广东制作公司网站
  • 网站上的链接怎么做的福州手游网站建设
  • 怎样优化网站自然排名北京it外包公司排行榜
  • 建筑公司做网站买空间多大合适做网站应达到什么效果
  • 宣传网站建设的意义网站风险解除
  • 做网站需要的法律知识tinymce wordpress