Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 从Lambda更新AWS S3文件时出现可怕的性能峰值_Amazon Web Services_Performance_Amazon S3_Aws Lambda - Fatal编程技术网

Amazon web services 从Lambda更新AWS S3文件时出现可怕的性能峰值

Amazon web services 从Lambda更新AWS S3文件时出现可怕的性能峰值,amazon-web-services,performance,amazon-s3,aws-lambda,Amazon Web Services,Performance,Amazon S3,Aws Lambda,我从JavaScript Lambda内部调用S3.putObject,更新小JSON文件2->10K。 通常性能正常-通常在100ms以下。然而,我偶尔会遇到10-20秒的令人担忧的尖峰。我在几分钟的范围内出现了一些尖峰。到目前为止最糟糕的是587秒 有人见过类似的东西吗 看起来问题不是S3特有的,而是由网络故障和默认SDK Http超时设置为120秒引起的。修复方法是设置maxRetries和httpOptions,如下所示 import aws from "aws-sdk&quo

我从JavaScript Lambda内部调用S3.putObject,更新小JSON文件2->10K。 通常性能正常-通常在100ms以下。然而,我偶尔会遇到10-20秒的令人担忧的尖峰。我在几分钟的范围内出现了一些尖峰。到目前为止最糟糕的是587秒

有人见过类似的东西吗

看起来问题不是S3特有的,而是由网络故障和默认SDK Http超时设置为120秒引起的。修复方法是设置maxRetries和httpOptions,如下所示

import aws from "aws-sdk";
aws.config.logger = console;
const config = { 
  maxRetries: 5, 
  httpOptions: { timeout: 4 * 1000, connectTimeout: 2 * 1000 } 
};
const S3 = new aws.S3(config);

另请注意,设置记录器会导致将时间和重试次数写入Cloudwatch日志。

您如何衡量这一点?给定Lambda调用的持续时间?记录对S3.putObject()的调用。在调用之前和之后执行Date.now(),并将差异记录在控制台日志中。然后过滤Cloudwatch日志。只是想一想——如果你连续快速更新10k个文件,你可能达到每秒1k个对象的速率限制。如果没有看到失败,那么重试可能会导致额外的延迟。如果是这样的话,有一种方法可以修复它…为JSON S3对象使用不同的前缀。理想情况下,每个前缀都指向不同的分区,每个分区都有自己的速率限制。希望我没有错。:)