我刚接触azure cloud,并且我已经部署了我的第一个工作者角色。
在我的本地系统中,需要30分钟才能完成的过程在azure worker角色上花费了1个多小时。
为了找出这个问题,我访问了工作人员角色的远程桌面。我检查了任务管理器,发现即使没有其他进程在运行,工作者角色进程(WaWorkerHost.exe)也只使用了12%的CPU。如果我在本地系统中运行相同的代码,它将占用24-25%的CPU。
我认为这就是为什么工人角色在我的本地系统中花费了两倍的时间。
我的worker角色的VM大小非常大(8个核心,14336MB)。
我认为由于worker角色上没有其他进程,因此我的进程应该获得更多的CPU使用率。但是我无法从azure门户中找到增加工作者角色进程(WaWorkerHost.exe)的CPU使用率的方法。
请带上这个。
谢谢。
发布于 2019-06-21 21:18:47
仅CPU消耗不足以确定机器是努力工作还是几乎不工作。你的假设"CPU百分比很低,所以机器不忙(足够)“太简单了。您应该考虑更多的资源,如磁盘访问、内存使用和网络访问。
正如您可以想象的那样,创建一个应用程序相对简单,它不会占用您所有的CPU,而会完全冻结您的机器。例如,只要让它从整个磁盘读取和写入文件即可。
编辑:
在第一段中展开:工人角色实际上是做什么的?它是否连接到某种类型的存储?或者可能是内部托管的数据库或文件?它是将消息放入队列还是调用外部服务?
所有这些都可能是Worker角色比本地计算机花费更长时间来完成任务的原因。例如,由于network latency。虽然如果只看CPU,它看起来并不太忙,但它可能会非常忙地等待来自外部资源的答复。
https://stackoverflow.com/questions/56646096
复制相似问题