
Por alguma razão, QD2 parece ser o melhor em termos de IOPS brutos...
Depois de ver um artigo interessantecomparando algumas unidades diferentes para uso do SLOG, fiquei curioso sobre o desempenho do meu próprio sistema em diferentes profundidades de fila.
O sistema compreende uma memória de sistema i9-13900K, 128GB DDR5-4800 e dois Samsung 980 PROs como Vdev espelhado único. O teste está executando o FIO na seguinte configuração em um contêiner no ProxMox 7:
fio --name=random-write --ioengine=posixaio --rw=randwrite --bs=<4k/8k> --numjobs=1 --size=8g --iodepth=<1/2/4/8> --runtime=30 --time_based
Algo estranho que notei foi que durante gravações assíncronas, o melhor desempenho ocorreria consistentemente em profundidades de fila de 2. Tentei várias combinações diferentes de compactação, tamanho de bloco e tamanho de registro, mas QD2 consistentemente teve as melhores pontuações de IOPS... Eu esperava isso para melhorar em profundidades de fila mais altas ou estou faltando alguma coisa? (Eu me pergunto se isso está relacionado ao fato de as unidades terem apenas dois chips NAND por unidade?)
Nenhum ajuste específico do ZFS foi executado além da configuração ashift=12 e o que está listado acima.
Alguém sabe por que as gravações assíncronas do ZFS parecem funcionar melhor em QD2 em comparação com QD1, QD4 ou QD8?
E agora... Gráficos! Estes são os resultados médios das 216 combinações diferentes que experimentei.
(por que um tamanho recorde de 16k foi o pior está além da minha compreensão)
(Um tamanho de bloco de 8k ainda resulta em maislargura de banda)
Um pouco surpreso ao ver Zstd derrotando LZ4. Talvez eu esteja atingindo os limites de IO desses SSDs ruins? OrealA atividade do SSD geralmente atingia 400-700 MB/s durante os testes.
NB Durante todos os testes o governador da CPU foi definido como "Desempenho", quando definido como "Powersave" os números de IOPS foram 30-50% piores!