2017-06-14 41 views
0

如果正在搜索的虚拟机不存在,返回输出的延迟大约为一分钟。如果正在搜索的虚拟机确实存在,则延迟大约为两秒。我知道我正在达到暂停价值,但是有没有更快的方法可能导致搜索失败?我们有非常大的vSphere环境,这样的事情在实验室中运行良好,但PROD;)pyvmomi中的getobject超时

def getobject(vimtype, name): 
    obj = None 
    container = content.viewManager.CreateContainerView(content.rootFolder, vimtype, True) 
    for c in container.view: 
     if c.name == name: 
      obj = c 
      break 
    return obj 

vm = getobject([vim.VirtualMachine], "vm name") 

print(vm) 

回答

0

我不知道是出于什么目的正是你所使用pyVmomi(网络API,GUI,CMD工具), 但请注意,您必须考虑通过其UUID搜索VM的选项,即使环境具有数千个VM,该UUID也会大约需要1-2秒。

当你迭代超过1000个虚拟机并按名称搜索特定的虚拟机时,你无法逃避等待的时间。

这就好像您将不会对1000个数字进行排序,并且您正在搜索数字658,谁知道该数字在哪里,以及数组何时增长,时间也在增长。

有通知本代码:

Searching for VM by UUID