Inicio
» Cómo
»
Aumentar el límite de memoria del contenedor CODE sin adivinar
Aumentar el límite de memoria del contenedor CODE sin adivinar
Para asignar más memoria a un contenedor de Collabora Online CODE, aumente el límite de Docker en la configuración que lo crea, luego vuelva a crear el contenedor y confirme el límite efectivo con docker inspecto docker stats. Aumentar una configuración de la aplicación no incrementa el límite de Docker para contenedores, y el host o la máquina virtual de Docker Desktop deben tener suficiente memoria disponible para respetar un límite superior.
Ejemplo hipotético: Riley administra una implementación de Docker Compose en un único host. Supongamos que docker statsmuestra un límite de 2 GiB y un uso cercano a ese máximo mientras hay varios documentos abiertos. Riley está considerando un límite de 4 GiB. Estas cifras son solo ejemplos; no constituyen una recomendación de dimensionamiento de Collabora, una afirmación sobre el rendimiento ni un resultado de pruebas. El límite debe basarse en la carga observada y la capacidad del host.
1. Confirme que el contenedor realmente está tocando su tapa.
Ejecute estos comandos en el host de Docker, reemplazando collaboracon el nombre real del contenedor:
docker statsMuestra el uso actual y el límite del contenedor. La salida de inspección informa el límite de memoria configurado en bytes y si Docker registra el contenedor como OOM-killed. Un valor de inspección de 0significa que Docker no tiene un límite estricto explícito para ese contenedor; no significa que la máquina tenga RAM ilimitada. Una lectura alta por sí sola no es prueba de un evento de falta de memoria, por lo que debe compararse con el historial de reinicios, los registros y el momento en que los usuarios vieron fallas.
Ejemplo de diagnóstico hipotético: el contenedor CODE se está acercando a su límite configurado de 2 GiB.
Antes de aumentar el límite, compruebe cuánta RAM queda para el sistema operativo y otros servicios. La guía de recursos de Docker recomienda probar la demanda de la aplicación y ejecutar contenedores en hosts con recursos suficientes. En Docker Desktop, compruebe también Configuración > Recursos : la memoria asignada a la máquina virtual de Docker es un límite independiente compartido por sus contenedores. Aumentar el límite de CODE más allá de esa asignación no puede crear más memoria física; consulte la configuración de recursos de Docker Desktop .
2. Cambiar el límite del servicio Compose
Edita el servicio CODE existente en tu archivo Compose. Conserva su etiqueta de imagen, puertos, entorno, volúmenes, redes y política de reinicio actuales; agrega o actualiza solo la configuración de memoria. Para el ejemplo hipotético de 4 GiB de Riley:
Ejemplo de composición: establecer el límite de memoria a nivel de servicio manteniendo la etiqueta de imagen CODE implementada.
Este ejemplo utiliza la imagen oficial de Docker CODE de Collabora ; conserve la etiqueta que ya utiliza su implementación. mem_limites un límite máximo, no una reserva: Docker puede permitir que el contenedor utilice hasta esa cantidad, pero la configuración no reserva tanta RAM en el host. La referencia del servicio Docker Compose define mem_limity dice que debe coincidir con deploy.resources.limits.memorysi ambos están presentes. Si su implementación utiliza un orquestador o un archivo Compose administrado por la plataforma, utilice el campo de recursos admitido de esa plataforma y mantenga la coherencia de los valores de límite duplicados.
Si iniciaste CODE directamente con docker run, recréalo desde el comando original con --memory=4gy conserva todas sus opciones actuales. Para un cambio rápido en tiempo de ejecución en un contenedor Linux existente, Docker también admite docker update --memory 4g <container_name>. Trata el archivo Compose o el comando de ejecución original como la fuente de verdad para que un reemplazo posterior no restaure la capacidad anterior. Consulta la referencia de actualización de contenedores Docker .
3. Recrea el CÓDIGO para que el límite guardado surta efecto.
Desde el directorio que contiene el archivo Compose activo, valide la configuración combinada y, a continuación, vuelva a crear únicamente el servicio CODE:
docker compose config
docker compose up -d --no-deps --force-recreate collabora
Utilice la clave de servicio de su archivo en lugar de collabora. Revise la configuración renderizada para el nuevo límite antes de aplicarlo. Recrear CODE interrumpe brevemente las sesiones de edición que dependen de ese contenedor, así que programe el cambio cuando una breve interrupción del servicio sea aceptable. No elimine volúmenes ni ejecute docker compose down -v; esas operaciones son innecesarias para un cambio de límite de memoria y pueden eliminar datos persistentes pertenecientes a otros servicios.
Aplique la configuración de Compose editada y vuelva a crear únicamente el servicio CODE.
4. Verifique la nueva tapa y compruebe su comportamiento bajo carga.
Una vez que el servicio se restablezca, verifique el contenedor real, no solo el archivo YAML:
Para el valor de ejemplo 4g, la salida de inspección debería representar aproximadamente 4 GiB en bytes y docker statsmostrar un límite cercano a 4 GiB. La imagen a continuación utiliza una salida de ejemplo solo con fines ilustrativos. Luego, observe el código mientras abre los tipos de documentos y el número aproximado de sesiones simultáneas relevantes para su implementación. Confirme que el contenedor permanece en ejecución, que los errores visibles para el usuario cesan y que el host conserva memoria para sus otros procesos.
Patrón de verificación esperado para la configuración ficticia de 4 GiB; estos valores mostrados son una salida de ejemplo, no una implementación medida.
Si el problema continúa
Si el nuevo límite está presente pero CODE se reinicia, inspeccione docker inspectel estado docker logsy los eventos del kernel o Docker del host en busca de un registro de falta de memoria. Si el contenedor se mantiene en buen estado pero el procesamiento de documentos sigue activando la limpieza, es posible que Docker no sea el cuello de botella activo. coolwsdLa configuración propia de Collabora tiene un comportamiento de administración de memoria independiente del límite de cgroup de Docker; la plantilla de configuración del proyecto documenta sus controles del lado del servidor. Verifique la configuración de su versión de CODE instalada antes de modificarla.
No intente solucionar la incertidumbre asignando memoria ilimitada al contenedor ni desactivando el mecanismo de eliminación de procesos por falta de memoria. Docker advierte que un contenedor sin límite de memoria puede contribuir al agotamiento de la memoria del host y afectar a servicios no relacionados. Si el host no dispone de suficiente capacidad, la solución real consiste en aumentar la capacidad del host o de la máquina virtual Docker, reducir la carga de trabajo concurrente o distribuir las tareas, no en aumentar el límite más allá de la RAM disponible.