O desempenho do Immich é normalmente limitado pela dependência ativa mais lenta num determinado fluxo de trabalho, e não por uma especificação de hardware permanente.
Os carregamentos, a pesquisa inteligente, a navegação pela linha cronológica e a reprodução de vídeos percorrem diferentes combinações de cliente, rede, servidor, base de dados, processos de trabalho e armazenamento. O verdadeiro limite varia quando se altera o endpoint ou a sobreposição de tarefas em segundo plano; por isso, uma resposta útil sobre capacidade começa por um percurso, não por uma lista de componentes.
Um limite de desempenho pertence a um endpoint
Um limite de desempenho é a taxa útil máxima ou a latência mínima alcançável para uma operação, em condições definidas. Não é a percentagem máxima de utilização do CPU. A aceitação de carregamentos, a seleção de resultados de pesquisa, as miniaturas visíveis e os vídeos reproduzíveis têm pontos de conclusão diferentes e, por isso, cadeias de dependências diferentes.
O artigo da ZimaSpace sobre o percurso de dados do Immich distingue a aceitação de carregamentos, a preparação para processamento, a seleção de resultados de pesquisa e a entrega de conteúdos multimédia. Esta distinção explica por que motivo melhorar um processo de aprendizagem automática pode acelerar a indexação sem alterar a entrega de miniaturas, e por que motivo um acesso de rede mais rápido não consegue corrigir uma consulta lenta à base de dados.
Para cada queixa ou teste de desempenho, registe o evento inicial, o evento final, o cliente, o conjunto de conteúdos multimédia, o estado da cache e a carga de trabalho em segundo plano. Só depois desenhe as etapas necessárias. O limite é definido pela etapa cujo tempo de serviço ou fila impede o endpoint de melhorar quando o trabalho a montante chega mais depressa.
O estado da base de dados e da fila limita frequentemente a coordenação
A base de dados seleciona conteúdos e preserva as relações da aplicação, enquanto o estado da fila coordena o trabalho em segundo plano. Os atrasos destes componentes podem limitar a pesquisa, as importações ou a preparação, mesmo quando os processos de trabalho têm ciclos disponíveis. Por outro lado, uma fila extensa pode indicar que o trabalho recebido excede a capacidade de processamento dos processos, e não que o próprio serviço de filas seja lento.
Uma análise aprofundada da arquitetura descreve o PostgreSQL como responsável por armazenar utilizadores, conteúdos, álbuns e embeddings vetoriais, enquanto o Redis gere filas de tarefas assíncronas. A fonte é uma explicação independente de uma implementação, e o seu valor aqui está na separação das dependências, não em qualquer valor fixo de recursos.
Observe em conjunto o tempo de resposta da base de dados, as esperas por ligações, a profundidade da fila e o número de tarefas concluídas por minuto. Se a profundidade da fila aumentar enquanto o débito dos processos permanecer estável e o tempo da base de dados não se alterar, os processos são provavelmente o limite. Se todas as etapas pausarem devido a esperas pela base de dados, aumentar a simultaneidade dos processos pode piorar o limite.
O armazenamento, a memória e o processamento trocam entre si o estrangulamento
A memória pode manter páginas da base de dados, miniaturas e modelos próximos dos processadores. Quando o conjunto de trabalho deixa de caber, a latência do armazenamento passa a afetar pedidos que antes tinham velocidade de memória. Durante novas importações, o trabalho intenso de processamento de miniaturas, vídeos e aprendizagem automática pode dominar. A dependência limitadora muda consoante o estado e a carga de trabalho.
Uma análise de alojamento próprio do Immich separa as necessidades moderadas da aplicação e da base de dados da maior exigência de memória da aprendizagem automática, referindo também o efeito do carregamento de modelos. Os valores específicos variam consoante a versão e o modelo, mas a lição sobre dependências mantém-se: a quantidade total de RAM não revela qual serviço perde o seu conjunto de trabalho.
Compare as fases a frio, aquecida e sustentada. Uma grande melhoria entre o estado a frio e o estado aquecido aponta para o carregamento de modelos ou da cache; uma latência elevada do dispositivo durante consultas abrangentes aponta para falhas no conjunto de trabalho; um processamento saturado com E/S estável aponta para o processamento. Depois de alterar um limite, repita o percurso completo, porque a etapa seguinte pode agora tornar-se dominante.
Crie um mapa do endpoint às dependências
Crie linhas para a aceitação de carregamentos, a resposta dos resultados de pesquisa, a última miniatura visível da linha cronológica e o início do vídeo. Adicione colunas para a preparação do cliente, a transferência pela rede, o tratamento pela aplicação, o trabalho da base de dados ou da fila, o processamento pelos processos de trabalho, o acesso ao armazenamento e a descodificação pelo cliente. Assinale as etapas que não são utilizadas, em vez de atribuir todos os componentes a todos os endpoints.
Um relato da comunidade sobre o descarregamento da geração de miniaturas para uma biblioteca familiar de dois terabytes ilustra a necessidade prática de distinguir a capacidade de processamento da capacidade de armazenamento do NAS. Não prova que o descarregamento seja sempre necessário; identifica um percurso específico de processos de trabalho que pode dominar uma importação de grandes dimensões.
Meça uma execução representativa e ordene apenas as esperas observadas. Proponha uma intervenção para a etapa principal e uma condição de rejeição. Se o endpoint melhorar, atualize o mapa porque o limite mudou; se não melhorar, descarte essa hipótese. Assim, obtém uma cadeia de evidências em vez de uma lista de compras.
Centro de Tecnologia e IA
Mais para Ler

Porque é que o Immich volta a processar os dados existentes depois de uma atualização?
O Immich pode voltar a processar recursos quando uma atualização invalida derivados, metadados, modelos ou o estado de tarefas anteriores; um processamento interminável e...

Redes do Immich: como a descoberta, o DNS e o encaminhamento permitem a acessibilidade
O Immich só é acessível quando a seleção do endpoint, o DNS, o encaminhamento, o NAT ou o tratamento do proxy, o TLS e...

Immich para famílias: como a identidade e as permissões moldam a experiência
A utilização do Immich em família depende de identidades separadas, propriedade dos ativos, partilha intencional, administração limitada e revogação testada.

