O ZFS no Linux precisa de um pouco de ajuste básico para operar bem sob carga. Há um pouco de dificuldade entre o ZFS ARC e o subsistema de memória virtual do Linux.
Para seus sistemas CentOS, tente o seguinte:
Crie um arquivo de configuração /etc/modprobe.d/zfs.conf
. Isso é lido durante o carregamento / inicialização do módulo.
Adicione algo como:
options zfs zfs_arc_max=40000000000
options zfs zfs_vdev_max_pending=24
Onde zfs_arc_max é aproximadamente 40% da sua RAM em bytes ( Edit: try zfs_arc_max=1200000000
). O padrão compilado em zfs_vdev_max_pending é 8 ou 10, dependendo da versão. O valor deve ser alto (48) para unidades SSD ou de baixa latência. Talvez 12-24 para o SAS. Caso contrário, deixe no padrão.
Você também desejará ter alguns valores mínimos em /etc/sysctl.conf
vm.swappiness = 10
vm.min_free_kbytes = 512000
Por fim, com o CentOS, talvez você queira instalar tuned
e tuned-utils
e definir seu perfil como virtual-guest com tuned-adm profile virtual-guest
.
Experimente e veja se o problema persiste.
Editar:
Execute zfs set xattr=sa storage
. Aqui está o porquê. Você pode ter que limpar os volumes e começar de novo ( Eu definitivamente recomendaria fazê-lo ).