- Por que você deve otimizar seu servidor Nextcloud
- Aumente o limite de upload do PHP e ajuste os timeouts
- Otimize o desempenho do Nextcloud com APCu e Opcache
- Ative o Cron e configure tarefas em segundo plano
- Otimize o arquivo config.php do Nextcloud
- Comandos occ importantes para manutenção e desempenho
- Não se esqueça do banco de dados, armazenamento e rede
Por que você deve otimizar seu servidor Nextcloud
Nextcloud é mais do que uma unidade de rede bonita. Se você usar seu servidor Nextcloud como o hub central para seus arquivos e fluxos de trabalho, você rapidamente percebe como o desempenho e estabilidade são importantes. Grandes uploads falham, downloads atingem o tempo limite, a interface da web parece lenta e prévias de fotos ou vídeos demoram muito para carregar.
Neste artigo, vou mostrar como otimizar seu servidor Nextcloud, melhorar o desempenho, e ajustar os limites típicos como o limite de upload PHP e timeouts. Também olhamos como ativar cronjobs, como personalizar Nextcloud config.php, e quais comandos são realmente importantes quando se trata de manutenção e ajuste.
Os exemplos são baseados em uma configuração com Ubuntu, Apache e PHP 8.3 ou 8.4. Muitas das dicas também se aplicam se você usar PHP-FPM ou Nginx em vez de Apache.
Aumente o limite de upload do PHP e ajuste os timeouts
Para carregar arquivos grandes de forma confiável na Nextcloud, vários parâmetros PHP devem funcionar juntos. Em Ubuntu com Apache e PHP 8.4 você costuma editar:
sudo nano /etc/php/8.4/apache2/php.ini
Configurações importantes para uploads e timeouts:
| Configuração | Valor de exemplo | Efeito |
|---|---|---|
memory_limit | 1024M ou 2G | Máximo de RAM por processo PHP |
upload_max_filesize | 8G | Tamanho máximo de um único arquivo carregado. |
post_max_size | 8G ou maior | Tamanho máximo de todo o requisição POST |
max_file_uploads | 200 | Quantos arquivos podem ser carregados por requisição |
default_socket_timeout | 900 | Tempo limite em segundos para fluxos, por exemplo uploads lentos |
Algumas regras:
post_max_sizedeve ser pelo menos tão grande quantoupload_max_filesize, idealmente ligeiramente maior.- Não exagere com valores absurdos como 256G se seu servidor tem apenas 16GB de RAM e 2 TB de armazenamento. Ajuste os valores para sua configuração.
- Para arquivos muito grandes o tempo limite é muitas vezes o problema real. Aumente esses valores também:
max_execution_timepor exemplo3600max_input_timepor exemplo3600
Exemplo de trecho de um php.ini Arquivo:
memory_limit = 2G
upload_max_filesize = 8G
post_max_size = 8G
max_file_uploads = 200
max_execution_time = 3600
max_input_time = 3600
default_socket_timeout = 900
zlib.output_compression = On
zlib.output_compression_level = 6
O zlib.output_compression A configuração pode ajudar a reduzir o tamanho da resposta, especialmente em conexões mais lentas. Certifique-se de que seu proxy ou servidor não comprima a mesma resposta uma segunda vez.
Se você usar Nginx ou um proxy inverso na frente do Apache, você também tem que ajustar os limites de upload e tempo limite lá, por exemplo:
- Nginx:
client_max_body_size - Apache:
LimitRequestBodyE intervalos de tempo comoProxyTimeoutouRequestReadTimeout
Otimize o desempenho do Nextcloud com APCu e Opcache
O desempenho da Nextcloud melhora muito se você configurar PHP Opcache e um cache local como APCu.
Em seu php.ini ou um dedicado apcu.ini Você pode ativar APCu assim:
apc.enabled=1
apc.shm_segments=1
apc.shm_size=256M
apc.entries_hint=8192
Valores como apc.shm_size=768M De suas anotações estão bem para grandes instalações com muitos usuários. Para um pequeno servidor privado da Nextcloud 128M a 256M geralmente é suficiente.
PHP Opcache armazena scripts compilados em memória para que eles não precisem ser analisados repetidamente:
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=20000
opcache.max_wasted_percentage=10
Em termos simples:
opcache.memory_consumptiondefine quanto RAM Opcache pode usar. 128 a 256 MB é um bom ponto de partida para muitos servidores da Nextcloud.opcache.max_accelerated_filescontrola quantos arquivos PHP podem ser armazenados em cache. Valores entre 10000 e 20000 funcionam bem para configurações típicas da Nextcloud.
Depois de mudar as configurações PHP você deve reiniciar Apache ou PHP-FPM:
sudo systemctl restart apache2
# oder
sudo systemctl restart php8.4-fpm
Ative o Cron e configure tarefas em segundo plano
Nextcloud executa muitas tarefas em segundo plano: gerar pré-visualizações, limpar ações antigas, sincronizar armazenamento externo, atualizar o cache de arquivos e muito mais. Por padrão, isso é executado via AJAX que é fácil de configurar, mas ruim para o desempenho, porque trabalhos só começam quando alguém está ativo no navegador.
É melhor mudar para um sistema Cronjob. Abra as configurações de administração da Nextcloud, vá para “Configurações básicas” e mude “Tarefas em segundo plano” para “Cron”.
Então crie um Cronjob como o www-data usuário:
sudo -u www-data crontab -e
Por exemplo:
*/5 * * * * php --define apc.enable_cli=1 -f /var/www/html/cron.php > /dev/null 2>&1
Agora o Nextcloud Cron é executado a cada 5 minutos, independentemente da atividade do usuário na interface web.
Em suas anotações você também usa trabalhos extras de manutenção com occ files:scan para analisar pastas específicas de usuários ou armazenamento externo. Isso é absolutamente bom, mas tente não fazer varreduras completas muitas vezes. Uma varredura noturna por caminhos críticos geralmente é suficiente, caso contrário você colocará carga desnecessária em seu banco de dados.
Otimize o arquivo config.php do Nextcloud
O arquivo config/config.php controla muitas funções internas da Nextcloud. Em uma instalação padrão você edita assim:
nano /var/www/html/config/config.php
Estas são algumas configurações e suas funções:
'memcache.local' => '\\OC\\Memcache\\APCu',
'preview_max_memory' => 4096,
'versions_retention_obligation' => '5,auto',
'trashbin_retention_obligation' => '5,auto',
'filelocking.enabled' => false,
'check_data_directory_permissions' => false,
'files.chunked_upload.max_size' => 20971520,
'enabledPreviewProviders' => array(
'OC\\Preview\\PNG',
'OC\\Preview\\JPEG',
'OC\\Preview\\GIF',
'OC\\Preview\\HEIC',
'OC\\Preview\\BMP',
'OC\\Preview\\XBitmap',
'OC\\Preview\\MP3',
'OC\\Preview\\TXT',
'OC\\Preview\\MarkDown',
'OC\\Preview\\OpenDocument',
'OC\\Preview\\Krita',
'OC\\Preview\\PDF',
'OC\\Preview\\SVG',
'OC\\Preview\\EPS',
'OC\\Preview\\DOC',
'OC\\Preview\\DOCX',
'OC\\Preview\\TIFF',
'OC\\Preview\\Photoshop',
'OC\\Preview\\PhotoshopPSB',
'OC\\Preview\\MP4',
),
Breve resumo:
memcache.localcom APCu é essencial para o desempenho. Sem ele, Nextcloud vai se sentir muito lento.preview_max_memorylimita a RAM usada para gerar pré-visualizações. O padrão é muito menor, 4096 MB é bastante generoso. Ajuste o valor para combinar com seu hardware.versions_retention_obligationetrashbin_retention_obligationControle quanto tempo versões e conteúdo do lixo são mantidos. Retenção menor economiza espaço em disco, mas reduz as opções de restauração.files.chunked_upload.max_sizeAfeta o tamanho do pedaço quando carregado. O valor está em bytes. 20971520 é equivalente a 20 MB. Pedaços maiores podem melhorar o desempenho em linhas rápidas, mas são mais sensíveis a conexões instáveis.
Tenha cuidado com:
'filelocking.enabled' => false,
'check_data_directory_permissions' => false,
- Você só deve desativar.
filelocking.enabledSe você realmente sabe o que está fazendo. Uma abordagem melhor é configurar Redis comomemcache.lockingPara que o acesso simultâneo aos arquivos seja tratado com segurança. check_data_directory_permissionsPronto parafalsePode fazer sentido em instalações especiais, mas você também perde uma verificação de segurança que avisa sobre permissões erradas.
Comandos occ importantes para manutenção e desempenho
A ferramenta CLI Nextcloud occ é extremamente útil para tarefas de manutenção e ajuste. Você costuma executar comandos como este:
sudo -u www-data php /var/www/html/occ status
Alguns comandos úteis:
occ status
Mostra informações básicas sobre sua instância Nextcloud.occ db:add-missing-indices
Adiciona índices de banco de dados faltando e pode acelerar muitas consultas.occ db:convert-filecache-bigint
Converte colunas no banco de dados para tipos mais adequados para melhor desempenho e estabilidade.occ files:scan --allou com--path
Verifica novamente o sistema de arquivos e atualiza o cache de arquivos. Muito útil se os arquivos aparecerem no disco, mas não na Nextcloud. Não faça exames completos a cada hora, isso sobrecarrega o banco de dados.occ preview:pre-generate
Juntamente com o aplicativo Gerador de Visualização você pode pré-gerar pré-visualizações à noite para que os usuários vejam imagens e PDFs muito mais rápido na interface web.
Não se esqueça do banco de dados, armazenamento e rede
Se você realmente quer otimizar seu servidor Nextcloud, você também deve olhar além do PHP e arquivos de configuração.
- Otimização do banco de dados
- Se possível, use MariaDB ou PostgreSQL.
- Certifique-se que o buffer seja grande o suficiente, por exemplo:
- MariaDB:
innodb_buffer_pool_sizepara pequenos servidores com 1 a 2 GB.
- MariaDB:
- Faça backups regulares e verifique os registros para consultas lentas.
- Sistema de armazenamento e arquivos
- SSD ou NVMe trazem um aumento significativo de desempenho comparado aos HDDs antigos.
- Para muitos arquivos pequenos, vale a pena dar uma olhada no sistema de arquivos e as opções de montagem.
- Armazenamento externo (SMB, NFS) é conveniente, mas muitas vezes mais lento do que o armazenamento local.
- Rede e Proxy Reverso
- Certifique-se que sua linha de internet tenha velocidade de upload suficiente, especialmente para arquivos grandes.
- Verifique os timeouts e limites do corpo da requisição no proxy inverso (Nginx, Traefik, Apache Proxy).
- Ative HTTP/2 ou HTTP/3 se a sua configuração suportar para processar muitas solicitações pequenas de forma mais eficiente.
Este artigo foi traduzido com a ajuda de IA.


