大家好,对于软件包的下载服务,我编写了接口,进行了粗略的测试:
下载文件大小: 11GB

首先我先在本机上进行了测试:

  1. 下载第一个文件, 本机速度可以达到 46MB/s
  2. 随着下载数增加到6个,系统/chrome对TCP连接数应该有限制,6个以后无法新增下载, 此时速度稳定10MB/s左右

接着我使用了同一局域网的电脑进行了测试:

同样打开了6个下载链接:

  1. 本机电脑下载速度骤降到 1MB/s

image.png

  1. 局域网的另外一台电脑,平局下载速度也在 1MB/s

image.png

此时的资源占用:

image.png
image.png

可以观察到, Nodejs的内存占用还算比较乐观,用了102MB

总结:

本次的测试用了两台机子进行了简单的测试模拟,我担心的问题有如下:

  1. 软件安装包过大,下载的时候接口会长时间占用服务器资源
  2. 多用户同时下载的情况和一个用户同时安装多个软件的情况
  3. 网络不稳定

总的来说, 我认为这种大文件的下载, 直接由我编写接口用文件流下载的方式,风险还是比较大。这已经超出了我一个普通前端的能力范围。具体的可能还需要灰灰和伟萌进行更专业的评估才能得出更准确可靠的结论。如果大家都认为这样没问题,那可以去做。当然我希望有更好的建议。