XenServer: Como reduzir latência i/o rede e disco e reduzir perda de pacotes em alta carga

Tais informações também podem ser úteis para servidores diretamente instalados sobre máquinas físicas.

Os dados e conclusões foram coletados sobre XenServer 5.6 SP2 e máquinas virtuais Debian GNU/Linux 6.x Squeeze e máquinas físicas Dell R900.

Na investigação sobre latência de i/o e perda de pacotes na rede, descobrimos que nossos hosts XenServer estão com elevada carga de software interrupts (%si) e com muitos spinlocks no dom0.

  • Todo i/o (disco e rede) das VM é executado por software no dom0 antes de enviar para camadas inferiores.

No dom0, vemos no arquivo mais abaixo que temos bem baixo i/o wait de discos.

Mas nas VM temos um razoável i/o wait, dez ou mais vezes maior.

No dom0, temos um percentual de utilização dos dispositivos baixo (até 5%) , contra uma saturação (97%) dos dispositivos virtuais nas VM nos horários de carga.

  • Não estamos saturando as HBA. Estamos saturando os discos virtuais xvdc.
  • No dom0 temos um runq-sz que alcança 9, quando deveria registrar média 0 ou máximo 1: Está enfileirando processos.

xentop mostra pacotes perdidos.

ifconfig no dom0 mostra pacotes perdidos.

tcptrace sobre os arquivos de tcpdump na dmz e no dom0 mostram tempos altíssimos (30s), velocidade baixa, idle time altíssimo para algumas conexões.

  • Network packet drops e elevado idle time indicam esgotamento das filas tcp dos dispositivos de rede virtuais também.

Finalmente, /proc/interrupts mostra que quase todas interrupções de software estão sendo processadas num núcleo apenas.

  • * Existe um desbalanceamento de sw irq e só 1 núcleo não é tão poderoso para dar conta de pesadas cargas de i/o.
  • * Portanto, teremos de instalar um daemon irqbalance para reequilibrar dinamicamente as swirq.
  • * Depois teremos de acompanhar novamente o desempenho sob carga.

Por alterar o dom0, existe o risco de derrubar e não levantar os XenServer. Necessária uma janela de manutenção. Se tudo desse certo, bastaria instalar o pacote a partir dos repositórios Citrix (ou CentOs) e reiniciar o serviço conforme o site mostra. Mas recomendo parar as VM do host antes de fazer isso para evitar surpresas.

Analise com atenção os arquivos com dados mais abaixo para aprender a identificar o problema, ou similar, você mesmo.

[0] http://support.citrix.com/article/CTX127970
[1] http://benpiper.com/2011/08/improving-network-throughput-in-xenserver-us...
[2] http://kb.fusionio.com/KB/a65/irqbalance-avoid-overloading-cpu-0-with-in...
[3] http://blogs.citrix.com/2011/08/08/tuning-xenserver-for-maximum-scalabil...
[4] http://www.makelinux.net/ldd3/chp-5-sect-5 spinlock

