栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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。

源代码链接

点我-欢迎学习交流

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693380.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号