Fix Nextcloud Preview Generation High CPU Usage: Set Up Preview Generator

Short answer: Install the Preview Generator app, enable it, run one carefully scoped initial generation, then schedule occ preview:pre-generate during quieter hours. Also cap preview sizes and the number of new previews Nextcloud generates at once. The app moves work away from the moment a user opens a file; it does not impose a hard CPU ceiling, and it can increase disk use.

This setup fits a self-hosted Nextcloud server where thumbnails cause noticeable CPU spikes during browsing, especially on a small server with an established photo or document library. It is less useful if your instance uses server-side encryption: the Preview Generator project lists encryption as a known incompatibility. Managed hosting, Nextcloud AIO, Docker, and package installs also use different command paths, so adapt commands to your deployment. Do not run them from a guessed directory.

The current app instructions recommend installing and enabling the app, running preview:generate-all once, and scheduling preview:pre-generate for later file changes. The first command can be expensive on a large library. Start with one user or folder and one worker. Check the Preview Generator project README and command options and select a release compatible with your Nextcloud version in the Nextcloud App Store.

1. Confirm this is the right fix

First establish when the CPU rises. If it happens when users open photo-heavy folders or documents that need previews, pre-generation may shift much of that work to a scheduled task. If CPU stays high when nobody is browsing, or spikes coincide with a different service, Preview Generator may not address the cause. Check your process monitor and Nextcloud logs before changing settings.

Preview Generator records files that have been added or changed and processes them in a background job. Existing previews make later requests cheaper, but missing previews can still be generated on demand before the scheduled job reaches them. That means the app reduces user-facing bursts when the queue is caught up; it cannot promise zero CPU spikes. It also trades storage space for faster preview delivery. A small library with infrequent browsing may be fine with Nextcloud’s on-demand behavior.

2. Install the compatible app release

Página genérica de administração na nuvem com um cartão de aplicativo de pré-visualização de imagem e seu botão de ativação ligado.
A generic cloud admin page shows an image-preview app card switched on, illustrating the install and enable step; the layout is not a version-specific screenshot.

Inicie sessão como administrador do Nextcloud, abra a área de Aplicativos, encontre o Preview Generator , instale-o e ative-o. Antes de prosseguir, confirme se a App Store oferece uma versão estável para a sua versão principal do Nextcloud instalada. Evite copiar manualmente a pasta do aplicativo mais recente sobre uma versão que a App Store marque como incompatível.

Administradores com acesso ao shell podem verificar ou habilitar o aplicativo por meio de [instruções occespecíficas]. Um comando típico de instalação de pacote é mostrado abaixo; altere o binário do PHP e o caminho do Nextcloud para corresponder ao seu host. Para Docker ou AIO, use o comando de contêiner ou as instruções do agendador compatíveis com essa implantação.

sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator

3. Configure as tarefas em segundo plano do Nextcloud para serem executadas pelo Cron.

Nas configurações de administração do Nextcloud, selecione Cron como modo de execução em segundo plano e verifique se o cron do sistema Nextcloud está realmente em execução. O arquivo README do aplicativo informa que a tarefa em segundo plano de pré-visualização integrada requer o modo Cron; os modos Webcron e AJAX não são compatíveis com essa tarefa de longa duração. Se o seu cron padrão estiver com problemas, instalar este aplicativo por si só não manterá a fila em movimento.

Não confunda o agendamento normal do Nextcloud no cron.php com o preview:pre-generateagendamento dedicado opcional do aplicativo. Ambos são mecanismos distintos. Você pode usar a tarefa em segundo plano integrada do aplicativo ou um comando cron dedicado do sistema. Se optar pelo comando dedicado, o projeto recomenda desativar a tarefa em segundo plano de pré-visualização integrada para evitar a execução simultânea de ambos os caminhos para a mesma fila.

Página genérica de agendamento com uma tarefa recorrente ativa, que leva a uma janela de comando e resultados em miniatura.
Uma página de agendamento mostra uma tarefa recorrente ativa que delega o trabalho de pré-visualização a uma janela de comando e retorna miniaturas dos resultados.

4. Reduza a carga de trabalho de pré-visualização antes da primeira execução em lote.

