Eu tenho um servidor rodando o Xen e algumas VMs. Estou tentando configurar uma matriz RAID dedicada a uma das VMs em particular, que será usada para várias finalidades intensivas de armazenamento. Atualmente, estou tendo uma queda de desempenho muito estranha ao escrever a partir do domU, que é um convidado de PV do Debian com bastante vcpus e memória.
Neste momento, a configuração é que eu tenho três discos rígidos WD Red de 3 TB dispostos em um array RAID 5 (software) no dom0. Atualmente, o dom0 está expondo o bloco /dev/mdX
como /dev/xvdb
na máquina virtual (a VM possui /dev/xvda
de um volume LVM). O bit relevante da configuração xen:
disk = [ <LVM stuff for xvda>, 'phy:/dev/md0,xvdb,w' ]
O /dev/md0
tem um sistema de arquivos ext4, com as opções noatime, nodiratime
em uso. Quando eu faço um teste de velocidade no sistema de arquivos do domU, recebo algo assim:
# dd if=/dev/zero of=a_file bs=1M count=1024 conv=fsync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 16.2694 s, 66.0 MB/s
# dd if=some_other_noncached_file of=/dev/null bs=1M
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 26.379 s, 163 MB/s
No entanto, no dom0, recebo:
# dd if=/dev/zero of=a_file_somewhere bs=1M count=1024 conv=fsync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 6.80677 s, 158 MB/s
... que, claramente, é uma diferença de velocidade muito grande. Enquanto 66 MB / s deve ser bom o suficiente por enquanto, eu realmente aprecio se alguém pode chegar a uma explicação para o porquê eu estou perdendo 60% do meu desempenho de gravação? Eu estaria expectante de 10% ou mais, mas não 60%.
Não é a fome de recursos dom0, porque eu tenho dado a ela significativamente mais recursos do que deveria requerer e o problema ainda ocorre. Também não é fome de recursos domU, e eu prevei CPUs para ficarem no mesmo nó NUMA, e a mesma coisa resulta.
Veja algumas coisas possivelmente relevantes de xl info
:
host : <hostname>
release : 3.16.0-4-amd64
version : #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04)
machine : x86_64
nr_cpus : 24
max_cpu_id : 63
nr_nodes : 2
cores_per_socket : 6
threads_per_core : 2
cpu_mhz : 2660
hw_caps : bfebfbff:2c100800:00000000:00003f00:029ee3ff:00000000:00000001:00000000
virt_caps : hvm
total_memory : 24573
free_memory : 12011
sharing_freed_memory : 0
sharing_used_memory : 0
outstanding_claims : 0
free_cpus : 0
xen_major : 4
xen_minor : 4
xen_extra : .1
xen_version : 4.4.1
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler : credit
xen_pagesize : 4096
platform_params : virt_start=0xffff800000000000
xen_changeset :
xen_commandline : placeholder dom0_mem=8192M dom0_max_vcpus=8 dom0_vcpus_pin
cc_compiler : gcc (Debian 4.9.2-10) 4.9.2
cc_compile_by : ultrotter
cc_compile_domain : debian.org
cc_compile_date : Thu Jun 11 18:24:17 EEST 2015
xend_config_format : 4
Se houver mais alguma coisa que possa ser útil, avise-nos e atualizarei a pergunta.
Obrigado!