Solução de problemas
Comece sempre aqui:
docker logs --tail 50 neurogrid-agent
O agente parou depois que troquei de rede
Sintoma. Os heartbeats estavam ok, e de repente todos falham. Ou um trabalho carrega o modelo e depois morre ao abrir o túnel, sempre depois de mais ou menos a mesma quantidade de segundos. Sua internet funciona bem em tudo o mais.
Causa. O Docker dá a configuração de DNS de um contêiner quando ele é criado, e nunca atualiza isso. Mova a máquina para uma rede diferente — um notebook saindo de um hotspot, um novo lease de DHCP, uma troca de roteador — e o contêiner continua perguntando para um resolvedor que não existe mais. O roteamento continua funcionando, então nada parece offline: só os nomes falham, cada um travando até expirar.
Correção. Reconectar o Wi-Fi não ajuda. Recrie o contêiner, ou apenas reinicie:
docker restart neurogrid-agent
O próprio agente avisa quando isso acontece — procure por
Cannot resolve the backend's hostname nos logs.
Prevenção. Instale com --dns 1.1.1.1 --dns 8.8.8.8, como nas
instruções de Linux e Windows. Esses
resolvedores existem em qualquer rede, então o contêiner para de se importar
em qual rede a máquina está.
nvidia-smi funciona no host mas não no Docker
Falta o NVIDIA Container Toolkit ou o daemon não detectou ele.
# Linux
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi
No Windows, isso geralmente significa que o Docker Desktop não está no backend WSL2, ou que o driver do Windows é mais antigo que 575.
O registro falha com um token inválido
O log diz que o backend não reconhece o token. Quase sempre é um destes:
- Foi truncado ao copiar. Tokens de máquina são longos; copie a string inteira.
- Já foi usado por outra máquina. Um token reivindica uma GPU. Pegue um novo na consola.
- A listagem foi cancelada na consola antes do agente se registrar.
Diz que o arquivo de configuração é gravável e se recusa a iniciar
De propósito. Esse arquivo define com qual servidor o agente fala, então qualquer um que consiga escrever nele pode redirecionar sua máquina e ficar com o trabalho dela.
docker exec neurogrid-agent chmod 600 /data/config/config.yaml
docker restart neurogrid-agent
Trabalhos falham logo depois que o modelo carrega
Quase sempre é o túnel, e quase sempre é DNS — veja acima. Se o DNS estiver saudável, confira se o HTTPS de saída na porta 443 não está bloqueado; algumas redes corporativas e de campus filtram isso.
O disco encheu
Os pesos dos modelos são grandes e o cache cresce a cada modelo diferente que você serve.
docker system df # para onde foi
docker image prune -f # imagens sem tag
docker volume rm neurogrid-hf-cache # o cache de modelos, só enquanto ocioso
Nunca remova neurogrid-data — é o seu registro.
A GPU aparece offline mas o contêiner está rodando
O agente está vivo mas os heartbeats dele não estão chegando. Confira os
logs procurando por gRPC error sending heartbeat, depois:
docker exec neurogrid-agent getent hosts api.neurogrid.cc
Sem saída significa DNS — reinicie o contêiner. Com saída mas ainda offline significa que a conexão está sendo bloqueada em algum ponto entre você e nós.
Um trabalho falhou e eu não sei por quê
docker logs neurogrid-agent 2>&1 | grep -iE "error|failed"
Os contêineres de trabalho são removidos quando terminam, então os próprios logs deles já se foram quando você olha. O log do agente guarda o motivo.
Ainda travado
Abra uma issue em github.com/NeuroGrid-AI-exchange com a saída de:
docker logs --tail 100 neurogrid-agent
docker inspect neurogrid-agent --format '{{.Config.Image}}'
nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv