O ZFS armazena em cache dados compactados ou descompactados em um sistema de arquivos ZFS com a compactação ativada?

6

O ZFS oferece suporte à compactação do sistema de arquivos e também armazena em cache os dados acessados com freqüência ou recentemente.

Se um sistema tiver muita CPU, mas o sistema de armazenamento de dados subjacente estiver lento. É possível que o ZFS funcione melhor com a compactação ativada. Isso pode ser facilmente testado ao gravar arquivos, medindo a CPU e o uso do disco e a taxa de transferência. (claro que latência pode existir, mas isso não seria um problema para arquivos grandes).

Mas e o cache? Se os dados precisarem ser descompactados toda vez que forem lidos, isso provavelmente não é uma boa idéia.

Os dados armazenados em cache são compactados? Alguém tem alguma informação sobre isso?

    
por George Bailey 25.02.2011 / 20:26

5 respostas

6

Eu perguntei a Richard Elling, ex-técnico do ZFS, essa questão. Ele me disse que o L2ARC é descompactado, assim como o ARC é descompactado.

Desculpe, não posso fornecer documentação ou especificações. Minha única prova é que um dos caras que ajudaram a projetar o ZFS me disse pessoalmente quando o conheci na semana passada. :)

    
por 26.02.2011 / 23:56
3

Hoje o L2ARC pode ser comprimido com LZ4, o ARC ainda está descompactado. Mais informações estão disponíveis no site do OpenZFS - > link

    
por 09.04.2014 / 08:58
2

Os dados em cache no ARC ou L2ARC são sempre descompactados. Período. Caso contrário, toda leitura de ARC ou L2ARC teria sobrecarga de CPU correspondente, o que com alguns algoritmos poderia ser significativo (estou olhando para você bzip2). Assumindo compression = yes em seu (s) sistema (s) de arquivos, os dados nos discos do pool e o ZIL (se aplicável) sempre serão compactados.

Você está correto, ao armazenar dados que compactam bem e um sistema com bastante CPU, mas o IO limitado pode ser melhorado com a compactação ativada. Esta não é uma característica única do ZFS, você encontrará muitas referências a isso com relação à ativação da compactação em NTFS ou outros sistemas de arquivos.

    
por 25.03.2011 / 22:29
1

Isso mudou nas versões recentes do zfs (pelo menos no linux). Acabamos de fazer uma comparação de maçãs por maçãs com dois conjuntos de dados de 32k, um com compactação de lz4 e outro sem. A memória usada pelo arco era dupla no caso de descompactado.

Parece que, na verdade, geralmente é mais eficiente descompactar os dados que são realmente necessários em um cache de curto prazo, pois o cache de arco geralmente lê dados que nunca são solicitados. Parece que a escolha foi feita para comprimir na memória ..

Também vejo alguns parâmetros no arquivo / proc / spl / kstat / zfs / arcstats que confirmam isso:

c                               4    135156049920
c_min                           4    8447253120
c_max                           4    135156049920
size                            4    3288083480
compressed_size                 4    3070738432
uncompressed_size               4    9339208192

Este commit parece relevante link

    
por 04.04.2018 / 16:37
0

Sim. O ZFS armazenará em cache os dados acessados com frequência em qualquer um dos formulários. O desempenho com o esquema de compactação padrão é bom e custa apenas um pequeno tempo de CPU. A compressão é feita na hora. Você pode estender isso ainda mais adicionando um dispositivo de cache SSD L2ARC.

    
por 25.02.2011 / 20:50