Solucionar el alto consumo de CPU en la generación de vistas previas de Nextcloud: Configurar el generador de vistas previas.

Respuesta breve: Instala la aplicación Generador de previsualizaciones, actívala, realiza una generación inicial con un alcance controlado y luego programa las siguientes occ preview:pre-generatepara las horas de menor actividad. Además, limita el tamaño de las previsualizaciones y la cantidad de nuevas previsualizaciones que Nextcloud genera a la vez. La aplicación traslada el trabajo desde el momento en que el usuario abre un archivo; no impone un límite estricto de CPU y puede aumentar el uso del disco.

Esta configuración es adecuada para un servidor Nextcloud autohospedado donde las miniaturas provocan picos de uso de CPU notables durante la navegación, especialmente en un servidor pequeño con una biblioteca de fotos o documentos ya establecida. Es menos útil si su instancia utiliza cifrado del lado del servidor: el proyecto Preview Generator indica que el cifrado es una incompatibilidad conocida. El alojamiento administrado, Nextcloud AIO, Docker y las instalaciones de paquetes también utilizan rutas de comandos diferentes, así que adapte los comandos a su implementación. No los ejecute desde un directorio desconocido.

Las instrucciones actuales de la aplicación recomiendan instalarla y habilitarla, ejecutarla preview:generate-alluna vez y programar preview:pre-generatecambios posteriores en los archivos. El primer comando puede ser costoso en una biblioteca grande. Comience con un usuario o carpeta y un proceso. Consulte el archivo README del proyecto Generador de vista previa y las opciones de comando , y seleccione una versión compatible con su versión de Nextcloud en la tienda de aplicaciones de Nextcloud .

1. Confirma que esta es la solución correcta.

Primero, determine cuándo aumenta el uso de la CPU. Si ocurre cuando los usuarios abren carpetas con muchas fotos o documentos que requieren previsualizaciones, la pregeneración podría delegar gran parte de ese trabajo a una tarea programada. Si el uso de la CPU se mantiene alto cuando nadie está navegando, o si los picos coinciden con otro servicio, es posible que el Generador de Previsualizaciones no solucione la causa. Revise el monitor de procesos y los registros de Nextcloud antes de cambiar la configuración.

Preview Generator registra los archivos que se han añadido o modificado y los procesa en segundo plano. Las previsualizaciones existentes reducen el coste de las solicitudes posteriores, pero las que falten se pueden generar bajo demanda antes de que la tarea programada las procese. Esto significa que la aplicación reduce los picos de uso de CPU cuando la cola se llena; no puede garantizar un consumo nulo de CPU. Además, sacrifica espacio de almacenamiento para una entrega más rápida de las previsualizaciones. Una biblioteca pequeña con una navegación poco frecuente podría funcionar bien con el comportamiento bajo demanda de Nextcloud.

2. Instale la versión compatible de la aplicación.

Página genérica de administración en la nube con una tarjeta de aplicación de vista previa de imagen y su interruptor de activación encendido.
Una página genérica de administración en la nube muestra una tarjeta de aplicación con vista previa de imagen activada, que ilustra el paso de instalación y activación; el diseño no es una captura de pantalla específica de la versión.

Inicia sesión como administrador de Nextcloud, abre la sección Aplicaciones, busca Preview Generator e instálalo y actívalo. Antes de continuar, confirma que la App Store ofrece una versión estable para la versión principal de Nextcloud instalada. Evita copiar manualmente la carpeta de la última aplicación sobre una versión que la App Store marque como incompatible.

Los administradores con acceso a la consola pueden verificar o habilitar la aplicación occ. A continuación se muestra un comando típico de instalación de paquetes; modifique la ruta del binario de PHP y de Nextcloud para que coincidan con su host. Para Docker o AIO, utilice el comando de contenedor compatible o las instrucciones del programador para esa implementación.

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

3. Configura las tareas en segundo plano de Nextcloud para que se ejecuten con Cron.

En la configuración de administración de Nextcloud, seleccione Cron como modo de tarea en segundo plano y verifique que el cron del sistema Nextcloud se esté ejecutando correctamente. El archivo README de la aplicación indica que su tarea en segundo plano de vista previa integrada requiere el modo Cron; los modos Webcron y AJAX no son compatibles con esta tarea de larga duración. Si su cron habitual no funciona, instalar esta aplicación por sí sola no solucionará el problema.

