您的位置:首页 > 其它

XEN cpu 调度问题

2011-11-12 19:09 369 查看
公司新上了一个8核的cpu,上面用xen虚拟了2个Windows。

但是通过各种配置,还是无法平衡cpu的压力。

大多都压在第一个cpu上。

下面是top的数据

Cpu0 : 20.6%us, 65.7%sy, 0.0%ni, 13.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu1 : 0.0%us, 0.0%sy, 0.0%ni, 96.2%id, 0.0%wa, 0.0%hi, 0.0%si, 3.8%st

Cpu2 : 1.0%us, 0.0%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu3 : 0.0%us, 0.0%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 1.0%st

Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu7 : 1.0%us, 6.9%sy, 0.0%ni, 91.2%id, 0.0%wa, 0.0%hi, 0.0%si, 1.0%st

已经做了cpu和vcpu的绑定,但是效果不好

Name ID VCPUs CPU State Time(s) CPU Affinity

Domain2 28 0 6 r-- 2337.3 4-7

Domain2 28 1 4 r-- 2400.6 4-7

Domain2 28 2 5 r-- 2312.0 4-7

导致Windows断网等各种怪问题。

硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。现在的服务器上动不动就是多
CPU 多核、多网卡、多硬盘,如果能让网卡中断独占1个 CPU (core)、磁盘 IO 中断独占1个 CPU 的话将会大大减轻单一 CPU 的负担、提高整体处理效率。


看看系统上的中断是怎么分配在 CPU 上的,很显然 CPU0 上处理的中断多一些:
# cat /proc/interrupts

CPU0 CPU1

0: 918926335 0 IO-APIC-edge timer

1: 2 0 IO-APIC-edge i8042

8: 0 0 IO-APIC-edge rtc

9: 0 0 IO-APIC-level acpi

12: 4 0 IO-APIC-edge i8042

14: 8248017 0 IO-APIC-edge ide0

50: 194 0 IO-APIC-level ohci_hcd:usb2

58: 31673 0 IO-APIC-level sata_nv

90: 1070374 0 PCI-MSI eth0

233: 10 0 IO-APIC-level ehci_hcd:usb1

NMI: 5077 2032

LOC: 918809969 918809894

ERR: 0

MIS: 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: