%20(Debian%2FProxmox).png)
Resumo
Estou vendo uma flutuação drástica no desempenho de E/S em um espelho SSD ZFS no Proxmox VE 7 (Bullseye). Sou simplesmente muito novato para conseguir rastreá-lo sozinho.
Detalhes
Este é um desempenho MUITO ruim em tarefas do mundo real, portanto não se trata apenas de benchmarks artificiais. Mas para ajudar a diagnosticar, estou executando:
sysbench fileio --file-test-mode=rndrw run
Ele está rodando "bare-metal" no terminal Proxmox sem nenhuma VM ativa. Os resultados variam muito. Aqui estão dois exemplos:
File operations:
reads/s: 2316.07
writes/s: 1544.08
fsyncs/s: 4949.70
Throughput:
read, MiB/s: 36.19
written, MiB/s: 24.13
General statistics:
total time: 10.0062s
total number of events: 88040
Latency (ms):
min: 0.00
avg: 0.11
max: 35.66
95th percentile: 0.65
sum: 9947.54
Threads fairness:
events (avg/stddev): 88040.0000/0.00
execution time (avg/stddev): 9.9475/0.00
e
File operations:
reads/s: 22.60
writes/s: 15.07
fsyncs/s: 56.98
Throughput:
read, MiB/s: 0.35
written, MiB/s: 0.24
General statistics:
total time: 10.6162s
total number of events: 877
Latency (ms):
min: 0.00
avg: 11.43
max: 340.62
95th percentile: 77.19
sum: 10020.19
Threads fairness:
events (avg/stddev): 877.0000/0.00
execution time (avg/stddev): 10.0202/0.00
Como você pode ver, há uma oscilação de 10.000 vezes no número total de eventos e um aumento maciço na latência. Essas oscilações não são “únicas”. Está constantemente flutuando entre esses tipos de extremos.
Fiz o meu melhor para tentar reduzir problemas simples de hardware. Ambos os SSDs são novos com todos os 100 em smartctl. Troquei os cabos SATA. Eu o executei com o espelho degradado para tentar isolar um problema de unidade única. Mudei as unidades para um controlador SATA separado. Nada me dá um resultado diferente.
Eu tenho um segundo servidor configurado de maneira semelhante, embora com SSDs mais antigos (e incomparáveis) no espelho. Não vendo esse problema. O hardware do servidor é diferente, no entanto. Os resultados ruins são do sistema descrito abaixo. Os resultados aparentemente "normais" são de um PC antigo convertido com um E3-1275v2.
O que espero são dicas para ajudar a diagnosticar esse problema. Parece que o problema está na latência. O que pode causar isso? Quais próximos passos devo tomar?
Desde já, obrigado!
Sistema (se ajudar)
- MB: Supermicro X9DRi-F
- Processador: Dual Xeon E5-2650 v2
- RAM: 128 GB (8 x 16 GB)
- Controladores SATA: SATA 3 integrado (SATA 2 separado também testado)
- SSD: 2x 1GB TeamGroup SATA (sim, barato, mas deve servir)
- Placas PCIe:
- Mellanox MCX312B
- LSI SAS9207-8i (HBA conectado a 8 discos desmontados... passado para VM)
- Nvidia GTX 750 (passada para VM)
Responder1
Algo semelhante aconteceu comigo ontem com minha nova configuração: Proxmox VE 7 em um Intel 11500 com 32 GB de RAM e 2x SSD Crucial BX500 (estes são de nível consumidor) configurados como espelho ZFS.
Fiz um benchmark usando dd
para gravar 1GB de zeros no SSD e ele estava rodando a 5 MB/s (sei que dd
não é bom para benchmarking, mas mesmo assim...). Durante o benchmark, iostat
estava em 100% de utilização. No meu caso resolvi o problema de desempenho cortando os SSDs. Você pode forçá-lo usando zpool trim rpool
e ativar o ajuste automático com zpool set autotrim=on rpool
. Depois de cortar os discos, executei o benchmark novamente e ele rodou em 7s (153 MB/s).
Durante o processo para descobrir como melhorar o desempenho, defini xattr
conforme sa
recomendado noWiki Proxmoxe ajustei o zfs_arc_min
/ zfs_arc_max
e outros parâmetros do kernel.
Espero que isso funcione para você também.
Responder2
Você deve criar o pool zfs no SSD com ashift=12 para alinhar com os setores 4096 do SSD.
Verifique o valor atual
zpool get all pool_name | grep ashift
Verifique também o alinhamento da partição para 1 MB (2.048 setores de 512 bytes)
Responder3
zfs é cópia na gravação fs. é muito ruim para SSDs baratos. você pode testar este SSD com a máquina Windows diretamente, apagando-o com segurança e fazendo um teste de gravação completo (acho que o HD Tune pode fazer isso) e você verá o desempenho que esse SSD tem quando fica sem SLC \ RAM ... ele vai seja muito pobre... tipo 50-70 mb/s em vez de 500+ para sata. também alguns SSD baratos usam memória RAM do sistema em vez do próprio módulo RAM ou cache slc, e isso é ruim para o zfs. Espero que esta ajuda tenha tido um problema semelhante ao resolvido alterando o SSD para 980 Pro (mas tamanho menor causa de custo)