No confunda la programación cron.php habitual de Nextcloud con la preview:pre-generateprogramación dedicada opcional de la aplicación. Son mecanismos distintos. Puede usar la tarea en segundo plano integrada de la aplicación o un comando cron del sistema específico. Si elige el comando dedicado, el proyecto recomienda desactivar la tarea en segundo plano de vista previa integrada para evitar que se ejecuten ambas rutas para la misma cola.

Página genérica de planificador con una tarea recurrente activa que da paso a una ventana de comandos y a una miniatura de los resultados.
Una página del programador muestra una tarea recurrente activa que transfiere el trabajo de vista previa a una ventana de comandos y devuelve resultados en miniatura.

4. Reduzca la carga de trabajo de vista previa antes de la primera ejecución masiva.

Panel de configuración genérico con ajustes tipo código encima de los controles para el tamaño de la vista previa y el uso del procesador.
Un panel de configuración genérico combina ajustes similares a los de un código con controles de tamaño de imagen y procesador, ilustrando los dos límites que los administradores deberían ajustar.

Para la creación de vistas previas que consumen muchos recursos de CPU, reduzca la cantidad de nuevas vistas previas que se ejecutan simultáneamente. En la referencia de configuración de Nextcloud 35, preview_concurrency_newse controla la generación simultánea de nuevas vistas previas; el valor predeterminado documentado es cuatro, y el manual recomienda que no supere el número de núcleos de CPU. En un servidor pequeño, pruebe con un valor como dos, o uno si el servidor deja de responder. Esto limita el trabajo simultáneo, pero una sola imagen o video grande aún puede consumir una cantidad significativa de CPU.

Las dimensiones de la vista previa también importan. Nextcloud 35 tiene un ancho y alto máximo predeterminado de 4096 píxeles. Reducir preview_max_xestos preview_max_yvalores config/config.phppuede disminuir el procesamiento y el consumo de memoria, aunque a costa de vistas previas más pequeñas. Realice una copia de seguridad del archivo de configuración e integre los ajustes en su matriz PHP existente; no reemplace el archivo con un fragmento. Por ejemplo, un administrador podría establecer ambos valores en 2048 y probar la calidad en las vistas de Archivos y Fotos.

La aplicación también puede generar varias variantes de tamaño. Su README proporciona un perfil de tamaño reducido para el uso común de Archivos, Fotos y Actividad: tamaños cuadrados 64 256, tamaños de ancho y alto completos 256 4096y vacíos widthSizesy heightSizespara omitir esos grupos de variantes. Use esas configuraciones solo si se ajustan a las aplicaciones que sus usuarios utilizan habitualmente; las líneas de tiempo de Recuerdos u otras aplicaciones pueden necesitar tamaños adicionales. El proyecto señala que los tamaños de vista previa deben cumplir con sus reglas de tamaño aceptadas y no pueden exceder los máximos configurados. Revise la configuración de tamaño y calidad de vista previa de Nextcloud y la referencia de configuración específica de la versión .

5. Generar vistas previas existentes en un pequeño lote inicial.

Una vez habilitada la aplicación y configurados los límites, ejecute el generador inicial en una carpeta de prueba o en un solo usuario, en lugar de en toda la instancia. La aplicación admite el filtrado por ID de usuario o ruta, y el comando acepta un número de procesos. Utilice un solo proceso para una primera pasada conservadora:

sudo -u www-data php /var/www/nextcloud/occ preview:generate-all --workers=1 --path="/alice/files/Photos"
Pantalla de configuración genérica de tareas en segundo plano con la opción de tarea programada seleccionada.
La página de configuración de tareas en segundo plano muestra la opción de tarea programada seleccionada; las etiquetas exactas y las opciones disponibles varían según la versión de Nextcloud.

Reemplace alicela ruta y la ruta de instalación de Nextcloud con valores reales de su servidor. La opción de ruta utiliza el formato /[username]/files/[folder path]. Si omite la ruta y el filtro de usuario, el comando podría recorrer toda la biblioteca. Ejecute el lote cuando los usuarios estén menos activos, supervise la CPU, la memoria y el espacio en disco, y deténgalo para reevaluar si el servidor se vuelve inestable. No aumente el número de trabajadores solo para terminar más rápido hasta que haya medido el efecto.

6. Programar los archivos recién agregados o modificados

Una vez que el lote de prueba funcione correctamente, agréguelo preview:pre-generatea una programación cron del sistema. El archivo README de la aplicación sugiere cada diez minutos como ejemplo, no como requisito. Elija un intervalo que coincida con el volumen de subida y el tiempo de inactividad disponible. Por ejemplo, un crontab propiedad de la cuenta del servidor web podría contener la siguiente línea, con las rutas ajustadas para la instalación:

