go语言分布式文件传输系统设计

系统架构

基于对锁和多道程序设计的学习,本周编码实现了C/S 架构的文件传输系统,图Figure1 为系统架构,在1 主3 从的虚拟机集群部署程序。Worker 节点启动TCP 监听程序监听固定端口;Master 节点则发起TCP 连接请求,建立连接后发送文件名,待Worker 节点确认后即可发送文件数据。程序中设定收/发缓冲区为4096 字节切片,对应centos 系统默认的Blocksize。使用简单的取余运算实现文件传输goroutine 的均匀调度,并使用互斥锁保证同时只有一个goroutine 与Worker 节点监听端口建立连接。
在这里插入图片描述

实验设计与结果

衡量服务器程序性能的标准有吞吐量、响应时间、并发量等指标,在实验过程中主要测试响应时间,包括平均响应时间和百分位数。保持传输文件大小为64KB,逐步增大每个Worker 节点并发接收的文件个数(流入度),得出测试结果如Figure2。当Worker 节点入度为1000 时,平均响应时间为792.9ms,95 百分位数(TP95) 为1454.4ms,这表示超过95% 以上的文件传输都在1454.4ms时间内返回。随着入度增加,等待时延相应变长,平均响应时间持续上升。
在这里插入图片描述
控制Worker 节点入度为1000,开展文件大小从4KB 到1024KB 的文件传输实验,结果如Figure3 所示。平均响应时间从663.8ms 增大到5941.3ms,TP95 则从1143.7ms增长到15950.1ms。
在这里插入图片描述

源代码链接

点我-欢迎学习交流

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值