【发布时间】:2015-07-04 08:46:34
【问题描述】:
我正在尝试设置上传到谷歌云存储,通常我会同时上传大约 200 个大小为 5 到 10kb 的文件。当我使用与本地 ceph s3 兼容存储相同的代码时,上传时间几乎不超过 2-3 毫秒(这很明显),当上传到类似 google s3 的存储时,如果我有 3 到 5 个线程,上传时间是一个文件通常在 200 毫秒内。但是,一旦达到不错的并发性,上传时间就会线性增加。
前 10 个文件在 200 毫秒内上传,接下来的 10 个在 5 秒内上传,接下来的 10 个在 10 秒内上传,以此类推,直到达到 60 秒。 如果我使用多个进程 - 结果是一样的。我正在使用 nodejs 通过https://github.com/Automattic/knox 模块执行上传,池已关闭,因此它不是套接字排队的问题。我已经测试了将 maxSockets 设置为 500 左右的启用池,并没有多大帮助。使用 sockstat 检查时,我最多只能同时打开 40 个与谷歌服务器的连接,即使我会使用 16 个进程同时启动超过 500 到 1000 个上传。这非常奇怪。
谁能帮我诊断问题?谷歌允许从单个 IP 地址打开的连接是否有限制?
我确定我的代码没有问题,因为之前我将它与本地 s3 存储一起使用(本地我的意思是我有一个由 20 台机器组成的集群和磁盘,即使它在同一个数据中心如果阻塞操作或缺少套接字或任何类似问题存在问题,我也会看到上传时间增加,但使用 ceph 时没有这样的事情)。我尝试迁移到谷歌的原因是管理即将死去的硬盘非常烦人,而且这种情况经常发生
【问题讨论】:
标签: node.js file-upload google-cloud-storage