Problemas de desempenho do FreeBSD ZFS RAID-Z2

6

Estou tentando construir meu próprio armazenamento anexado à rede com base nos componentes padrão do FreeBSD + ZFS +, mas há problemas estranhos de desempenho.

As especificações do hardware são:

  • processador AMD Athlon II X2 240e
  • Placa principal ASUS M4A78LT-M LE
  • 2GiB Kingston ECC DDR3 (dois sticks)
  • Adaptador de rede Intel Pro / 1000 CT PCIe
  • 5x Western Digital Caviar Green 1,5 TB

Eu criei um zpool RAID-Z2 de todos os discos. Eu instalei o FreeBSD 8.1 nesse zpool seguindo o tutorial . Os controladores SATA estão sendo executados no modo AHCI.

Saída do status zpool:

pool: zroot
state: ONLINE
scrub: none requested
config:
    NAME                                            STATE     READ WRITE CKSUM
    zroot                                           ONLINE       0     0     0
      raidz2                                        ONLINE       0     0     0
        gptid/7ef815fc-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/80344432-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/81741ad9-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/824af5cb-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/82f98a65-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0

O problema é que o desempenho de gravação no conjunto é muito, muito ruim (< 10 MB / s) e cada aplicativo que está acessando o disco não responde a cada poucos segundos ao gravar. Parece que a escrita está bem até que o cache de arrays do ZFS esteja cheio e, em seguida, o ZFS bloqueie todo o sistema de E / S até terminar de gravar esses dados.

Também estou recebendo kmem_malloc to small kernel panics. Eu já tentei colocar

vm.kmem_size="1500M"
vm.kmem_size_max="1500M"

em /boot/loader.conf, mas isso não ajuda.

Alguém sabe o que está acontecendo aqui? Eu realmente não tenho memória suficiente para o ZFS lidar com esse RAID-Z2?

    
por Axel Gneiting 11.11.2010 / 03:08

3 respostas

9

Suspeito que você provavelmente esteja enfrentando o problema que chamarei de "setores de 512 bytes não são setores de 4K". Enfim, google on gnop, setor 4K, WD Green e eu suspeito que você vai encontrar a correção. Eu soube disso pela primeira vez em este site , e foi muito informativo sobre esse assunto, bem como uma variedade de outros ajustes para o FreeBSD e ZFS. Boa sorte!

Editar: para citar o site vinculado:

... Finally, I came across references to problems with Western Digital’s 1.5 TB (WE15EADS) Green drives that I am using.

The drives have a 4KB physical sector but report 512 Bytes to the BIOS. So performance drops off on really big writes because zfs on FreeBSD sends 4KB of data to the drive as 8 separate writes of 512 bytes, which requires the firmware in the drive to increase its work load by an estimated factor of 60 (1st 512 Bytes - write 4KB, 2nd 512 Bytes, read 4K, write 4K, ..., 8th 512 Bytes, read 4K, write 4K -- so 4KB of writes become 4KB write + (4KB read + 4KB write)X(4KB/512Bytes - 1) = 60. The drives built in 32 MB cache helps until it fills and the zfs arc kicks in and then the arc begins to fill. So all in all, no big deal right?

Actually it is a very big deal if you are writing files to zfs that are larger than your arc plus the size of the buffer on the drive. ...

    
por 11.11.2010 / 03:46
3

Além do problema 4K / 512b, os discos verdes da WD não são a escolha ideal para seu uso, pois estacionam suas cabeças após 8 segundos de inatividade e leva alguns segundos para que eles se recuperem para um estado funcional. Este é o atraso na gravação que você está observando.

link

    
por 12.11.2010 / 09:27
-1

Tente desativar o timer usando a ferramenta WDidle.

    
por 27.02.2011 / 15:36

Tags