我创建了一个 WebJob 项目来将图像从 Azure 备份到 Amazon,该项目使用 BlobTrigger 属性作为方法中的第一个参数
public static async Task CopyImage([BlobTrigger("images/{name}")] ICloudBlob image, string name, TextWriter log)
{
var imageStream = new MemoryStream();
image.DownloadToStream(imageStream);
await S3ImageBackupContext.UploadImageAsync(name, imageStream);
}
然后我在文档 How to use Azure blob storage 中了解到 BlobTrigger 是基于“尽力而为”的基础上的。并将其更改为 QueueTrigger。
两者都工作得很好:-)所以这不是问题而是问题。由于我部署了更改,WebJob 的 CPU 和内存使用情况如下
有人可以解释一下内存和 CPU 使用率下降的原因吗?数据导出也下降了。
最佳答案
非常有趣。
我认为你是唯一能回答这个问题的人。
对 blob 和队列版本进行远程分析,看看哪种方法消耗了 CPU 时间:
https://azure.microsoft.com/en-us/blog/remote-profiling-support-in-azure-app-service/
对于内存消耗,您可能需要获取内存转储:
https://blogs.msdn.microsoft.com/waws/2015/07/01/create-a-memory-dump-for-your-slow-performing-web-app/
关于Azure Web作业 : BlobTrigger vs QueueTrigger resource usage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793391/