![ubuntu kvm disk io desaceleración después de un tiempo](https://rvso.com/image/658356/ubuntu%20kvm%20disk%20io%20desaceleraci%C3%B3n%20despu%C3%A9s%20de%20un%20tiempo.png)
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
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.