如何在 ESXi 5.5.0 控制台上修改 CPU limit/reservation?

How do I modify CPU limit/reservation on the ESXi 5.5.0 console?

我意识到我可以通过单击修改设置 -> 资源 -> CPU 来修改 vSphere 客户端中 VM 的资源,然后移动限制和预留的滑块。

我需要做的是通过 SSH 或直接在 ESXi 主机控制台上修改这些值。

我已经在网上四处寻找这个问题,但每个人都只是指向 vSphere Client 或 Web 客户端来执行操作。

在这种情况下,我使用的是 ESXi 5.5.0,我一直在搜索 esxcli 和 vim-cmd 参数和文档,但无济于事。我也一直在查看 esxcfg 命令和 vmk 命令。

我也知道 pyVmomi,但我也没有找到解决方案。

有谁知道通过 ESXi 主机命令行工具或至少 pyVmomi 或必要时甚至是 powercli 设置 CPU limit/reservation 的方法。

您希望使用 reconfigure 方法修改 VM 的配置规范。这些属性可以位于 ResourceAllocationInfo 对象中:https://pubs.vmware.com/vsphere-6-5/index.jsp?topic=/com.vmware.wssdk.apiref.doc/index.html&single=true

这是配置内存预留的 pyvmomi 示例:

from task import WaitForTask
memReserve = vm.config.hardware.memoryMB * 2
spec = vim.vm.ConfigSpec()
spec.memoryAllocation = vim.ResourceAllocationInfo(reservation=memReserve)
WaitForTask(vm.Reconfigure(spec))

对于 PowerCLI,您可以使用 Set-VMResourceConfiguration cmdlet:https://code.vmware.com/docs/7788/cmdlet-reference/doc/Set-VMResourceConfiguration.html

#pyvmomi 示例修改现有虚拟机的 vcpu 和内存计数:

# connect this thing
args = get_args()
si = SmartConnect(
    host=args.host,
    user=args.user,
    pwd=args.password,
    port=args.port)
# disconnect this thing
atexit.register(Disconnect, si)

vm = None
content = si.RetrieveContent()
vm = get_obj(content, [vim.VirtualMachine], args.vm_name)

cpu = args.vcpu
memoria = args.memory
config = vim.vm.ConfigSpec()
config.numCPUs = cpu
config.memoryMB = (memoria * 1024)

limite_memory = vim.ResourceAllocationInfo()
limite_memory.limit = (memoria * 1024)
config.memoryAllocation = limite_memory

task = vm.ReconfigVM_Task(spec=config)
wait_for_task(task)