因此,我在获取 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 参数导致了我的问题。