Un servidor de archivos puede parecer lento incluso cuando los gráficos de CPU muestran poca actividad: las listas de directorios tardan segundos, las cargas se bloquean durante picos de actividad o el proceso parece consumir más RAM cada día. Comparar ownCloud Infinite Scale (oCIS) con Nextcloud 28 mediante un único valor de "RAM por usuario" no diagnosticará este problema. No existe una prueba de rendimiento oficial que establezca un ganador universal, y ambos proyectos documentan que la demanda de memoria depende de la carga de trabajo y la configuración. Para una comparación útil, mida cada plataforma con los mismos archivos, clientes, almacenamiento, concurrencia y ventana de prueba; primero verifique si el cuello de botella se encuentra en la aplicación, la base de datos, el almacenamiento o el trabajo en segundo plano.
También existe una limitación de mantenimiento: Nextcloud 28 llegó al final de su ciclo de vida en diciembre de 2024, según el cronograma publicado por el proyecto. Ya no recibe correcciones rutinarias en el canal de lanzamiento de la comunidad. Si Nextcloud 28 ya está en funcionamiento, planifique una actualización antes de considerar la optimización del rendimiento como la solución completa. Los pasos que se describen a continuación ayudan a comparar el comportamiento y detectar la presión sobre los recursos; no garantizan que una versión sin soporte sea segura para su uso.
¿Por qué difieren las lecturas de RAM y de velocidad?
Infinite Scale y Nextcloud utilizan arquitecturas de servidor diferentes. oCIS se organiza como servicios en una plataforma basada en Go; el supervisor integrado inicia sus servicios como un único proceso de servidor. Sus necesidades de memoria pueden incluir metadatos de usuario y almacenamiento en caché, y la documentación de ownCloud relaciona específicamente la cantidad de espacios y metadatos almacenados en memoria con la RAM disponible y el rendimiento de acceso o sincronización. Que un servidor muestre un conjunto de trabajo mayor tras un escaneo inicial extenso no es, por sí solo, prueba de una fuga de memoria. Compruebe si la memoria se estabiliza tras la indexación y si la latencia se mantiene aceptable.
Nextcloud 28 es una aplicación PHP. Su consumo total depende del número de procesos de PHP-FPM y su comportamiento, las aplicaciones habilitadas, el servidor web, la base de datos, las cachés, la generación de vistas previas y las tareas en segundo plano. El manual de administración oficial indica que los requisitos de memoria varían considerablemente según los usuarios, las aplicaciones, los archivos y la actividad del servidor. Agregar procesos puede mejorar la gestión de solicitudes paralelas, aunque también aumenta el uso máximo de RAM. Por lo tanto, compare la memoria total del host o contenedor, no solo la de un proceso PHP con la de un proceso oCIS.
El almacenamiento puede ser un factor determinante en ambas plataformas. Un disco lento, un sistema de archivos de red, un almacenamiento de objetos, una base de datos o un análisis antivirus lentos pueden hacer que las solicitudes parezcan estar limitadas por la aplicación. Del mismo modo, una caché fría y una caché caliente no ofrecen tiempos de respuesta comparables. La pregunta clave no es qué producto tiene el menor tiempo de inactividad, sino qué pila completa la carga de trabajo real dentro del presupuesto de RAM y latencia.
Compárenlos bajo las mismas condiciones.
- Registre con precisión las configuraciones y el despliegue. Anote la versión de oCIS, el nivel de parche de Nextcloud 28, el sistema operativo, los límites de contenedores, la asignación de CPU, la base de datos, el sistema de almacenamiento, las aplicaciones y servicios habilitados, la versión de PHP y el servidor web. Mantenga el mismo hardware y la misma ruta de datos siempre que sea posible. No combine un límite de memoria de contenedor para una plataforma con el uso de memoria de todo el host para la otra.
- Utilice un conjunto de prueba representativo. Incluya las operaciones que suelen ser lentas en producción: sincronización inicial, sincronización incremental, exploración de directorios extensos, descarga y carga de archivos, uso compartido e inicios de sesión simultáneos. Mantenga la cantidad de archivos, la distribución del tamaño de los archivos, el número de clientes activos y la concurrencia constantes. Utilice una copia de prueba y evite sobrecargar los datos de producción.
- Mida una línea base y repita el proceso. Registre la memoria inactiva tras el arranque, la memoria durante cada carga de trabajo, el pico de memoria, la CPU, la E/S de disco, la actividad de la base de datos y la latencia de solicitud o sincronización. Ejecute el proceso una vez tras un arranque limpio y otra vez con las cachés precalentadas. Repita cada ejecución las veces necesarias para comprobar la estabilidad del resultado; no considere una sola ejecución como una prueba de rendimiento.
- Separe la memoria de la aplicación de la memoria del host. Para los contenedores, inspeccione el conjunto de trabajo de memoria y el límite del contenedor; para los procesos de Linux, utilice un monitor de procesos y las estadísticas de memoria del sistema. Observe también el intercambio, los eventos de falta de memoria y la memoria de la base de datos. Un aumento en la caché del host no equivale a una fuga de memoria de la aplicación, y los límites del contenedor pueden informar la memoria de manera diferente en distintos entornos de ejecución.
Para la monitorización de oCIS, consulte la documentación correspondiente a su versión para obtener información sobre las métricas del servicio y los puntos finales de Prometheus. La documentación de ownCloud 8.2 describe las métricas de los servicios compatibles; estas varían según el servicio y la versión. La descripción general de la administración y las herramientas del sistema de Nextcloud pueden revelar advertencias de configuración, mientras que la monitorización del sistema operativo y la base de datos es necesaria para explicar el consumo total de RAM. Mantenga la instrumentación de prueba idéntica siempre que sea posible y registre las unidades y los intervalos de muestreo.
¿Qué deberías ajustar primero?
1. Confirmar que existe una presión real sobre la memoria.
Busque un uso elevado y sostenido junto con intercambio de memoria, errores de memoria insuficiente (OOM kills), reinicios de contenedores o un aumento en la latencia de las solicitudes. Un alto uso de RAM por sí solo puede indicar un almacenamiento en caché útil. Si el uso aumenta durante un análisis y luego se estabiliza, aumentar la memoria podría ser innecesario. Si aumenta sin estabilizarse bajo una carga de trabajo constante, inspeccione los registros, la memoria a nivel de servicio y la tarea que se estaba ejecutando antes de cambiar los límites.
2. Reducir el trabajo de fondo evitable
Identifique la generación de vistas previas, el análisis antivirus, la indexación, los picos de sincronización y el mantenimiento programado. Estas tareas pueden competir con las solicitudes interactivas. Mueva las tareas pesadas a un período de menor actividad o reduzca su concurrencia utilizando los controles documentados para las versiones instaladas. No desactive el análisis de seguridad ni el mantenimiento necesario solo para que el gráfico parezca más pequeño; primero cuantifique el costo de la tarea y su impacto en el usuario.
3. Ajuste deliberadamente la configuración de PHP y caché de Nextcloud.
Para Nextcloud, verifique la configuración de PHP compatible con la versión 28 y ajuste el tamaño de los procesos de PHP-FPM según la RAM disponible. Un número insuficiente de procesos puede provocar la puesta en cola de solicitudes; un número excesivo puede agotar la memoria. Configure una caché de memoria compatible y Redis para el bloqueo de archivos transaccionales cuando sea necesario, siguiendo el manual de la versión 28. Las cachés consumen memoria, pero pueden mejorar las operaciones repetitivas, por lo que conviene comparar la latencia y la memoria. Evite copiar la configuración de las versiones actuales de Nextcloud a la versión 28 sin consultar la documentación específica de la versión.
4. Revisar los metadatos de oCIS y las opciones de almacenamiento.
Para escalar infinitamente, evalúe la cantidad de espacios, los metadatos de archivos y directorios, el controlador de almacenamiento y el comportamiento de la caché. La documentación oficial de requisitos previos explica que los metadatos retenidos en memoria afectan el rendimiento de acceso y sincronización. Si las cargas de trabajo de listado o sincronización a gran escala coinciden con una alta presión de memoria, compare las métricas de servicio y almacenamiento relevantes antes de agregar RAM. Verifique las opciones específicas de almacenamiento con la versión exacta de oCIS; no asuma que un backend de almacenamiento tiene el mismo comportamiento de memoria que otro.
5. Aumente la capacidad solo después de localizar la limitación.
Si la carga de trabajo medida presenta una latencia estable y aceptable, pero alcanza el límite de memoria, añada RAM o ajuste la asignación de recursos y repita la prueba. Si la latencia es alta, pero la memoria se mantiene estable, investigue las consultas a la base de datos, la latencia del almacenamiento, el rendimiento de la red, los bloqueos y la saturación de la CPU. Escalar los servicios de oCIS o añadir nodos de trabajo puede mejorar el rendimiento en una implementación bien diseñada, pero también modifica la demanda de recursos y la complejidad operativa. Modifique una variable a la vez para poder identificar el resultado.
Cómo verificar el resultado
Repita la carga de trabajo original después de cada cambio y compare las mismas métricas: RAM máxima y estable, actividad de intercambio, latencia de solicitud o sincronización p95 (si está disponible), transferencias completadas y recuento de errores o reinicios. Una solución exitosa debería mejorar el funcionamiento reportado por los usuarios sin generar presión de memoria en otros lugares. Para una comparación justa entre plataformas, publique las condiciones de prueba junto con los resultados e indique si las cachés estaban frías o calientes; no generalice a partir de un servidor o conjunto de datos pequeño.
Por último, considere el fin del ciclo de vida de Nextcloud 28 como un problema operativo independiente. Utilice la guía de actualización del proyecto para migrar a una versión compatible y, a continuación, vuelva a ejecutar la comparación, ya que el código más reciente, las versiones de PHP, las aplicaciones y los cambios de migración pueden alterar el tamaño de la instalación. Para conocer los requisitos de implementación actuales y la configuración específica de la versión, consulte los requisitos previos de ownCloud Infinite Scale 8.2 , las métricas de ownCloud para Prometheus , los requisitos del sistema de Nextcloud 28 , el almacenamiento en caché de memoria de Nextcloud 28 y el calendario de mantenimiento y lanzamiento de Nextcloud .