As gravações em HDD são mais rápidas na VM (caixa Vagrant) e mais lentas em bare metal (host)

0

As gravações do HDD são lentas no ubuntu em execução no bare metal. Eu comecei uma caixa Vagrant no mesmo host (rodando a mesma versão do Ubuntu) e as gravações são muito rápidas em comparação com o bare metal.

A seguir, a saída de vários comandos relacionados ao desempenho do HDD do Host e da VM. Alguma idéia do que devo ajustar para melhorar a velocidade de gravação no bare metal?

Bare Metal

$ dd if=/dev/zero of=/tmp/output bs=384k count=1k oflag=dsync 1024+0 records in 1024+0 records out 402653184 bytes (403 MB) copied, 37.4866 s, 10.7 MB/s

VM (Vagrant Box)

vagrant@vagrant-ubuntu-trusty-64:~$ sudo dd if=/dev/zero of=/tmp/output bs=384k count=1k oflag=dsync 1024+0 records in 1024+0 records out 402653184 bytes (403 MB) copied, 0.923299 s, 436 MB/s

No host,

$ lsblk -l NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk sda1 8:1 0 802.9G 0 part md0 9:0 0 802.8G 0 raid1 / sda2 8:2 0 1K 0 part sda5 8:5 0 35.5G 0 part md1 9:1 0 35.4G 0 raid1 [SWAP] sda6 8:6 0 93.1G 0 part md2 9:2 0 93.1G 0 raid1 /home sdb 8:16 0 931.5G 0 disk sdb1 8:17 0 802.9G 0 part md0 9:0 0 802.8G 0 raid1 / sdb2 8:18 0 1K 0 part sdb5 8:21 0 35.5G 0 part md1 9:1 0 35.4G 0 raid1 [SWAP] sdb6 8:22 0 93.1G 0 part md2 9:2 0 93.1G 0 raid1 /home $ mount | grep md0 /dev/md0 on / type ext4 (rw,errors=remount-ro)

Na VM

$ lsblk -l NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk sda1 8:1 0 40G 0 part / $ mount | grep sda1 /dev/sda1 on / type ext4 (rw)

Informações do HDD do host

$ hdparm -I /dev/sda /dev/sda: ATA device, with non-removable media Model Number: ST1000NM0033-9ZM173 Serial Number: Z1W3BGQQ Firmware Revision: SN04 Transport: Serial, SATA Rev 3.0 Standards: Supported: 9 8 7 6 5 Likely used: 9 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 268435455 LBA48 user addressable sectors: 1953525168 Logical Sector size: 512 bytes Physical Sector size: 512 bytes Logical Sector-0 offset: 0 bytes device size with M = 1024*1024: 953869 MBytes device size with M = 1000*1000: 1000204 MBytes (1000 GB) cache/buffer size = unknown Form Factor: 3.5 inch Nominal Media Rotation Rate: 7200

    
por Nilesh Simaria 02.05.2018 / 20:13

1 resposta

0

Eu estou supondo que o cache de memória ou a camada de virtualização reconheça zeros no fluxo de dados e, assim, crie um registro esparso na imagem da unidade.

> 400MB / s, como relatado pela VM, é totalmente irrealista em unidades de 7200rpm. 120-150MB / s é realista, mas alta, velocidade de gravação contínua, > 400MB / s não é.

Para testar se é cache de memória, selecione uma gravação grande , como duas vezes a memória total da caixa. Isso remove o impacto do cache de gravação da equação e informará se a camada de virtualização faz algum truque com todos os nulos.

Você também pode tentar ler um arquivo de dados diferente de zero, como um ISO, e ver qual é o desempenho de gravação obtido. Se for igualmente rápido, isso também significa que os dados não são realmente gravados em disco, mas apenas armazenados em cache em algum lugar .

Em um sistema com um ssd recentemente aparado, alcanço 42MB / s. Isso é provavelmente mais lento do que o disco pode fazer na gravação sequencial, pois dsync significa operação de E / S síncrona. Se eu mudar o tamanho do bloco para 1M e a contagem para 400, eu alcanço aprox. 80MB / s em SSDs, indicando que a operação de sincronização desempenha um grande papel na baixa velocidade.

    
por vidarlo 02.05.2018 / 21:19