ubuntu kvm disk io desaceleración después de un tiempo

ubuntu kvm disk io desaceleración después de un tiempo

Sistema anfitrión:

Ubuntu Server x64 12.04 
mdadm raid 1 (/dev/sda /dev/sdb)
no lvm
dd bs=1M count=256 if=/dev/zero of=filename conv=fdatasync
avarage ~ 40 MB/s

NCQ on disks is disabled
WriteCache is disables

Sistema de invitados:

Ubuntu server i386 12.04
with lvm2 /10Gb /200Gb /200Gb disks all on lv-root (LV)
  --- Physical volume ---
  PV Name               /dev/vda5
  VG Name               root-vg
  PV Size               9.76 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              2498
  Free PE               0
  Allocated PE          2498

  --- Physical volume ---
  PV Name               /dev/vdb
  VG Name               root-vg
  PV Size               195.31 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              49999
  Free PE               0
  Allocated PE          49999

  --- Physical volume ---
  PV Name               /dev/vdc
  VG Name               root-vg
  PV Size               195.31 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              49999
  Free PE               0
  Allocated PE          49999

 dd bs=1M count=256 if=/dev/zero of=filename conv=fdatasync
    avarage ~ 30 MB/s
all disks in guest are RAWformat /VirtioBUS / No cache / IOmode=native

Después de un tiempo, la velocidad de escritura cae a 1 MB/s, pero el sistema host no está cargado y la prueba dd muestra los mismos 30-40 MB/s, el uso de la CPU es del 10 %. El reinicio como invitado ayuda por un tiempo. No hay errores/fallas/no hay reconstrucción ni resincronización de mdadm.

No tengo idea de dónde hay un problema o dónde excavar.


Parece que esto ayuda al invitado: sync && echo 3 > /proc/sys/vm/drop_caches


Problema similarEn un sistema con memoria de 64 GB, el búfer de Linux se ejecuta por completo mientras se copia con dd a dev null y io se detiene hasta drop_caches manual

Respuesta1

Creo que lo que sucede es que el rendimiento inicial de 30-40 MB/s se debe al almacenamiento en caché del kernel de Linux (y a cualquier otro almacenamiento en caché que pueda estar sucediendo a nivel de hardware). Una vez que el almacenamiento en caché se ha "agotado", el acceso real al disco comienza a activarse y el rendimiento disminuye.

Además para queddpara tener un mejor rendimiento establezca elbs=argumento a un tamaño razonablemente grande. Personalmente me gusta configurarlo en aproximadamente 1/3-1/2 de RAM disponible. Su configuración de 1M es subóptima y es la razón principal de los bajos números de rendimiento. Pero incluso con óptimabs=configuración, verá una caída en el rendimiento en algún momento, como se explicó anteriormente.

información relacionada