Virtualization
Cloudstack VM 使用比限制更多的 CPU
我有一個具有以下配置的私有 cloudstack 雲:
主機伺服器:
- Ubuntu 14.04
- KVM 管理程序
- 2x 2400 MHz CPU(amd athlon 64 X2 雙核處理器 4600+)
虛擬機:
- 1x 500 MHz CPU(僅限 cloudstack 使用 500mhz)
- Ubuntu 14.04
當我將 vm 與
stress
實用程序一起使用到 100% 時,主機的 cpu 顯示使用率為 50%。所以 vm 正在使用主機的一個完整的 cpu 核心。這是cloudstack的錯誤嗎?也許是KVM?
更新
這是cloudstack生成的vm配置:
<domain type='kvm'> <name>i-4-118-VM</name> <uuid>0c795c99-5bab-46f8-a321-71e3e398036b</uuid> <description>Ubuntu 14.04 (64-bit)</description> <memory unit='KiB'>512000</memory> <currentMemory unit='KiB'>512000</currentMemory> <vcpu placement='static'>1</vcpu> <cputune> <shares>500</shares> </cputune> <resource> <partition>/machine</partition> </resource> <sysinfo type='smbios'> <system> <entry name='manufacturer'>Apache Software Foundation</entry> <entry name='product'>CloudStack KVM Hypervisor</entry> <entry name='uuid'>0c795c99-5bab-46f8-a321-71e3e398036b</entry> </system> </sysinfo> <os> <type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type> <boot dev='cdrom'/> <boot dev='hd'/> <smbios mode='sysinfo'/> </os> <features> <acpi/> <apic/> <pae/> </features> <cpu> </cpu> <clock offset='utc'> <timer name='kvmclock'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm-spice</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/mnt/a5bb6304-61f7-3d9e-9706-1f447a6a5fdb/af0c4ab6-aaad-4990-9046-da6ac83a575f'/> <target dev='vda' bus='virtio'/> <serial>af0c4ab6aaad49909046</serial> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw' cache='none'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='usb' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='0' model='pci-root'/> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <interface type='bridge'> <mac address='06:0b:00:00:00:15'/> <source bridge='cloudbr0'/> <bandwidth> <inbound average='25600' peak='25600'/> <outbound average='25600' peak='25600'/> </bandwidth> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <input type='tablet' bus='usb'/> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' listen='10.0.0.11' passwd='-'> <listen type='address' address='10.0.0.11'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='none'/> </devices> <seclabel type='none'/> </domain>
我希望有人能提供幫助或有想法!
控制 CPU 使用率的來賓 XML 中唯一的內容是 <shares>500&;lt;/shares>。這並沒有做你可能認為它正在做的事情。“共享”只是訪客的*相對權重/優先級,與其他程序有關。*例如,如果您在主機上有 2 位來賓,其中一位的股份價值為“500”,而一位的股份價值為“100”,那麼第一個來賓將獲得與第二個來賓相同的 CPU 時間量的 5 倍。
如果您想對 CPU 使用設置絕對上限,例如說主機 CPU 的 50%,那麼您需要使用
<period>
and<quota>
設置。例如 1000000 的周期和 500000 的配額,將限制每個 vCPU 僅使用主機 CPU 的 50%。