应用交付AD

深信服应用交付 AD 能够为用户提供包括多数据中心负载均衡、多链路负载均衡、服务器负载均衡的全方位解决方案。不仅实现对各个数据中心、链路以及服务器状态的实时监控,同时根据预设规则,将用户的访问请求分配给相应的数据中心、 链路以及服务器,进而实现数据流的合理分配,使所有的数据中心、链路和服务器都得到充分利用。
点击可切换产品版本
知道了
不再提醒
AD7.0.26R2
应用交付AD 文档 运维管理
{{sendMatomoQuery("应用交付AD","运维管理")}}

运维管理

更新时间:2024-08-09

AD产品抓包指导

AD产品自7.0版本开始,数据面业务均迁移到应用层,底层使用DPDK对接网口。传统的Linux抓包tcpdump命令在内核执行,无法抓取被DPDK接管的网口,AD引入tcpdump库对接应用层数据进程进行抓包。

内部抓包性能测试发现不同设备的产品版本、CPU和网卡类型等差别,没办法有一个统一数值来限制抓包,但根据测试可以明确哪些抓包因子对性能影响较大:

  1. 使用any口性能消耗明显高于使用具体口。使用像eth/bond等具体口时,抓包过滤条件指定IP、端口影响不大,使用any口时,抓包条件影响大。
  2. 流量增大,CPU消耗显著升高
  3. 抓包写文件比不写文件对CPU和内存消耗明显增多
  4. 命中抓包匹配条件的包越多,资源消耗越大

 

通过对比数据,总结抓包影响因子排序:指定网口 > 写文件 > 流量 > 抓包条件。

tcpdump抓包会根据解析条件层级匹配,顺序依次是:网口、二层、三层、四层等条件,若匹配成功后,则将数据包拷贝一份数据,因此如果匹配的条件越多,性能消耗越多。

网口是一个层级结构,上层接口引用下层,比如bond口引用普通eth。如果指定any口,则每一层的网口都会过滤一次匹配条件,抓包性能消耗会被按当前网口的层级放大。

 

后续抓包,遵循以下策略:

  1. 抓包需要尽可能详细制定抓包条件,指定具体的接口比如eth1bond1,,指定匹配的源、目的IP和端口等,既可以减少包拷贝,又能减少写文件大小。
  2. 单次抓包需要限定数量,一次抓包数量范围建议在10w以内,避免占满空间。后台自动抓包脚本需要限制抓包时间,建议不超过1,防止忘记。
  3. 若使用自动抓包脚本,需观察客户设备以往流量无较大波动,历史CPU占用不超过40%,否则需要在业务高峰期值守观察。
  4. 0~AD7.0.4版本抓包性能未做优化,避免长时间抓包,抓包时需要观察

无论什么样的抓包,执行后均需要观察2~5分钟左右的CPU、内存和磁盘占用,发现资源占用较高则及时停止。

AD产品抓包指导V2.doc ( 0.02M  )