Tengo una máquina virtual Ubuntu, que se ejecuta dentro de Xen XCP basado en Ubuntu. Aloja un servicio HTTP personalizado basado en FCGI, detrás nginx.
Bajo carga desde ab el primer núcleo de la CPU está saturado, y el resto está subcargado.
En /proc/interruptsveo que CPU0 sirve un orden de magnitud más interrupciones que cualquier otro núcleo. La mayoría de ellos provienen de eth1.
¿Hay algo que pueda hacer para mejorar el rendimiento de esta VM? ¿Hay alguna forma de equilibrar las interrupciones de manera más uniforme?
Detalles sangrientos:
$ uname -a
Linux MYHOST 2.6.38-15-virtual # 59-Ubuntu SMP viernes 27 de abril 16:40:18 UTC 2012 i686 i686 i386 GNU / Linux
$ lsb_release -a
No hay módulos LSB disponibles.
ID de distribuidor: Ubuntu
Descripción: Ubuntu 11.04
Lanzamiento: 11.04
Nombre en clave: natty
$ cat / proc / interrupciones
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
283: 113720624 0 0 0 0 0 0 0 xen-dyn-event eth1
284: 1 0 0 0 0 0 0 0 xen-dyn-event eth0
285: 2254 0 0 3873799 0 0 0 0 xen-dyn-event blkif
286: 23 0 0 0 0 0 0 0 xen-dyn-event hvc_console
287: 492 42 0 0 0 0 0 295324 xen-dyn-event xenbus
288: 0 0 0 0 0 0 0 222294 xen-percpu-ipi callfuncsingle7
289: 0 0 0 0 0 0 0 0 xen-percpu-virq debug7
290: 0 0 0 0 0 0 0 151302 xen-percpu-ipi callfunc7
291: 0 0 0 0 0 0 0 3236015 xen-percpu-ipi resched7
292: 0 0 0 0 0 0 0 60064 xen-percpu-ipi spinlock7
293: 0 0 0 0 0 0 0 12355510 temporizador xen-percpu-virq7
294: 0 0 0 0 0 0 803174 0 xen-percpu-ipi callfuncsingle6
295: 0 0 0 0 0 0 0 0 xen-percpu-virq debug6
296: 0 0 0 0 0 0 60027 0 xen-percpu-ipi callfunc6
297: 0 0 0 0 0 0 5374762 0 xen-percpu-ipi resched6
298: 0 0 0 0 0 0 64976 0 xen-percpu-ipi spinlock6
299: 0 0 0 0 0 0 15294870 0 temporizador xen-percpu-virq6
300: 0 0 0 0 0 264441 0 0 xen-percpu-ipi callfuncsingle5
301: 0 0 0 0 0 0 0 0 xen-percpu-virq debug5
302: 0 0 0 0 0 79324 0 0 xen-percpu-ipi callfunc5
303: 0 0 0 0 0 3468144 0 0 xen-percpu-ipi resched5
304: 0 0 0 0 0 66269 0 0 xen-percpu-ipi spinlock5
305: 0 0 0 0 0 12778464 0 0 temporizador xen-percpu-virq5
306: 0 0 0 0 844591 0 0 0 xen-percpu-ipi callfuncsingle4
307: 0 0 0 0 0 0 0 0 xen-percpu-virq debug4
308: 0 0 0 0 75293 0 0 0 xen-percpu-ipi callfunc4
309: 0 0 0 0 3482146 0 0 0 xen-percpu-ipi resched4
310: 0 0 0 0 79312 0 0 0 xen-percpu-ipi spinlock4
311: 0 0 0 0 21642424 0 0 0 xen-percpu-virq timer4
312: 0 0 0 449141 0 0 0 0 xen-percpu-ipi callfuncsingle3
313: 0 0 0 0 0 0 0 0 xen-percpu-virq debug3
314: 0 0 0 95405 0 0 0 0 xen-percpu-ipi callfunc3
315: 0 0 0 3802992 0 0 0 0 xen-percpu-ipi resched3
316: 0 0 0 76607 0 0 0 0 xen-percpu-ipi spinlock3
317: 0 0 0 16439729 0 0 0 0 xen-percpu-virq timer3
318: 0 0 876383 0 0 0 0 0 xen-percpu-ipi callfuncsingle2
319: 0 0 0 0 0 0 0 0 xen-percpu-virq debug2
320: 0 0 76416 0 0 0 0 0 xen-percpu-ipi callfunc2
321: 0 0 3422476 0 0 0 0 0 xen-percpu-ipi resched2
322: 0 0 69217 0 0 0 0 0 xen-percpu-ipi spinlock2
323: 0 0 10247182 0 0 0 0 0 xen-percpu-virq timer2
324: 0 393514 0 0 0 0 0 0 xen-percpu-ipi callfuncsingle1
325: 0 0 0 0 0 0 0 0 xen-percpu-virq debug1
326: 0 95773 0 0 0 0 0 0 xen-percpu-ipi callfunc1
327: 0 3551629 0 0 0 0 0 0 xen-percpu-ipi resched1
328: 0 77823 0 0 0 0 0 0 xen-percpu-ipi spinlock1
329: 0 13784021 0 0 0 0 0 0 xen-percpu-virq timer1
330: 730435 0 0 0 0 0 0 0 xen-percpu-ipi callfuncsingle0
331: 0 0 0 0 0 0 0 0 xen-percpu-virq debug0
332: 39649 0 0 0 0 0 0 0 xen-percpu-ipi callfunc0
333: 3607120 0 0 0 0 0 0 0 xen-percpu-ipi resched0
334: 348740 0 0 0 0 0 0 0 xen-percpu-ipi spinlock0
335: 89912004 0 0 0 0 0 0 0 xen-percpu-virq timer0
NMI: 0 0 0 0 0 0 0 0 Interrupciones no enmascarables
LOC: 0 0 0 0 0 0 0 0 Interrupciones locales del temporizador
SPU: 0 0 0 0 0 0 0 0 Interrupciones espurias
PMI: 0 0 0 0 0 0 0 0 Interrupciones de supervisión del rendimiento
IWI: 0 0 0 0 0 0 0 0 Interrupciones de trabajo IRQ
RES: 3607120 3551629 3422476 3802992 3482146 3468144 5374762 3236015 Reprogramación de interrupciones
CAL: 770084 489287 952799 544546 919884 343765 863201 373596 Interrupciones de llamadas de función
TLB: 0 0 0 0 0 0 0 0 derribos TLB
TRM: 0 0 0 0 0 0 0 0 Interrupciones de eventos térmicos
THR: 0 0 0 0 0 0 0 0 Umbral de interrupciones APIC
MCE: 0 0 0 0 0 0 0 0 Excepciones de verificación de máquina
MCP: 0 0 0 0 0 0 0 0 Encuestas de verificación de máquinas
ERR: 0
SIG: 0
eth1?