1 / 22

诺西实习总结报告

诺西实习总结报告. 王淼. 报告提纲. 测试的背景. 分布式数据库进行数据备份、传输数据的需要. 高效性. backup. udt. 准确性. 友好性. 传输协议 udt. 常用传输协议 UDP :无连接的传输协议,不可靠。  在网络质量不好时丢包严重 TCP :面向连接的传输协议,可靠。  在 高带宽长距离网络上性能 低 udt 传输协议( UDP-based Data Transfer Protocol ) 由于 UDT 完全在 UDP 上实现,并引入新的拥塞控制和数据可靠性控制机制。

kueng
Download Presentation

诺西实习总结报告

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 诺西实习总结报告 王淼

  2. 报告提纲

  3. 测试的背景 • 分布式数据库进行数据备份、传输数据的需要 高效性 backup udt 准确性 友好性

  4. 传输协议udt • 常用传输协议 UDP:无连接的传输协议,不可靠。 在网络质量不好时丢包严重 TCP:面向连接的传输协议,可靠。 在高带宽长距离网络上性能低 • udt传输协议(UDP-based Data Transfer Protocol) 由于UDT完全在UDP上实现,并引入新的拥塞控制和数据可靠性控制机制。 udt提供了两种传输模式:m2m(memory to memory) d2d(disk to disk) UDP Header UDT Header

  5. 传输协议udt • 关于udt性能的测试 udt的官方文档说即使有500ms的网络延时,在1G bit/s的物理网卡上,速率也能够达到900Mbit/s以上,并且没有丢包。 • 测试过程: • udt参数调优 • tc(traffic control)队列选择、参数调优 • 测试结果 tc加延时从0ms一直到500ms,udt流的速率非常稳定,均可以最高达到950Mbit/s,且丢包率稳定后为0。这证明了udt的高效性和准确性。udt正如它自己声明的那样: 支持高速广域网上的海量数据传输。

  6. 整个测试脚本的介绍

  7. 测试架构 • 脚本的主要架构 整个测试脚本的介绍 Config files TC (Add latency) TCP flows (Number, BW limit, mode(M2M)) UDT flows (Number, modes(D2D/M2M), BW limit) Perf. Collection &Statistic (CPU/memory/transmission status) Analysis (dimensionally)

  8. client TC manager server 测试架构 • 测试环境搭建 • 必要配置 • 打开服务器的路由转发功能 /proc/sys/net/ipv4/ip_forward • 配置路由转发,使server和client之间的数据先经过tc manager(对数据包进行延时)处理后再发送 • 连接测试 整个测试脚本的介绍

  9. 内核工具tc进行网络延时模拟 • tc(Traffic Control)是linux内核中用于流量控制的工具,它主要是通过在网卡的出口上建立一个队列来实现流量控制的目的。 • tc的三个组成部分: • queuing disciplines:指定数据包排列的队列类型 • classes:可以为一些特定的数据包设定一个类别 • filters:指定想要进行限制的数据包的过滤器 整个测试脚本的介绍 Traffic control Upper layers(TCP, UDP, …) Input Forwarding Output queuing

  10. 内核工具tc进行网络延时模拟 • tc三个部分的关系图示: 整个测试脚本的介绍 Filter QDisc class Filter QDisc class Filter Queuing discipline

  11. 内核工具tc进行网络延时模拟 • 我们的测试中,主要是利用tc进行对server与client上通过的数据包进行网络延时,来模拟实际的网域网传输情况,功能如下图所示: • 为了测试的正确性,如果数据包不是从server发往client(或从client发往server),则不会被tc过滤器过滤而进行延时操作。 整个测试脚本的介绍 server TC manager 延时100ms client

  12. root 1:0 qdisc htb filter client ip address 1:1 class filter server ip address 1:11 class 1:12 class 11:0 delay ?ms 12:0 delay ?ms 111: qdisc sfq 122: qdisc sfq 内核工具tc进行网络延时模拟 • 为了达到这个目的,构建的tc结构树如下所示(已经过测试选择队列): 整个测试脚本的介绍

  13. 启动tcp流的工具 ---- D-ITG • D-ITG是一种比较流行的数据流产生工具。通过ITGSend发送数据,在目的服务器上用ITGRecv接收数据。 • 目的:在server和client之间同时启动udt流和tcp流,观察udt对tcp的友好性,以及两种数据流共同存在时相互的影响。 • 实验结果:D-ITG产生的tcp数据流在有udt流和没有udt流两种情况下,速率相差很小,这也证明了udt对于tcp的友好性。 • 使用范例: ./ITGSend -a 10.141.7.166 -rp 9500 -C 1000 -u 1000 2000 -l send_logfile 启动tcp流工具、监视网络状态工具 整个测试脚本的介绍

  14. D-ITG使用中的问题 • server端和client端时间同步 • 与网络提供的时间服务器同步:由于服务器均不能连接外网,失败 • 两台服务器之间同步:ntp工具 • 使用中出现的问题: • Udp流、tcp流丢包率不一样 • Receive端cpu占用率过高700%~800% • 启动不稳定,在连续case测试时有时ITGSend不能正常启动 • ITGDec使用方式不是十分了解 • 启动tcp流工具、监视网络状态工具 整个测试脚本的介绍

  15. 监视网络状态工具 • iftop • nload • ifstat功能和需要不太符合 • sar • load runner • ntop都需要图形界面 • iptraf • 针对测试,需要能够监测网卡经过数据包的源ip地址、目的ip地址以及流量大小统计,因此使用iftop工具。 • 启动tcp流工具、监视网络状态工具 整个测试脚本的介绍

  16. host port total flow of each connection average flow in past 2s, 10s,40s

  17. 测试中设定的参数 • tc设定延时 latency • udt传输模式 udt_type • udt流数量 udt_num • udt流最大使用带宽 udt_bandwidth • tcp流数量 tcp_num • tcp流最大使用带宽 tcp_bandwidth • 测试结果关注的参数 • udt、tcp流传输速率 throughput • udt、tcp流的client端cpu占用率、mem占用率 • udt、tcp流的server端cpu占用率、mem占用率 整个测试脚本的介绍 • 测试关注的参数

  18. 使用xml作为数据结果分析的格式 • 编写xml的schema,定义xml文件的格式规范。 • 从测试的中间结果数据(client端、server端)中抽取、计算数据。 包括从client端的中间结果中提取throughput,从client端的top结果中提取client进程占用的cpu、mem,以及ssh远程到server端服务器提取server进程占用的cpu、mem。 • 将数据整合成xml文档。 • 将xml导入excel表格,然后编写程序使excel将特定的数据区域自动绘出数据图线。 整个测试脚本的介绍 • 数据结果分析

  19. 发现问题 当将在本地服务器上配置好的脚本放到慕尼黑服务器上之后,数据结果较之前性能下降很多。Top命令发现所有的软件中断全部分配到一个cpu上,负载严重不均衡。 • 可能原因 • 虚拟网卡bonding 慕尼黑的testbed上面的网卡是用两块物理网卡bonding成一块虚拟网卡来使用的。也许虚拟网卡会对负载均衡产生影响。 在本地机器上搭建虚拟网卡环境,测试各种bonding工作模式,并尝试将不同网卡中断号上的负载分配到不同的cpu上(smp_affnity配置),但是使用tcpdump抓包分析发现,似乎目前的虚拟网卡工作模式的功能并没有非常完善,或者不能适用于我们测试的特殊环境。 整个测试脚本的介绍 • 虚拟网卡bonding的影响

  20. 做事情头脑要清晰,细心谨慎,考虑全面。编程序时尽量避免等到整个程序跑起来出问题再回头检查。做事情头脑要清晰,细心谨慎,考虑全面。编程序时尽量避免等到整个程序跑起来出问题再回头检查。 • 对自己的任务应该全力以赴,做事情要负责任,不能推脱。自己要努力成为让人信任的人。 • 英语听说能力很重要。 • 在和别人交流时,要表达清晰,尽量不要胆怯。 • 善于学习,养成习惯把解决好的问题记在本上,下次再遇到的时候就不必再费力google了。 • 反思:做事情一定要有效率,要善于和别人交流,要对自己有正确积极的自我评价。 • 实习的感受

  21. Thanks!

More Related