Performance Azure Webjob CPU使用率从不超过5%

Performance Azure Webjob CPU使用率从不超过5%,performance,azure,azure-webjobs,webjob,Performance,Azure,Azure Webjobs,Webjob,我有一个非常小的网站,现在几乎什么都不做,我们正在实施webjobs,有时做一些繁重的背景工作,比如加载和处理需要过滤的信息,然后准备在web上显示 在我们的机器上以调试模式运行时,一切都是完美的。如果我将相同的代码放在应用程序中,然后从Azure虚拟机运行,那么相同的代码也可以完美运行,并具有高性能 但是,在使用Azure Webjobs时,Webjob进程的可用CPU使用率从未超过5%。不管我做什么。我已经尝试通过修改批大小和NewBatchThreshold来更改作业配置,但没有任何更改。

我有一个非常小的网站,现在几乎什么都不做,我们正在实施webjobs,有时做一些繁重的背景工作,比如加载和处理需要过滤的信息,然后准备在web上显示

在我们的机器上以调试模式运行时,一切都是完美的。如果我将相同的代码放在应用程序中,然后从Azure虚拟机运行,那么相同的代码也可以完美运行,并具有高性能

但是,在使用Azure Webjobs时,Webjob进程的可用CPU使用率从未超过5%。不管我做什么。我已经尝试通过修改批大小和NewBatchThreshold来更改作业配置,但没有任何更改。问题不在于Azure与队列交互的方式,而在于此后的一些处理限制

我对未来CPU使用的理想escenario是:

  • 10%分配给网站
  • 90%分为两个独立的网络作业
这个问题现在看起来是不可能的,因为我被限制在webjob上CPU使用率的3.5%到5%之间

有什么想法吗


谢谢

您正在运行多个内核吗?我可能错了,但我认为webjob仅限于一个核心,因此如果在4核实例上运行,单个webjob不会超过总CPU利用率的25%,您必须在4核实例上部署4个相同的webjob才能利用所有4核,如果我错了,请有人纠正我though@minwyn谢谢你的评论。你说的很有意思,但我在一个核心实例上运行,看看这是否是问题所在,但问题是,它的涨幅永远不会超过5%。我甚至定义了一个测试规则,当CPU超过10%时进行扩展,但它在单个核心实例中从未进行过扩展。我曾考虑通过创建多个webjob来部署同一任务的多个实例,但这听起来不是一个好的做法,或者至少是一个我喜欢作为功能的做法。@femaramburu我同意部署同一webjob的多个实例听起来不是一个好的做法,已经有人要求改进webjob,使其能够在多个内核上运行,请参见这里的webjob函数中是否使用异步等待模式?我的webjobs与存储帐户有相当多的交互(队列、表blob),它们似乎花费了大部分时间从存储帐户读/写东西。将我的函数切换为异步大大提高了整体性能,CPU使用率也显著提高…@RafalZajac Yes。我用的是等待模式。webjobs与存储交互很多,但仅使用5%的cpu听起来太小了。无论如何,谢谢你。