我正在使用 go aws sdk 将对象放入 s3。上传文件大约需要 1 秒。为了测试并发性,我使用了一个 http 服务器,ab -c10 -n10 http://localhost:8080
处理程序调用了以下代码:
func (service *Service) LogResponseManager(resp gorequest.Response, s3key string) {
uploader := service.S3Manager
defer resp.Body.Close()
params := &s3manager.UploadInput{
Bucket: aws.String("cslogs.sellbrite.com"), // Required
Key: aws.String(s3key), // Required
Body: resp.Body,
ContentType: aws.String("text/plain"),
}
uploader.Upload(params)
}
我正在使用回显服务器来接收请求,如果我在处理程序中只睡 1 秒,那么并行执行所有 10 个请求的时间仅为 1 秒。但是,当上传太多 s3 时,执行 10 个并发请求的时间似乎是串行加起来的,接近 8 秒。go sdk 是否没有同时执行 s3 上传?