Se il carico della CPU del tuo server Nextcloud aumenta improvvisamente durante la creazione delle anteprime, spesso significa che il carico di lavoro si presenta in modo improvviso: gli utenti aprono cartelle ricche di immagini, viene indicizzata una libreria di grandi dimensioni oppure un processo di anteprima tenta di generare più dimensioni di quelle necessarie. Installa l'app Generatore di anteprime di Nextcloud, lasciala elaborare i file nuovi e modificati secondo una pianificazione controllata e riduci le dimensioni delle anteprime non necessarie. Questo sposta il lavoro al di fuori delle sessioni di navigazione più intense; tuttavia, non rende gratuita la conversione delle immagini né elimina il carico di lavoro iniziale necessario per recuperare il ritardo.
Questi passaggi seguono il file README del Generatore di anteprime e la documentazione di Nextcloud 35, verificata il 10 ottobre 2026. Conferma la compatibilità della tua versione nell'App Store di Nextcloud. Il file README indica i file crittografati come non supportati.
Perché la generazione dell'anteprima influisce sull'utilizzo della CPU?
Nextcloud crea miniature su richiesta degli utenti, a meno che non esista già un'anteprima. La decodifica, il ridimensionamento e la conversione delle immagini, soprattutto per originali di grandi dimensioni o con diverse dimensioni di destinazione, possono consumare CPU e memoria. Un picco di richieste rende visibile questo processo contemporaneamente all'utilizzo interattivo.
Preview Generator mette in coda i file nuovi o modificati per l'elaborazione in background. Le anteprime esistenti sono più economiche da gestire, ma quelle mancanti continuano a utilizzare il percorso on-demand di Nextcloud. L'app sposta parte del lavoro nei periodi di minore attività; non può ridurre la potenza di elaborazione totale né risolvere altri colli di bottiglia come la conversione video o la lentezza dell'archiviazione.
Configura una coda di anteprima controllata
1. Verifica la modalità di esecuzione in background e la compatibilità dell'app.
Nelle impostazioni di amministrazione, controlla i processi in background. Il processo integrato di Preview Generator richiede la modalità Cron; il suo file README indica che AJAX e Webcron non sono supportati per questo processo di lunga durata. Nextcloud consiglia di utilizzare il cron di sistema. Verifica che la pagina di amministrazione riporti l'utilizzo di Cron.
Installa Preview Generator dalla schermata App oppure, se la tua distribuzione utilizza OCC e consente l'installazione di app, esegui questi comandi dalla directory di installazione di Nextcloud. Su Debian o Ubuntu, l'account del server web è in genere www-data; usa l'utente HTTP effettivo e la versione di PHP CLI per il tuo host:
sudo -u www-data php /var/www/nextcloud/occ app:install previewgenerator
sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator
Se è già installato, salta il primo comando. Verifica lo stato e i comandi disponibili:
sudo -u www-data php /var/www/nextcloud/occ app:list
sudo -u www-data php /var/www/nextcloud/occ list preview
Eseguire OCC come utente HTTP in modo che la proprietà dei file rimanga coerente. Percorsi e utenti variano a seconda dell'implementazione. Consultare la documentazione di Nextcloud relativa a OCC .
2. Riduci le varianti di anteprima prima di avviare un'esecuzione di generazione su larga scala
Preview Generator può creare miniature quadrate e anteprime con proporzioni personalizzabili, in base alle dimensioni configurabili. Il file README specifica che le dimensioni devono essere potenze di quattro e che un valore vuoto esclude questa categoria di anteprime. Di seguito è riportato un profilo iniziale semplificato per un server con problemi di carico. Questo profilo mantiene le piccole anteprime quadrate e due proporzioni, escludendo le varianti separate per sola larghezza e sola altezza.
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="64 256" previewgenerator squareSizes
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="256 1024" previewgenerator fillWidthHeightSizes
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="" previewgenerator widthSizes
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="" previewgenerator heightSizes
Questo profilo a basso carico non è universale: le app potrebbero richiedere anteprime più grandi o di forme diverse. Se le miniature sono mancanti o sfocate, identifica la visualizzazione richiesta e aggiungi solo le sue dimensioni. Dimensioni maggiori aumentano l'elaborazione e l'utilizzo della cache. Il set minimo consigliato nel README per File, Foto e Attività utilizza una dimensione maggiore di 4096 pixel; valuta questo compromesso in base al tuo hardware. Consulta il README ufficiale di Preview Generator ; utilizza una dimensione con rapporto d'aspetto maggiore di 4096 pixel, quindi valuta questo compromesso in base al tuo hardware.
Le impostazioni e preview_max_ximpongono un limite massimo di pixel complessivo. Esegui un backup del file prima di modificarlo e assicurati che sia compatibile con le dimensioni dell'app scelta. Disabilitando le anteprime, le miniature verranno rimosse da tutte le app.preview_max_yconfig/config.php
3. Pianifica il comando di pre-generazione dell'app senza duplicare il suo worker
Per un server di piccole dimensioni, il gestore di coda integrato può essere sufficiente una volta attivata la modalità Cron. Il suo job predefinito è limitato a un massimo di cinque minuti per esecuzione e l'applicazione fornisce statistiche sulla coda per il monitoraggio. Se è necessario un intervallo di tempo prevedibile al di fuori dei picchi di attività, utilizzare invece il comando OCC dedicato nel cron di sistema. Quando si utilizza questa pianificazione personalizzata, disabilitare il job di coda predefinito dell'applicazione in modo che i due meccanismi non entrino in conflitto.
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value=true --type=boolean previewgenerator job_disabled
Quindi modifica il crontab per l'utente del server web ( sudo crontab -u www-data -e) e aggiungi un esempio di pianificazione come:
*/10 * * * * php -f /var/www/nextcloud/occ preview:pre-generate
Dieci minuti sono solo un esempio. Scegli una cadenza e un intervallo di tempo adatti al tuo traffico e alla tua capacità; verifica i percorsi di PHP e OCC. Non pianificare il comando anche altrove. Mantieni attivo cron.phpil job regolare di Nextcloud, che esegue altre attività in background. Consulta la guida ai job in background di Nextcloud per la configurazione del cron di sistema.
4. Evitare una corsa di recupero incontrollata la prima volta
Il file README suggerisce preview:generate-alldi sovrascrivere i file esistenti dopo l'installazione. Su una libreria di grandi dimensioni, questa operazione di recupero può causare un picco significativo di utilizzo della CPU. Evitate di sovrascrivere molti processi su un server sovraccarico. Iniziate con un singolo utente o percorso durante un periodo di inattività e monitorate CPU, memoria, velocità di trasmissione del disco e spazio libero. Il comando supporta ID utente, percorsi e numero di processi; iniziate con un solo processo. Se necessario, suddividete la scansione in più finestre.
Verificare che il carico stia diventando prevedibile
Dopo l'esecuzione del comando, controlla la coda:
sudo -u www-data php /var/www/nextcloud/occ preview:queue-stats
Le statistiche della coda includono anteprime obsolete. Un backlog in calo e picchi di utilizzo della CPU che terminano con l'esecuzione di lavori programmati indicano che la coda sta procedendo. Apri una cartella rappresentativa per verificare le miniature, quindi osserva la normale navigazione. Confronta l'utilizzo della CPU a livelli di traffico simili; non raggiungerà mai lo zero.
Se la coda non si riduce, controlla i log di cron ed esegui il programma preview:pre-generate -vvin una finestra di dialogo controllata per visualizzare i file elaborati. Se l'utilizzo della CPU rimane elevato anche dopo lo svuotamento della coda, esamina altri processi PHP, job o servizi multimediali. Se le anteprime occupano troppo spazio su disco, rimuovi le dimensioni non utilizzate o riducile. Verifica che le anteprime rimanenti supportino le visualizzazioni richieste dagli utenti.
Riferimenti ufficiali