Eu tenho um servidor de aplicativos da web executando o Ubuntu 12.04 como convidado KVM.
O que eu vi é que, mesmo sob carga pesada, apenas um núcleo está sendo usado extensivamente. Não é um problema do aplicativo não ser multi-threaded. Estamos executando nginx
e php-fpm
nesses servidores e eu testei no Cent-OS que esses aplicativos são executados em todos os núcleos quando estão muito carregados.
Aqui estão os detalhes:
/usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 20480 -smp 6,sockets=6,cores=1,threads=1 -name db1 -uuid 02af7f56-16ea-76cc-81f8-b5fa24993843d6 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/db1.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -drive file=/dev /vg0/db1,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio- blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/dev/vg0/db1_vol2,if=none,id=drive-virtio-disk1,format=raw,cache=none -device virtio- blk-pci,bus=pci.0,addr=0x6,drive=drive-virtio-disk1,id=virtio-disk1 -drive file=/dev /vg1/db1_mysql,if=none,id=drive-virtio-disk2,format=raw,cache=none -device virtio- blk-pci,bus=pci.0,addr=0x7,drive=drive-virtio-disk2,id=virtio-disk2 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=18,id=hostnet0,vhost=on,vhostfd=19 -device virtio- net-pci,netdev=hostnet0,id=net0,mac=52:54:00:b5:51:1e,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -vnc 127.0.0.1:0 -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
Por que isso? Eu entendo que o agendador fará o melhor para manter as coisas funcionando rapidamente, mas eu não vejo esse comportamento em servidores baseados em RHEL.