Don*_*o P 6 .net amazon-s3 amazon-web-services aws-sdk aws-sdk-net
我们使用Amazon S3存储多达500K的数据.我们在EC2实例上安装了一个.NET 4.0 Web服务,它使用500K数据调用PutObject.
问题是,当我们为这个服务分别向S3发出100多个同时调用(使用唯一的S3密钥),并且EC2实例CPU达到100%时.我们对Web服务进行了一些分析,结果表明,99%的处理时间是由AmazonS3Client.PutObject方法完成的.
我们已经尝试将S3客户端配置为使用HTTP(而不是默认的HTTPS),并且还使用S3密钥生成方案进行了一些操作,但没有任何帮助.这篇文章 亚马逊S3 PutObject很慢也没有帮助.
我们的S3密钥架构是:"111_ [递增ID] .txt"
如果我们使用较短的数据(例如小于1K),则不会发生这种广泛的CPU使用.
您能否为我们提供一些指导,以提高CPU性能或在哪里寻找?
这是该调用的源代码:
string fileName = "111_" + Id + ".txt";
using (AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(RegionEndpoint.XXXX))
{
try
{
PutObjectRequest request = new PutObjectRequest();
request.WithContentBody(dataRequest.Base64Data)
.WithBucketName(bucketName)
.WithKey(fileName);
S3Response response = client.PutObject(request);
response.Dispose();
}
catch (AmazonS3Exception amazonS3Exception)
{
//Handle exceptiom...
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我会尝试 TransferUtility 更高级别的类,而不是低级别的 PutObject 调用。http://docs.aws.amazon.com/sdkfornet1/latest/apidocs/html/T_Amazon_S3_Transfer_TransferUtility.htm
| 归档时间: |
|
| 查看次数: |
811 次 |
| 最近记录: |