1. Visão geral
- Resumo da definição, diagnóstico, resposta e formas de prevenção do fenômeno de thrashing que ocorre no cache (ARC) do sistema de arquivos ZFS
2. Definição de thrashing no ZFS ARC
- Conceito: devido a falhas consecutivas de cache hit, ocorre substituição frequente de itens do cache (Eviction), o que acaba degradando o desempenho do sistema
- Impacto: em ambientes de I/O de alto desempenho (ex.: servidores de banco de dados), pode causar falhas graves de serviço
3. Principais sintomas de diagnóstico
- Valor de
iowait da CPU acima de 20% de forma contínua
- Aumento do uso de CPU em
system mode em relação ao normal
- Queda na taxa de acerto do cache (Hit rate) (é necessário comparar com dados usuais)
- Sintoma-chave: se o uso de CPU das threads de kernel
arc_prune e arc_evict estiver acima de 90%, o thrashing é certo
4. Medidas de resposta emergencial
- Ação: remover manualmente o cache do sistema de arquivos Linux
- Comando:
echo 3 > /proc/sys/vm/drop_caches
- Efeito: remove junto o page cache e os objetos slab
- Características:
- Como os dados ainda não gravados em disco (dirty item) são mantidos, não há perda de dados (não destrutivo)
- Logo após a execução, pode haver queda temporária de desempenho até o cache ser preenchido novamente
5. Prevenção de longo prazo
- Causa: o tamanho do cache ARC alocado é insuficiente em relação à carga de trabalho do sistema
- Tamanho do ARC (
zfs_arc_max):
- O valor padrão já é muito grande, correspondendo a 1/2 da memória do sistema (no Linux)
- Pode causar competição por memória com outras aplicações, então não é fácil simplesmente aumentá-lo
- Soluções:
- Se o uso de memória de outras aplicações for alto, reduzir o valor de
zfs_arc_max para evitar competição
- Para resolver o problema de forma definitiva, a maneira mais confiável é expandir a memória física (scale-up)
Ainda não há comentários.