1

因此,我在获取 100,000 多个域的 aws 批处理上运行脚本。

  • 该脚本在 docker 容器中运行。
  • 这些域是随机的并且在一个 redis 队列中。
  • 该脚本从队列中拉出 20,000 个域,对其进行处理,然后将结果再次写入 redis。

当我在我启动的 EC2 实例上运行脚本时,我得到了。

AMI: Custom
EBS Optimized: True

Time Elapsed : 2007.7330884933472
Good Domains : 53517
Processed Domains: 240000

当我在批量启动的 EC2 实例上运行它时,我得到:

AMI: Amazon Linux AMI 2017.03.e x86_64 ECS HVM
EBS Optimized: False

Time Elapsed : 2313.34757232666
New Domains : 51243
Processed Domains: 400000

AWS 批处理启动的实例是否会限制我的连接?因为我使用的是 Docker,所以除了带宽问题之外,我想不出为什么结果会有所不同。Docker 镜像存储在 ECS 中并拉下,然后运行脚本。

我已经在数百万个随机域上运行了这个测试,结果是相同的,所以从统计学上讲,它也与域的抽样无关。此外,在我启动该实例与批处理的实例上,良好的域率是 2 倍。

更新 1:差异,EBS 是 True 和 False 。但我似乎无法用 AWS 批处理来改变它。

更新 2:为具有较低规格的机器测试了 EBS False,但仍然无法解释较低的网络性能。也许它的AMI?

更新 3:我测试了 AMI,这可能是批量使用的 ami-c6f81abe 的问题。还不知道为什么。

更新 4:原来是 jobDefinition 上的 ulimit 参数导致了我的问题。

4

0 回答 0