我将此更多地发布为'探测'问题和计划扩大讨论,以防一些兴趣出现。这背后的原因是,根据我的经验,azure-ml
(及相关)的SO社区仍在发展,反馈不多 - 但我很乐意帮助它变得更强大。
我的情况如下:我在Azure ML中进行了一项实验,它在R
模块中完成了所有工作。我将其作为网络服务发布,并设置了“最大并发呼叫数”。滑块到10 - 我相信我保证,我的网络服务最多会有10个实例随时启动并运行,以满足请求(如果我错了请纠正我)。
现在,我试图通过向我的webservice发出10个并行调用来进行一些性能测试,但是会得到意想不到的结果......
我正在尝试运行负载测试并记录每个实际进入的位置(哪个实例)。我的想法是在一定的最大并发呼叫数= X的情况下,了解这些调用如何实际由负载均衡器分配给实例。我这样做是通过调用" bot.whatismyipaddress.com& #34;来自R
脚本。以下是代码的重要内容:
library(rjson)
machine.ip <- readLines("http://bot.whatismyipaddress.com/", warn=F)
result$MachineIP <- machine.ip
此外,我使用来自Web服务RRS帮助页面的示例R
代码,最多可以向我的Web服务发出70个(连续)调用。此示例代码将一些信息返回到控制台:我的Web服务的结果以及有关调用所通过的主机名的一些信息。这是一个示例:
* Hostname was NOT found in DNS cache
* Trying 40.114.242.9...
* Connected to europewest.services.azureml.net (40.114.242.9) port 443 (#0)
我面临的困难是我无法唯一识别我的网络服务的不同实例。来自呼叫控制台的信息(第二个代码段)通常显示的内容与内部的IP地址不同 - R
- 代码日志(result$MachineIP
)...
有人可以指出我做错了什么,我怎样才能唯一地识别出为这些电话提供服务的不同实例?任何帮助将非常感激。谢谢!
P.S。我也试过了this,但是当我从R
脚本中调用它时,第一个apporach不起作用,并且我使用了第二个apporach的修改版本(一个建议没有用)。 <{3}}也是Azure论坛上的Here,以防有人感兴趣。
如果有人可以提供帮助或指出我的某些信息来源,我将非常感激!
答案 0 :(得分:0)
感谢Azure ML论坛上的一些人解决了这个问题 我将为在这里寻找答案的任何人发布答案......
简短的回答是否定的,这是不可能的。更详细的版本是:
“在R脚本中,您无法识别内部AzureML IP地址或唯一的Web服务实例。当您从R脚本到外部URL进行外部网络调用时,该URL将看到一个AzureML公共虚拟IP作为源IP。这些是负载平衡器的IP,而不是物理上运行Web服务的机器.AznML在后端动态分配R引擎的实例,处理故障,并使用多个节点来运行Web服务可用性。给定Web服务的确切布局不能以编程方式发现。“
这也是原始讨论的link。