问题标签 [azure-batch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1513 浏览

azure - Azure 批处理池不分配节点

我使用“用户订阅”分配模式创建了一个 azure 批处理帐户,以控制我的节点所属的网络。目标是能够为节点可能占用的 IP 集打开一些防火墙。

我之前一直使用“批处理服务”分配模式没有任何问题,但它会导致安全漏洞,因为如果你想批量访问其他服务,你必须将防火墙打开到所有天蓝色。

我面临的问题是,无论我尝试什么(无论是自动缩放公式还是只是固定的目标节点数),我都没有将任何节点分配给我的池。

我得到的唯一消息是:AllocationTimedout: Desired number of dedicated nodes could not be allocated as the resize timeout was reached.

我检查了超时(默认值设置为 10 分钟),我希望 azure 能够在不到 10 分钟的时间内创建节点(在“批处理服务”模式下,它要快得多)。

我还检查了我的虚拟机配额,它足以创建至少一个节点(它可以创建更多)。

我面临的问题是我认为超时不是问题。这是某些东西在后台不起作用的结果。

我检查了批处理的活动日志,可以看到错误:Write Deployments 和 Write VirtualMachineScaleSets。第一个似乎与第二个和第二个状态有关:

我在这里想念什么?节点名称由 Azure 批处理给出,而不是由我给出,而且它们在标准“批处理服务”分配模式下确实很长。

0 投票
2 回答
499 浏览

azure - Azure Batch 任务中的本地 VM 存储

对于我的任务,我使用本地持久数据。到目前为止,我已经成功地用于Path.GetTempPath()获取临时文件夹并在那里保存数据并执行一些计算。临时文件夹位于不够大的系统驱动器上(大约 30GB)。我正在使用带有 1000GB 硬盘的 VM。

我想将数据写入大 C:\ 驱动器,但它会引发异常: Access to the path 'C:\whatever_the_path_is' is denied.当我尝试访问它时。

我看到任务在PoolNonAdmin[some-digits]显然没有足够权限的用户下运行。

是否有任何特殊 API 可将本地存储与 Azure Batch 任务一起使用?

编辑:我很熟悉,%AZ_BATCH_NODE_SHARED_DIR%但由于特定原因我不能使用它。

0 投票
1 回答
564 浏览

c# - 在 Azure Batch 中运行 Azure 数据工厂活动时,应如何处理异步性

背景

我在某种程度上简化了这种情况,但这是普遍问题。

我正在使用 Azure 数据工厂将自定义 API 中的数据提取到 Azure 数据仓库中的表中。我正在使用 IDotNetActivity 运行调用 API 并将数据加载到数据仓库的 C# 代码。该活动在 Azure Batch 中运行。

在活动本身中,在调用自定义 API 之前,我从 Azure Blob 存储中的文件加载人员列表。然后,我为文件中的每个人调用自定义 API。这些调用一个接一个地依次进行。问题是这种方法耗时太长。文件大小可能会增加,因此所花费的时间只会变得更糟。

我试图提高性能的事情

  • 使 API 调用异步并以 3 个为一组调用它们。奇怪的是,这运行得更慢。看起来批处理不能很好地处理异步/等待。
  • 我们看到的其他奇怪之处是 MoreLinq 的 Batch 命令根本不起作用。我已经检查了源代码: https ://github.com/morelinq/MoreLINQ/blob/master/MoreLinq/Batch.cs 。这使用了 yield return 但我不知道为什么这不起作用,或者即使它与 async / await 问题有关。

主要问题

Azure Batch 是否支持异步/等待?

进一步的问题

  • 如果 Azure 不支持 async / await 那么解决此问题的更好方法是什么?即使用作业管理器并启动更多节点。
  • 谁能解释一下为什么 MoreLinq 的 Batch 在 Azure Batch 中不起作用?以下是受影响代码的片段:

    /li>
0 投票
1 回答
226 浏览

azure - Windows command: Set exit code of chained commands based on first command

i have this case scenario (this is command that is executed on Azure Batch task):

What i need is to exit this whole command with exit code from MainApp.exe as Util.exe exits always with 0 code.

I have tried something like this with different brackets positions and nothing have worked as needed.

Thank you for help

0 投票
1 回答
102 浏览

azure-batch - 任务和作业统计 - WallClockTime 和 ExecutionInformation

我正在尝试收集有关我提交到 Azure Batch 池的云任务和作业的一些统计数据和性能指标。为此,我使用了内置的 TaskExecutionInformation 和 TaskStatistics 类,但我对如何通过这些类计算某些指标感到困惑。具体来说,我想知道我的每个任务执行需要多长时间,所以我检查了 task.statistics 中内置的 wallclocktime,以及 task.ExecutionInformation 中内置的开始和结束时间之间的差异,这两个是不同的。

  1. 任务统计中的挂钟时间是如何计算的?又为什么和通过任务执行信息得到的开始时间和结束时间的时间跨度差不同呢?

  2. 此外,我注意到对于相同的任务处理,任务执行的挂钟时间有很大差异(在我的场景中从 0.6 秒到 21 秒)。什么可能导致如此大的差异?

谢谢!

0 投票
2 回答
590 浏览

python - 如何使用 Python API 在 Azure 批处理中获取作业和任务统计信息?

我最近开始使用 Azure 批处理,发现我无法获取给定作业的统计信息,尽管存在相应的字段。

我正在使用 Python API,当我轮询工作信息时,该stats字段始终为无。该类JobListOptions可以与该job.list方法一起使用,但文档不是很有用。

通过BatchExplorer示例代码,我发现类的expand字段JobListOptions可能需要设置为,stats但我仍然不确定,因为我仍然没有从 Python API 获取统计信息。

0 投票
1 回答
781 浏览

azure-batch - 为 Azure Batch 打包应用程序

我无法打包应用程序以使其在 Azure Batch 计算节点中运行。我正在使用带有 VM 配置的用户订阅,所以我不能使用应用程序包。我一直在上传我的可执行文件和 dll 作为资源文件。目前,我有一个需要很多dll的任务,但是我似乎无法通过Azure门户上传超过10个资源文件。

  1. 在不使用内置应用程序包的情况下,打包应用程序及其所有必需的 dll 以使其在批处理计算节点上运行的最佳方法是什么?除了遍历所有 dll 并将它们作为资源文件手动添加之外,还有其他方法吗?

  2. 如何解决每个任务应用程序 10 个资源文件的限制?

谢谢!

0 投票
1 回答
714 浏览

azure-batch - 批处理环境变量返回 null

我正在尝试使用批处理服务定义的环境变量,但我不断收到 null 错误。与我在示例中看到的类似,我正在尝试获取通过 Azure 门户创建的作业的 jobID,如下所示:

但 jobID 返回 null。为什么这样?我在这里想念什么?

谢谢!

0 投票
1 回答
861 浏览

azure-batch - 具有 VM 配置的应用程序包

我正在尝试按照本文中描述的方式使用应用程序包

但我一直收到一个错误说

application path not found.

有什么想法可能是错的吗?或者

应用程序包如何在后台工作,这可能有助于我调试错误?

编辑:我正在尝试添加一个特定于我的作业管理器任务的应用程序包。我通过 Azure 门户将包添加为 zip 文件,名称为 JobManagerTask 和版本 1.0。这是我用来引用它的代码:

0 投票
1 回答
862 浏览

c# - 如何以编程方式获取 Azure Batch 节点中的核心数?

我们使用 Azure Batch 服务来运行一些计算引擎代码,并在创建池时指定 VM 的大小:

注意:targetDedicatedComputeNodes当前是硬编码的,但是一旦解决了这个问题就会改变。

使用它,我们决定虚拟机的大小,在这种情况下,恰好有 16 个内核。

问题是,在执行此代码之前,我们需要检查当前存在的池并计算(或者最好是简单地读取)当前正在使用的内核数量,以了解我们何时可以创建另一个具有所需内核数量的池(因此节点)。

一个例子是,如果我们有 160 个核心的限制(因此 10 个节点具有此配置)并且我们想要创建一个自己使用 120 个核心的池,然后在该池创建并开始执行之后,我们有另一个池想要被创建。这个新池还需要 120 个核心,因此我们需要能够告诉新池等待,因为没有足够的核心来制造它。

我找到了一种ComputeNode使用以下代码获取正在使用的 s 数量的方法:

不过这里的问题是ComputeNodes 没有任何属性可以告诉我它拥有/正在使用多少个内核,而且我还没有找到任何类似 ManagementClient 的类或任何其他类或方法来获取给定池或所有池中使用的核心,或单个ComputeNode分配给它的核心数量。

或者,我还没有找到一种方法来根据我们在创建新池时使用的属性来获取分配给每个内核的数量。ComputeNodevirtualMachineSize

对此的任何帮助将不胜感激,因为我宁愿获得代码中的核心数量,以防止微软未来可能做出的任何大小更改,virtualMachineSize因为否则我将不得不根据我们指定的 VM 大小对核心数量进行硬编码.

注意:似乎有一个Powershell CMDlet可以同时获取给定位置中所有池的当前使用的核心和可用核心的限制,并且 Azure 门户池刀片显示一个表格,其中包含一个报告当前使用的核心的可选列. 所以我认为这在 C# 中也应该是可能的。

如果我可以提供任何其他信息,请告诉我。

谢谢。