Wiki
Armazenamento & GC
A vista Storage da aba Files: painel de armazenamento por repositório (tamanho, deduplicação, crescimento) e garbage collection, limpeza de revisões antigas, chunks órfãos, phantom files.
Introdução
A vista Storage mostra o uso de disco de um repositório (um projeto versionado no servidor) e fornece uma ferramenta de garbage collection (GC) para recuperar espaço limpando revisões antigas e dados que se tornaram inúteis.
Acesso e papéis
A aba Files e sua vista Storage são acessíveis ao super admin e ao project_admin nos repositórios que ele administra, incluindo a execução do GC. Já as estatísticas globais do servidor e a licença ficam reservadas ao super admin (em outro lugar do painel).
As métricas
A vista Storage abre com três cartões, Total Size, Files / Revisions e Dedup Ratio. Em seguida vêm o histograma Growth (Last 30 Days) e depois a tabela Largest Files. O botão de atualização, no canto superior esquerdo, recalcula o conjunto.
O que cada número significa:
- Total Size: o tamanho total dos arquivos, logo abaixo o tamanho comprimido realmente ocupado no disco.
- Files / Revisions: o número de arquivos e, abaixo, o número de revisões e de chunks.
- Dedup Ratio (%): a parcela de espaço economizada pelo compartilhamento de chunks e pela compressão.
- Growth (Last 30 Days): o tamanho acumulado dia a dia. Passe o cursor sobre uma barra para ler sua data, seu tamanho e seu número de revisões.
- Largest Files: os 20 maiores arquivos, com seu tamanho e seu número de revisões.
Esses números ajudam a identificar um repositório que está inchando: um arquivo binário volumoso committado repetidamente, ou um crescimento anômalo nos últimos 30 dias.
Garbage collection
O bloco Garbage Collection fica na parte inferior da vista Storage. Ele limpa o histórico antigo de acordo com dois parâmetros:
| Parâmetro | Padrão | Papel |
|---|---|---|
| Retention (days) | 90 | Idade abaixo da qual uma revisão é sempre mantida. |
| Min revisions to keep | 5 | Número de revisões recentes mantidas por arquivo, independentemente da idade. |
1. Ajustar os dois parâmetros
Digite Retention (days) e Min revisions to keep nos dois campos, à esquerda dos botões. Eles chegam com os valores padrão da tabela acima, 90 e 5. Lembrete: uma revisão só é limpa se ambas as condições forem atendidas.
2. Rodar uma prévia com Preview
O Preview simula a limpeza sem apagar nada. Uma faixa amarela aparece abaixo dos botões: «Preview: X revisions would be deleted across Y files, Z phantom file entries would be removed». É a hora de conferir a ordem de grandeza; se o número surpreender você, aumente a retenção em vez de executar.
3. Executar com Run GC
O botão vermelho Run GC executa a limpeza. A faixa verde de conclusão anuncia «GC complete: X revisions deleted, Y orphan chunks cleaned, Z phantom file entries removed», as métricas do topo são recarregadas e a execução é registrada na auditoria.
O que o GC apaga
- Revisões antigas: as mais antigas que Retention (days) E além das Min revisions to keep mais recentes por arquivo. Em seguida seus chunks, se não estiverem mais referenciados por nenhuma outra revisão.
- Chunks órfãos: os blocos de dados que nenhuma revisão usa mais após a limpeza.
- Phantom files: linhas de arquivo que nunca foram realmente committadas (caminho inválido ou uma entrada que ficou pendente), além de uma janela fixa de 7 dias (não configurável).
Os marcadores de exclusão (tombstones) dos arquivos apagados ou obliterados são preservados: eles servem para propagar a exclusão aos clientes durante a sync, e por isso não devem desaparecer.
Armadilhas comuns
O Preview anuncia muito pouco
Normal se o repositório for recente ou se o histórico couber dentro da retenção. O GC só mexe nas revisões que são ao mesmo tempo antigas o suficiente e estão além das últimas N por arquivo.
Preview e Run mostram contadores diferentes
O Preview não consegue prever o número exato de chunks e de vínculos revisão-chunk apagados: ele só reporta as revisões, os arquivos escaneados e as entradas fantasma. Os chunks órfãos só aparecem no Run.
Baixar a retenção para recuperar espaço
É possível, mas você perde histórico. Em um projeto onde é preciso poder voltar bem no tempo, mantenha uma retenção folgada e atue de preferência sobre os arquivos grandes (veja a lista dos maiores arquivos e o .uversionignore para evitar trackear artefatos regeneráveis).