*/10 * * * * cd /var/www/nextcloud && /usr/bin/php -f occ preview:pre-generate
Panel estilo terminal con un icono de carpeta seguido de miniaturas de imágenes generadas.
Una ventana de estilo terminal muestra la carpeta seleccionada, seguida de miniaturas de imágenes, lo que representa un primer intento de un solo trabajador en una ruta limitada.

Si utiliza este cron del sistema dedicado, desactive la tarea en segundo plano de vista previa integrada de la aplicación, tal como recomienda el proyecto. La configuración documentada de la aplicación es:

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

Mantén habilitada la tarea cron.php habitual de Nextcloud. Para contenedores y plataformas alojadas, usa el programador compatible de la plataforma en lugar de incluir una ruta de host en la entrada cron del contenedor. Si la aplicación está instalada con el cifrado habilitado, detente aquí y consulta con tu administrador o proveedor de alojamiento; actualmente, el proyecto indica que esta configuración no es compatible.

7. Supervisar la cola y confirmar la mejora.

Pantalla de monitorización genérica con un gráfico de uso de la CPU y dos barras de progreso de la cola.
Un panel de monitorización genérico combina un gráfico de CPU con barras de progreso de la cola para comparar la carga del servidor y la lista de tareas pendientes de vista previa.

Ejecute la aplicación occ preview:queue-statspara inspeccionar la cola de pregeneración y las vistas previas obsoletas. Si la cola se reduce entre ejecuciones programadas, indica que el proceso se está poniendo al día. Si crece constantemente, significa que los usuarios están agregando archivos más rápido de lo que el trabajo configurado los procesa; aumente la frecuencia de ejecución o los límites de trabajo permitidos con precaución, después de verificar que la carga adicional de CPU sea aceptable. La aplicación muestra límites para el tiempo de ejecución del trabajo y las vistas previas por ejecución. En su archivo README se indica que cero significa ilimitado, así que no elija cero a la ligera en un host con recursos limitados.

Compare los picos de uso de CPU antes y después de la implementación en momentos similares. Luego, abra una carpeta de fotos representativa y una vista previa de un documento como un usuario normal. Confirme que aparecen las miniaturas, que las páginas siguen respondiendo y que el uso de CPU se estabiliza después del procesamiento programado. Un perfil de CPU más estable durante el día con un progreso adecuado en la cola es un resultado útil; una acumulación de tareas pendientes que crece constantemente o sesiones de usuario más lentas indican que es necesario revisar la programación, el perfil de tamaño o el proveedor de vista previa subyacente.

Galería de archivos en la nube que muestra seis miniaturas de imágenes en una vista de carpeta.
Una galería al estilo de Archivos muestra miniaturas de imágenes, lo que representa la comprobación visual de que ahora se cargan las vistas previas solicitadas.

Límites importantes y limpieza segura

Algunos tipos de vista previa dependen de programas del servidor: el manual de Nextcloud menciona FFmpeg para vistas previas de vídeo y LibreOffice para vistas previas de documentos de oficina. Estos formatos pueden comportarse de forma diferente a las miniaturas de imagen habituales, y su compatibilidad depende de la configuración del proveedor. Comience por reducir la concurrencia y probar con un conjunto limitado de archivos antes de cambiar de proveedor o añadir servicios.

Si modificas las dimensiones de la vista previa o los tipos de archivo compatibles y necesitas descartar las vistas previas almacenadas en caché, Nextcloud 31 y versiones posteriores ofrecen occ preview:cleanupesta función, según el archivo README del proyecto. Elimina todos los archivos de vista previa generados, tras lo cual Nextcloud crea vistas previas bajo demanda a medida que los usuarios acceden a los archivos. Esto puede provocar temporalmente picos de uso de CPU que intentas reducir. Realiza copias de seguridad cuando sea necesario, programa la limpieza con antelación y evita eliminar manualmente el directorio de vista previa de appdata como parte de la optimización rutinaria. El archivo README del Generador de vistas previas también documenta un .nomediaarchivo para omitir una carpeta y sus descendientes cuando sea apropiado.

Símbolo de carpeta y archivo oculto junto a un escudo con un candado.
Junto a un escudo y un candado, aparecen una carpeta y un símbolo de archivo oculto, lo que ilustra la limitación del cifrado y la opción de omitir una carpeta.

