Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I need help with libvirt(?) problem.

Server specs:

  • ProLiant DL165 G7
  • 2x AMD Opteron(tm) Processor 6128

System:

  • Debian GNU/Linux testing (wheezy)
  • 3.2.0-3-amd64
  • libvirt 0.9.12-5
  • kvm 1:1.1.2+dfsg-2

$ grep processor /proc/cpuinfo | wc -l

16

$ virsh nodeinfo

setlocale: No such file or directory
CPU model:           x86_64
CPU(s):              16
CPU frequency:       800 MHz
CPU socket(s):       2
Core(s) per socket:  4
Thread(s) per core:  1
NUMA cell(s):        1
Memory size:         66114200 KiB

$ virsh capabilities

..
<topology>
      <cells num='4'>
        <cell id='0'>
          <cpus num='4'>
            <cpu id='0'/>
            <cpu id='1'/>
            <cpu id='2'/>
            <cpu id='3'/>
          </cpus>
        </cell>
        <cell id='1'>
          <cpus num='4'>
            <cpu id='4'/>
            <cpu id='5'/>
            <cpu id='6'/>
            <cpu id='7'/>
          </cpus>
        </cell>
        <cell id='2'>
          <cpus num='4'>
            <cpu id='12'/>
            <cpu id='13'/>
            <cpu id='14'/>
            <cpu id='15'/>
          </cpus>
        </cell>
        <cell id='3'>
          <cpus num='4'>
            <cpu id='8'/>
            <cpu id='9'/>
            <cpu id='10'/>
            <cpu id='11'/>
          </cpus>
        </cell>
      </cells>
    </topology>
..

$ virsh vcpupin vm 0 13,12,11,10,9,8,7,6,5

error: Physical CPU 13 doesn't exist.
error: cpulist: Invalid format.

Question?

Why my VM Guests use only first 8 CPUs and next 8 are idling?

$ for host in virsh list | awk '{print $2}'; do virsh vcpuinfo $host; done | grep ^CPU: | sort | uniq

CPU:            0
CPU:            1
CPU:            2
CPU:            3
CPU:            4
CPU:            5
CPU:            6
CPU:            7

Any ideas how to change it?

share|improve this question

1 Answer 1

up vote 0 down vote accepted

This is fast workaround of this problem:

for pid in `ps aux | grep '/usr/bin/kvm' | grep -v grep | awk '{print $2}'`; do taskset -p -c 0-15 $pid; done

But I decided to change operating system to Ubuntu and it works like a charm.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.