xenserver e latência tcp/ip
http://www.gossamer-threads.com/lists/xen/devel/172507
http://xen.1045712.n5.nabble.com/Xen-3-3-1-Need-help-td2587751.html
http://support.citrix.com/article/CTX127970 irqbalance **************************
http://forums.citrix.com/thread.jspa?threadID=248996 multipathd impacts network ***
http://forums.citrix.com/thread.jspa?threadID=295681 cpu C states latency *************
http://www.cmdln.org/2009/01/28/cpu-performance-analysis-in-linux/ what is a healthy runq-sz ? *****
http://tipstricks.itmatrix.eu *
http://infoscience.epfl.ch/record/85598/files/usenix06.pdf detailed explanation of xen network internals ******
http://wiki.xen.org/xenwiki/XenCommonProblems.html *
http://www.tin.org/bin/man.cgi?section=9&topic=ksoftirqd ***
http://forums.citrix.com/thread.jspa?threadID=244340
http://forums.citrix.com/thread.jspa?threadID=253641 *****
http://forums.citrix.com/message.jspa?messageID=1579969
http://docs.vmd.citrix.com/XenServer/5.6.0fp1/1.0/en_gb/sdk.html#persist... *
http://likerabbits.blogspot.com/2009/09/xenserver-performance-tweaks.html ********
http://www.ilsistemista.net/index.php/virtualization/1-virtual-machines-...
http://xen.org/files/xensummit_4/NetworkIO_Santos.pdf como funciona rede xen *******
http://forums.citrix.com/thread.jspa?threadID=296706
http://h20000.www2.hp.com/bc/docs/support/SupportManual/c01804533/c01804... Best practices for deploying Citrix XenApp? on XenServer? on HP ProLiant? servers
http://h20195.www2.hp.com/v2/GetPDF.aspx/4AA2-5115ENW.pdf
http://support.citrix.com/article/CTX129357 CPU Soft Lockup Causes Hosts to Become Unresponsive
http://support.citrix.com/article/CTX129390 XenServer? 5.6 Service Pack 2 Release Notes
http://support.citrix.com/article/CTX129479 Hotfix XS56EFP1007 - For XenServer? 5.6 Feature Pack 1
http://blogs.citrix.com/2011/07/11/optimise-your-server-for-maximum-perf... Optimise your servers for maximum performance (Part1)
http://support.citrix.com/article/CTX127970 Distributing Guest Traffic Over Physical CPUs? in XenServer?
http://wiki.xen.org/wiki/Category:XCP
http://searchservervirtualization.techtarget.com/tip/Memory-and-CPU-allo... Memory and CPU allocation in Xen environments: Optimizing performance ******
http://blogs.citrix.com/2011/08/08/tuning-xenserver-for-maximum-scalabil... ********
http://h71019.www7.hp.com/ActiveAnswers/cache/457122-0-0-225-121.html HP Xenserver best practices, benchmarks
tcp/ip offload
http://lako-home.nl/2010/06/citrix-xenserver-slow-network-performance/ warning unofficial experimental script *********
http://willsani.com/2010/02/09/xenserver-5-5-network-performance-woes/ warning unofficial experimental script ***
http://www.broadcom.com/collateral/pb/GbE-PLC102-R.pdf
http://www.ae.iitm.ac.in/pipermail/ilugc/2007-April/033663.html **
http://www.linuxquestions.org/questions/linux-networking-3/help-needed-d... ***
http://support.citrix.com/servlet/KbServlet/download/22621-102-642152/Xe...
http://support.citrix.com/article/CTX127362
http://www.wireshark.org/docs/wsug_html_chunked/ChAdvChecksums.html
http://forums.citrix.com/thread.jspa?threadID=151801 *
http://docs.vmd.citrix.com/XenServer/5.6.0/1.0/en_gb/sdk.html#advanced_s... ****************
http://www.mail-archive.com/debian-kernel@lists.debian.org/msg42483.html
http://old-list-archives.xen.org/archives/html/xen-users/2010-10/msg0029...
http://xen.1045712.n5.nabble.com/xen-networking-in-ubuntu-gutsy-td259306...
http://forums.citrix.com/message.jspa?messageID=1395546 **
http://docs.vmd.citrix.com/XenServer/4.0.1/reference/ch03s03.html
http://web.archiveorange.com/archive/v/ZvO4jKh8Od3XRqOxZwET
http://support.citrix.com/article/CTX129390
http://wiki.xen.org/xenwiki/XenRoadMap
http://support.citrix.com/servlet/KbServlet/download/23832-102-645656/Xe... ****
http://www.linuxquestions.org/questions/linux-networking-3/help-needed-d... **
http://cloudstack.org/forum/5-installation/504-how-configure-second-nic-...
xenserver scheduler
http://wiki.xen.org/xenwiki/Scheduling **************************
http://xen.org/files/xen_user_manual.pdf *************