En la práctica, Preview Generator es una buena opción cuando las previsualizaciones lentas bajo demanda generan picos de carga visibles, se puede programar el trabajo en segundo plano y se dispone de espacio en disco para los tamaños en caché. Combínelo con un límite de concurrencia moderado, dimensiones de previsualización que se ajusten a las necesidades reales de visualización y una ejecución masiva con pruebas previas. Si la instancia está cifrada, se gestiona sin programación de shell o tiene limitaciones de CPU por motivos ajenos a las solicitudes de previsualización, investigue estas limitaciones antes de la implementación.

Referencias oficiales

Dejar un comentario

Las 10 mejores herramientas de escaneo de ping para encontrar dispositivos en tu red.

Las 10 mejores herramientas de escaneo de ping para encontrar dispositivos en tu red.

Compara 10 herramientas de escaneo de ping para la detección rápida de redes LAN, el escaneo multiplataforma y la gestión de direcciones IP. Descubre qué puede (y qué no puede) revelarte un escaneo.

Las 6 mejores herramientas de gestión de red para el seguimiento del rendimiento

Las 6 mejores herramientas de gestión de red para el seguimiento del rendimiento

Compare seis herramientas de gestión de red para la monitorización del rendimiento, incluyendo la cobertura SNMP, la asignación de mapas, las alertas, los modelos de implementación y las ventajas y desventajas en cuanto a costes.

Los mejores analizadores de Wi-Fi para Windows, iOS y Android.

Los mejores analizadores de Wi-Fi para Windows, iOS y Android.

Compara las mejores aplicaciones de análisis Wi-Fi para Windows, iPhone y Android, incluyendo herramientas para la congestión de canales, la cobertura de la señal, los mapas de calor y la resolución de problemas de red.

Ping Monitor: 7 herramientas gratuitas y de código abierto para la disponibilidad de la red

Ping Monitor: 7 herramientas gratuitas y de código abierto para la disponibilidad de la red

Compara siete monitores de ping gratuitos y de código abierto, desde suites de red completas hasta sondas de latencia específicas, y elige el que mejor se adapte a tus necesidades en cuanto a disponibilidad, pérdida de paquetes e historial.

Calidad de Servicio en Redes: Qué es la Calidad de Servicio y cómo funciona

Calidad de Servicio en Redes: Qué es la Calidad de Servicio y cómo funciona

Aprenda qué significa QoS en redes, cómo las marcas DSCP y las colas de tráfico priorizan las aplicaciones de voz, vídeo y empresariales, y qué problemas no puede solucionar la QoS.

Las 7 mejores herramientas de gestión de direcciones IP para equipos de red

Las 7 mejores herramientas de gestión de direcciones IP para equipos de red

Compare siete herramientas de administración de direcciones IP para el descubrimiento de subredes, la coordinación de DNS y DHCP, el inventario de red y la gestión de direcciones IP de código abierto.

El mejor software de servidor SFTP para transferencias seguras de archivos.

El mejor software de servidor SFTP para transferencias seguras de archivos.

Compara software de servidor SFTP fiable para Windows y Linux, incluyendo OpenSSH, Bitvise, SolarWinds y SFTPGo. Encuentra la solución ideal para tus necesidades de seguridad y transferencia de archivos.

Buenas prácticas de monitorización de redes: qué monitorizar y qué herramientas utilizar.

Buenas prácticas de monitorización de redes: qué monitorizar y qué herramientas utilizar.

Cree un sistema práctico de monitorización de red con una cobertura clara de los dispositivos, métricas de rendimiento útiles, alertas procesables y una comparación de SolarWinds NPM, PRTG y OpManager.

Las 10 mejores herramientas de escaneo de red para descubrir dispositivos e IPs

Las 10 mejores herramientas de escaneo de red para descubrir dispositivos e IPs

Compare las herramientas de escaneo de red para la detección rápida de dispositivos, escaneos de IP multiplataforma y gestión de direcciones IP (IPAM) empresariales, con orientación sobre cómo adaptar cada opción a su red.

Cómo usar Nmap para realizar un rastreo de ruta y leer la ruta de red.

Cómo usar Nmap para realizar un rastreo de ruta y leer la ruta de red.

Utilice la opción --traceroute de Nmap para asignar saltos a un host autorizado, comprender la salida de saltos y RTT, y solucionar problemas de respuestas faltantes sin realizar un escaneo excesivo.