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

Para melhor experiência de usuário, devido a respostas mais rápidas do serviço, é fator chave reduzir a LATÊNCIA de I/O de rede e disco.
Especialmente em servidores de e-mail e de banco de dados.
Veremos como reduzir a latência de de I/O Máquinas Virtuais em servidores de virtualização XenServer.

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 *************

Comentários

Postagens mais visitadas deste blog

Tutorial Cyrus IMAP aggregator (murder) 2.3.16 sobre Debian GNU Linux 5.x Lenny

How to configure multipath for high availability and performance on Debian and CentOS for storage at IBM DS8300 SAN

Como instalar Oracle Client no Debian e Ubuntu