- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
关于udt性能的测试
展开查看详情
1 .诺西实习总结报告 王淼
2 .报告提纲 测试的背景 传输协议 udt 整个测试脚本的介绍 实习的感受 Page 2
3 .测试的背景 分布式数据库进行数据备份、传输数据的需要 数据库 高效性 backup 准确性 udt 数据库 数据库 友好性 Page 3
4 .传输协议 udt 常用传输协议 UDP :无连接的传输协议,不可靠。 在网络质量不好时丢包严重 TCP :面向连接的传输协议,可靠。 在高带宽长距离网络上性能低 udt 传输协议( UDP-based Data Transfer Protocol ) 由于 UDT 完全在 UDP 上实现,并引入新的拥塞控制和数据可靠性控制机制。 UDP UDT Header Header udt 提供了两种传输模式: m2m(memory to memory) d2d(disk to disk) Page 4
5 .传输协议 udt 关于 udt 性能的测试 udt 的官方文档说即使有 500ms 的网络延时,在 1G bit/s 的物理网卡上,速率也 能够达到 900Mbit/s 以上,并且没有丢包。 测试过程: udt 参数调优 tc ( traffic control )队列选择、参数调优 测试结果 tc 加延时从 0ms 一直到 500ms , udt 流的速率非常稳定,均可以最高达到 950Mbit/s ,且丢包率稳定后为 0 。这证明了 udt 的高效性和准确性。 udt 正如它 自己声明的那样: 支持高速广域网上的海量数据传输。 Page 5
6 .整个测试脚本的介绍 测试架构 内核工具 tc 进行网络延时模拟 启动 tcp 流工具、监视网络状态工具 测试关注的参数 数据结果分析 虚拟网卡 bonding 的影响 Page 6
7 .整个测试脚本的介绍 测试架构 脚本的主要架构 Config files TCP flows UDT flows TC (Number, BW limit, mode(M2M)) (Number, modes(D2D/M2M), BW limit) (Add latency) Perf. Collection &Statistic (CPU/memory/transmission status) Analysis (dimensionally) Page 7
8 .整个测试脚本的介绍 测试架构 测试环境搭建 server TC manager client 必要配置 打开服务器的路由转发功能 /proc/sys/net/ipv4/ip_forward 配置路由转发,使 server 和 client 之间的数据先经过 tc manager (对数据包进行延时)处理 后再发送 连接测试 Page 8
9 . 内核工具 tc 进行网络延时模 整个测试脚本的介绍 拟 tc(Traffic Control) 是 linux 内核中用于流量控制的工具,它主要是通过在网卡的出口 上建立一个队列来实现流量控制的目的。 Upper layers(TCP, UDP, …) Traffic control Input Forwarding Output queuing tc 的三个组成部分: queuing disciplines :指定数据包排列的队列类型 classes :可以为一些特定的数据包设定一个类别 filters :指定想要进行限制的数据包的过滤器 Page 9
10 . 内核工具 tc 进行网络延时模 整个测试脚本的介绍 拟 tc 三个部分的关系图示: Filter class QDisc Filter class QDisc Filter Queuing discipline Page 10
11 . 内核工具 tc 进行网络延时模 整个测试脚本的介绍 拟 我们的测试中,主要是利用 tc 进行对 server 与 client 上通过的数据包进行网络延 时,来模拟实际的网域网传输情况,功能如下图所示: server TC 延时manager 100ms client 为了测试的正确性,如果数据包不是从 server 发往 client (或从 client 发往 server ),则不会被 tc 过滤器过滤而进行延时操作。 Page 11
12 . 内核工具 tc 进行网络延时模 整个测试脚本的介绍 拟 为了达到这个目的,构建的 tc 结构树如下所示(已经过测试选择队列): root 1:0 qdisc htb filter 1:1 filter client ip address class server ip address 1:11 1:12 class class 11:0 12:0 delay ?ms delay ?ms 111: 122: qdisc sfq qdisc sfq Page 12
13 .整个测试脚本的介绍 启动 tcp 流工具、监视网络状态工 具 启动 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 Page 13
14 .整个测试脚本的介绍 启动 tcp 流工具、监视网络状态工具 D-ITG 使用中的问题 server 端和 client 端时间同步 与网络提供的时间服务器同步:由于服务器均不能连接外网,失败 两台服务器之间同步: ntp 工具 使用中出现的问题: Udp 流、 tcp 流丢包率不一样 Receive 端 cpu 占用率过高 700%~800% 启动不稳定,在连续 case 测试时有时 ITGSend 不能正常启动 ITGDec 使用方式不是十分了解 Page 14
15 .整个测试脚本的介绍 启动 tcp 流工具、监视网络状态工具 监视网络状态工具 iftop nload ifstat 功能和需要不太符合 sar load runner ntop 都需要图形界面 iptraf 针对测试,需要能够监测网卡经过数据包的源 ip 地址、目的 ip 地址以及流量大 小统计,因此使用 iftop 工具。 Page 15
16 . host port total flow of each connection average flow in past 2s, 10s,40s Page 16
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 占用率 Page 17
18 .整个测试脚本的介绍 数据结果分析 使用 xml 作为数据结果分析的格式 编写 xml 的 schema ,定义 xml 文件的格式规范。 从测试的中间结果数据( client 端、 server 端)中抽取、计算数据。 包括从 client 端的中间结果中提取 throughput ,从 client 端的 top 结果中提取 client 进程占用的 cpu 、 mem ,以及 ssh 远程到 server 端服务器提取 server 进程 占用的 cpu 、 mem 。 将数据整合成 xml 文档。 将 xml 导入 excel 表格, 然后编写程序使 excel 将特定的数据区域自动绘出数据图 线。 Page 18
19 .Page 19
20 .整个测试脚本的介绍 虚拟网卡 bonding 的影响 发现问题 当将在本地服务器上配置好的脚本放到慕尼黑服务器上之后,数据结果较之前性能 下降很多。 Top 命令发现所有的软件中断全部分配到一个 cpu 上,负载严重不均 衡。 可能原因 虚拟网卡 bonding 慕尼黑的 testbed 上面的网卡是用两块物理网卡 bonding 成一块虚拟网卡来使用 的。也许虚拟网卡会对负载均衡产生影响。 在本地机器上搭建虚拟网卡环境,测试各种 bonding 工作模式,并尝试将不同网卡 中断号上的负载分配到不同的 cpu 上( smp_affnity 配置),但是使用 tcpdump 抓 包分析发现,似乎目前的虚拟网卡工作模式的功能并没有非常完善,或者不能适用 于我们测试的特殊环境。 Page 20
21 .实习的感受 做事情头脑要清晰,细心谨慎,考虑全面。编程序时尽量避免等到整个程序跑起来 出问题再回头检查。 对自己的任务应该全力以赴,做事情要负责任,不能推脱。自己要努力成为让人信 任的人。 英语听说能力很重要。 在和别人交流时,要表达清晰,尽量不要胆怯。 善于学习,养成习惯把解决好的问题记在本上,下次再遇到的时候就不必再费力 google 了。 反思:做事情一定要有效率,要善于和别人交流,要对自己有正确积极的自我评 价。 Page 21
22 .Thanks !