Painel de configuração genérico com opções semelhantes a código acima dos controles para tamanho da pré-visualização e uso do processador.
Um painel de configuração genérico combina configurações semelhantes a código com controles de tamanho de imagem e processador, ilustrando os dois limites que os administradores devem ajustar.

Para a criação de pré-visualizações que consomem muita CPU, reduza a quantidade de novas pré-visualizações executadas simultaneamente. No manual de configuração do Nextcloud 35, o parâmetro preview_concurrency_new`preview_generate` controla a geração simultânea de novas pré-visualizações; o valor padrão documentado é quatro, e o manual recomenda que esse valor não ultrapasse o número de núcleos da CPU. Em servidores com recursos limitados, teste um valor como dois, ou um caso o servidor fique lento. Isso limita o trabalho simultâneo, mas uma única imagem ou vídeo grande ainda pode consumir uma quantidade significativa de CPU.

As dimensões da pré-visualização também importam. O Nextcloud 35 tem uma largura e altura máximas padrão de 4096 pixels. Diminuir preview_max_xesses preview_max_yvalores config/config.phppode reduzir as necessidades de processamento e memória, à custa de pré-visualizações menores. Faça backup do arquivo de configuração e incorpore as configurações ao array PHP existente; não substitua o arquivo por um trecho de código. Por exemplo, um administrador pode definir ambos os valores para 2048 e testar a qualidade nas visualizações de Arquivos e Fotos.

O aplicativo também pode gerar diversas variantes de tamanho. Seu arquivo README fornece um perfil de tamanho reduzido para uso comum em Arquivos, Fotos e Atividades: tamanhos quadrados 64 256, tamanhos de preenchimento de largura e altura 256 4096, e opções widthSizespara heightSizesignorar esses grupos de variantes. Use essas configurações somente se elas forem adequadas aos aplicativos que seus usuários utilizam; linhas do tempo do Memories ou outros aplicativos podem precisar de tamanhos adicionais. O projeto observa que os tamanhos de pré-visualização devem atender às regras de tamanho aceitas e não podem exceder os máximos configurados. Consulte as configurações de tamanho e qualidade de pré-visualização do Nextcloud e a referência de configuração específica da versão .

5. Gere pré-visualizações existentes em um pequeno lote inicial.

Após ativar o aplicativo e definir os limites, execute o gerador inicial em uma pasta de teste ou em um único usuário, em vez de em toda a instância. O aplicativo permite filtrar por ID de usuário ou caminho, e o comando aceita uma quantidade de workers. Use um worker para uma primeira execução conservadora:

sudo -u www-data php /var/www/nextcloud/occ preview:generate-all --workers=1 --path="/alice/files/Photos"
Tela de configurações genéricas de tarefas em segundo plano com a opção de tarefa agendada selecionada.
A página de configurações de tarefas em segundo plano mostra a opção de tarefa agendada selecionada; os rótulos exatos e as opções disponíveis variam de acordo com a versão do Nextcloud.

Substitua `<caminho> alice`, `<caminho>` e `<caminho de instalação>` pelos valores reais do seu servidor. A opção `<caminho>` usa o formato ` /[username]/files/[folder path]<caminho>`. Se você omitir o filtro de caminho e usuário, o comando poderá percorrer toda a biblioteca. Execute o lote quando houver menos usuários ativos, monitore o uso de CPU, memória e espaço em disco e pare para reavaliar se o servidor ficar instável. Não aumente o número de workers apenas para terminar mais rápido até que você tenha medido o efeito.

6. Agendar arquivos recém-adicionados ou alterados

Assim que o lote de teste se comportar bem, adicione-o preview:pre-generatea um agendamento cron do sistema. O arquivo README do aplicativo sugere um intervalo de dez minutos como exemplo, mas isso não é um requisito. Escolha um intervalo que corresponda ao volume de uploads e ao tempo ocioso disponível. Por exemplo, um arquivo crontab pertencente à conta do servidor web poderia conter a seguinte linha, com os caminhos ajustados para a instalação:

*/10 * * * * cd /var/www/nextcloud && /usr/bin/php -f occ preview:pre-generate
Painel no estilo terminal com um ícone de pasta seguido por miniaturas de imagens geradas.
Uma janela no estilo terminal exibe uma pasta selecionada seguida por miniaturas de imagens, representando uma primeira passagem de um único processo em um caminho limitado.

