GFS一次lookup消耗网络流量分析
来源:互联网 发布:图片水印制作软件 编辑:程序博客网 时间:2024/05/17 02:53
1.数据链路层所占字节数固定为 :14B(详细内容略)
2.ip协议层所占字节数固定为: 28B(详细内容略)
3.TCP协议层所占字节数固定为: 32B(详细内容略)
4.RPC协议格式分为两种:一种是call,另一种是replay
call: 所占字节数固定为 100B,详细结构及所占字节数如下:
Fragment header: 4B
XID: 4B
Message Type: 4B
RPC Version: 4B
Program: 4B
Program Version: 4B
Procedure: 4B
Credentials: 64B
Verifier: 8B
repaly:所占字节数固定为 28B,详细结构及所占字节数如下:
Fragment header: 4B
XID: 4B
Message Type: 4B
Replay state: 4B
Verifier: 8B
accept state: 4B
5.GlusterFS协议格式和RPC的call和replay协议相对应,如果是call对应的GlusterFS协议所占字节数为:332B + 要lookup的目录的字节数(如果目录的字节数为单数则补1位),如果是replay对应的GlusterFS协议所占字节数为320B或212B;
call对应GlusterFS详细结构如下:
GFID: 16B
Parent GFID: 16B
Flags: 4B
Basename: (4+lookup的目录的字节数+目录的字节数为单数?1:0)B
目录扩展属性信息 292B
目录扩展属性信息包括:glusterfs.parent-entrylk、glusterfs.entrylk-count、glusterfs.inodelk-count、gfidless-lookup、trusted.afr.gfs-ljl-client-2(与备份数有关)、trusted.afr.gfs-ljl-client-1、trusted.afr.gfs-ljl-client-0、glusterfs.content、[RPC-roundup bytes: 3]共8个。
replay对应GlusterFS详细结构如下:
Return value: 4B
Errno: 4B
Pre-operation parent IATT 100B
Post-operation parent IATT 100B
目录扩展属性: 112B (如果没有扩展属性返回为4B)
目录扩展属性信息包括:glusterfs.inodelk-count、glusterfs.entrylk-count、glusterfs.entrylk-count、[RPC-roundup bytes: 1]
6.计算例子:
6.1 如果lookup "xmail_dedup"目录时,glusterfs所在服务器对一个brickserver要传输的字节数(对应的RPC格式为call)。
计算如下:"xmail_dedup" 字符串的字节数为11B,是单数需要补1,变为12B
14 + 28 + 32 + 100 + 332 + 12 = 510B
6.2 brickserver 返回给glusterfs所在服务器要传输的字节数(对应RPC格式为replay)
14 + 28 + 32 + 28 + 320 = 414B
6.3 如果一个集群有282个brickserver,则需要传输的总字节数为:
510*282B = 143820B
6.4 我们真实需要的数据传输的字节数
假设需要传输的字节只有要扫描目录的路径("xmail_dedup"共11个字节):(66+11)*282 = 21714B
6.5 GFS传输的过多的垃圾数据
143820 - 21714 = 119K
6.6 如果lookup的目录深度为5层,则需要 119*5 = 595K的多余网络通信。
2.ip协议层所占字节数固定为: 28B(详细内容略)
3.TCP协议层所占字节数固定为: 32B(详细内容略)
4.RPC协议格式分为两种:一种是call,另一种是replay
call: 所占字节数固定为 100B,详细结构及所占字节数如下:
Fragment header: 4B
XID: 4B
Message Type: 4B
RPC Version: 4B
Program: 4B
Program Version: 4B
Procedure: 4B
Credentials: 64B
Verifier: 8B
repaly:所占字节数固定为 28B,详细结构及所占字节数如下:
Fragment header: 4B
XID: 4B
Message Type: 4B
Replay state: 4B
Verifier: 8B
accept state: 4B
5.GlusterFS协议格式和RPC的call和replay协议相对应,如果是call对应的GlusterFS协议所占字节数为:332B + 要lookup的目录的字节数(如果目录的字节数为单数则补1位),如果是replay对应的GlusterFS协议所占字节数为320B或212B;
call对应GlusterFS详细结构如下:
GFID: 16B
Parent GFID: 16B
Flags: 4B
Basename: (4+lookup的目录的字节数+目录的字节数为单数?1:0)B
目录扩展属性信息 292B
目录扩展属性信息包括:glusterfs.parent-entrylk、glusterfs.entrylk-count、glusterfs.inodelk-count、gfidless-lookup、trusted.afr.gfs-ljl-client-2(与备份数有关)、trusted.afr.gfs-ljl-client-1、trusted.afr.gfs-ljl-client-0、glusterfs.content、[RPC-roundup bytes: 3]共8个。
replay对应GlusterFS详细结构如下:
Return value: 4B
Errno: 4B
Pre-operation parent IATT 100B
Post-operation parent IATT 100B
目录扩展属性: 112B (如果没有扩展属性返回为4B)
目录扩展属性信息包括:glusterfs.inodelk-count、glusterfs.entrylk-count、glusterfs.entrylk-count、[RPC-roundup bytes: 1]
6.计算例子:
6.1 如果lookup "xmail_dedup"目录时,glusterfs所在服务器对一个brickserver要传输的字节数(对应的RPC格式为call)。
计算如下:"xmail_dedup" 字符串的字节数为11B,是单数需要补1,变为12B
14 + 28 + 32 + 100 + 332 + 12 = 510B
6.2 brickserver 返回给glusterfs所在服务器要传输的字节数(对应RPC格式为replay)
14 + 28 + 32 + 28 + 320 = 414B
6.3 如果一个集群有282个brickserver,则需要传输的总字节数为:
510*282B = 143820B
6.4 我们真实需要的数据传输的字节数
假设需要传输的字节只有要扫描目录的路径("xmail_dedup"共11个字节):(66+11)*282 = 21714B
6.5 GFS传输的过多的垃圾数据
143820 - 21714 = 119K
6.6 如果lookup的目录深度为5层,则需要 119*5 = 595K的多余网络通信。
- GFS一次lookup消耗网络流量分析
- 一次pga 异常消耗分析
- 网络流量分析/网络流量监测
- GFS架构分析
- GFS架构分析
- 网络流量分析工具Windump
- 借助Sniffer分析网络流量
- 网络流量分析技术 科普
- linux-3-网络流量分析
- 网络流量分析netflow
- Google GFS文件系统深入分析
- 检查究竟哪个程序消耗本地mac的网络流量
- cpu性能消耗分析
- 文件IO消耗分析
- linux 资源消耗分析
- 时间消耗分析-gprof
- 文件io消耗分析
- 分析java CPU消耗
- 程序猿想结婚,苦于积蓄问题;已婚朋友能否晒晒结婚花费?
- 9月17日
- 我们怎样学会放弃设置默认的font-size而拥抱em
- 请大牛指点一下,万分感激。android rom相关
- 【Leetcode】Search in Rotated Sorted Array
- GFS一次lookup消耗网络流量分析
- DAFAWEFA大沙发我额嘎斯飞洒福娃俄方嘎斯阿萨德发我的访问啊发送方
- error: undefined reference to 'vtable for android::DongleUsbHost'
- JAVA中获取当前系统时间
- 市人民法院触摸屏开庭信息系统软件
- android笔记--保存和恢复activity的状态数据
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 高级JS教程1——变量
- android:password is deprecated: Use inputType instead