Se você utiliza este cron de sistema dedicado, desative a tarefa em segundo plano de pré-visualização integrada do aplicativo, conforme recomendado pelo projeto. A configuração documentada do aplicativo é:

sudo -u www-data php /var/www/nextcloud/occ config:app:set --value=true --type=boolean previewgenerator job_disabled

Mantenha a tarefa cron.php padrão do Nextcloud ativada. Para contêineres e plataformas hospedadas, use o agendador compatível com a plataforma em vez de inserir o caminho do host em uma entrada cron do contêiner. Se o aplicativo estiver instalado com criptografia ativada, pare aqui e consulte seu administrador ou provedor de hospedagem; o projeto atualmente lista essa configuração como não compatível.

7. Monitore a fila e confirme a melhoria.

Tela de monitoramento genérica com um gráfico de uso da CPU e duas barras de progresso da fila.
Um painel de monitoramento genérico combina um gráfico de CPU com barras de progresso da fila para comparar a carga do servidor e visualizar o backlog.

Execute o comando occ preview:queue-statspara inspecionar a fila de pré-geração e as pré-visualizações desatualizadas. Uma fila que diminui entre as execuções agendadas sugere que o processo está conseguindo acompanhar o ritmo. Se a fila crescer constantemente, significa que os usuários estão adicionando arquivos mais rápido do que o processo configurado consegue processá-los; aumente a frequência de execução ou os limites de tarefas permitidos com cautela, após verificar se a carga extra da CPU é aceitável. O aplicativo expõe os limites de tempo de execução da tarefa e de pré-visualizações por execução. O arquivo README informa que zero significa ilimitado, portanto, não escolha zero indiscriminadamente em um host com recursos limitados.

Compare os picos de uso da CPU antes e depois da implementação em horários semelhantes. Em seguida, abra uma pasta de fotos representativa e uma pré-visualização de documento como um usuário normal. Confirme se as miniaturas aparecem, se as páginas continuam respondendo e se o uso da CPU se estabiliza após o processamento do lote agendado. Um perfil de uso da CPU mais estável durante o dia, com progresso adequado na fila, é um resultado útil; um acúmulo de tarefas em constante crescimento ou sessões de usuário mais lentas indicam que o agendamento, o perfil de tamanho ou o provedor de pré-visualização subjacente precisam ser reavaliados.

Galeria de arquivos na nuvem exibindo seis miniaturas de imagens em uma visualização de pasta.
Uma galeria no estilo do Files exibe miniaturas de imagens, representando a verificação visual de que as pré-visualizações solicitadas foram carregadas.

Limites importantes e limpeza segura

Alguns tipos de pré-visualização dependem de programas do lado do servidor: o manual do Nextcloud lista o FFmpeg para pré-visualizações de vídeo e o LibreOffice para pré-visualizações de documentos do Office. Esses formatos podem se comportar de maneira diferente das miniaturas de imagens comuns, e o suporte a eles depende da configuração do provedor. Comece reduzindo a concorrência e testando um conjunto limitado de arquivos antes de trocar de provedor ou adicionar serviços.

Se você alterar as dimensões da pré-visualização ou os tipos de arquivo suportados e precisar descartar as pré-visualizações em cache, o Nextcloud 31 e versões mais recentes oferecem occ preview:cleanupessa funcionalidade, conforme descrito no arquivo README do projeto. Isso remove todos os arquivos de pré-visualização gerados, e o Nextcloud cria novas pré-visualizações sob demanda à medida que os usuários acessam os arquivos. Isso pode, temporariamente, causar o retorno dos picos de uso da CPU que você está tentando reduzir. Faça backups quando necessário, agende a limpeza de forma planejada e evite excluir manualmente o diretório de pré-visualização do appdata como parte do ajuste de rotina. O arquivo README do Gerador de Pré-visualização também descreve um .nomediaarquivo para ignorar uma pasta e seus descendentes quando apropriado.

Símbolo de pasta e arquivo oculto ao lado de um escudo com um cadeado.
Um símbolo de pasta e um símbolo de arquivo oculto aparecem ao lado de um escudo e um cadeado, ilustrando a limitação da criptografia e a opção de ignorar uma pasta.

Na prática, o Preview Generator é uma boa opção quando pré-visualizações lentas sob demanda criam picos de carga visíveis, você pode agendar tarefas em segundo plano e tem espaço em disco para tamanhos em cache. Combine-o com um limite de concorrência moderado, dimensões de pré-visualização que correspondam às necessidades reais de exibição e uma execução em lote com testes prévios. Se a instância estiver criptografada, gerenciada sem agendamento de shell ou com uso limitado de CPU por motivos não relacionados a solicitações de pré-visualização, investigue essas restrições antes da implantação.

Referências oficiais

Deixar um comentário

10 Melhores Ferramentas de Varredura de Ping para Encontrar Dispositivos na Sua Rede

10 Melhores Ferramentas de Varredura de Ping para Encontrar Dispositivos na Sua Rede

Compare 10 ferramentas de varredura de ping para descoberta rápida de LAN, varredura multiplataforma e gerenciamento de endereços IP. Saiba o que uma varredura pode — e não pode — revelar.

6 Melhores Ferramentas de Gerenciamento de Rede para Monitorar o Desempenho

6 Melhores Ferramentas de Gerenciamento de Rede para Monitorar o Desempenho

Compare seis ferramentas de gerenciamento de rede para monitoramento de desempenho, incluindo cobertura SNMP, mapeamento, alertas, modelos de implantação e custo-benefício.

Melhores analisadores de Wi-Fi para Windows, iOS e Android

Melhores analisadores de Wi-Fi para Windows, iOS e Android

Compare as melhores opções de analisadores de Wi-Fi para Windows, iPhone e Android, incluindo ferramentas para congestionamento de canais, cobertura de sinal, mapas de calor e solução de problemas de rede.

Monitor de Ping: 7 ferramentas gratuitas e de código aberto para disponibilidade de rede

Monitor de Ping: 7 ferramentas gratuitas e de código aberto para disponibilidade de rede

Compare sete monitores de ping gratuitos e de código aberto, desde suítes completas de rede até sondas de latência específicas, e escolha a opção mais adequada para disponibilidade, perda de pacotes e histórico.

Taxa de transferência de rede versus largura de banda: o que significam e como afetam o desempenho

Taxa de transferência de rede versus largura de banda: o que significam e como afetam o desempenho

Veja como a taxa de transferência de rede difere da largura de banda, o que causa desempenho lento ou instável e quais ferramentas podem testar um caminho ou monitorar o tráfego.

Melhor software de servidor SFTP para transferências seguras de arquivos

Melhor software de servidor SFTP para transferências seguras de arquivos

Compare softwares de servidor SFTP confiáveis ​​para Windows e Linux, incluindo OpenSSH, Bitvise, SolarWinds e SFTPGo. Encontre a solução ideal para suas necessidades de segurança e transferência de arquivos.

Melhores práticas de monitoramento de rede: o que monitorar e quais ferramentas usar

Melhores práticas de monitoramento de rede: o que monitorar e quais ferramentas usar

Crie um monitoramento de rede prático com cobertura clara de dispositivos, métricas de desempenho úteis, alertas acionáveis ​​e uma comparação entre SolarWinds NPM, PRTG e OpManager.

As 7 melhores ferramentas de gerenciamento de endereços IP para equipes de rede

As 7 melhores ferramentas de gerenciamento de endereços IP para equipes de rede

Compare sete ferramentas de gerenciamento de endereços IP para descoberta de sub-redes, coordenação de DNS e DHCP, inventário de rede e IPAM de código aberto.

10 Melhores Ferramentas de Varredura de Rede para Descobrir Dispositivos e IPs

10 Melhores Ferramentas de Varredura de Rede para Descobrir Dispositivos e IPs

Compare ferramentas de varredura de rede para descoberta rápida de dispositivos, varreduras de IP multiplataforma e IPAM corporativo, com orientações sobre como escolher a opção mais adequada para sua rede.

6 ferramentas de monitoramento de rede Linux para dispositivos, hosts e tráfego.

6 ferramentas de monitoramento de rede Linux para dispositivos, hosts e tráfego.

Compare seis ferramentas de monitoramento de rede Linux para descoberta de dispositivos SNMP, gráficos de interface, métricas de host, verificação de serviços e fluxos de tráfego.