Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 7160|Respuesta: 5

Docker modifica y restringe la CPU del contenedor, la memoria y otros recursos

[Copiar enlace]
Publicado en 6/8/2022 13:55:37 | | | |
Requisitos: Al crear un contenedor docker, puedes limitar el uso máximo de memoria del contenedor añadiendo el parámetro -m.

Revisa los límites de memoria del contenedor

La máquina anfitriona instala una memoria USB de 8G y crea 3 contenedores, de los cuales la memoria máxima del contenedor itsvse-redis está limitada a 512M, y los dos contenedores restantes no están restringidos, como se muestra en la figura siguiente:



Explicación detallada del formato de la información de salida

[CONTENEDOR]: Muestra el ID del contenedor en formato corto.
Porcentaje de CPU: Uso de CPU.
[USO/LÍMITE DE MEM]: La memoria utilizada actualmente y la memoria máxima que se puede utilizar.
[MEM %]: Muestra el uso de memoria en porcentaje.
[NET I/O]: Datos de E/S de red.
[E/S DE BLOQUE]: Datos de E/S de disco.
[PIDS]:P número de identificación.

Comando de actualización Docker

El comando docker update actualiza dinámicamente la configuración del contenedor. Puedes usar este comando para evitar que los contenedores consuman demasiados recursos de sus hosts Docker. Con un solo comando, puedes establecer límites para un solo contenedor o varios contenedores. Para especificar múltiples contenedores, proporciona una lista de nombres o IDs de contenedores separados por espacios.

OPCIONES Descripción

nombre
descripción
--blkio-weight
Bloqueando IO (peso relativo), entre 10 y 1000, 0 está desactivado (por defecto suprimido)
--CPU-punto
Limitar la duración del CFS (Planificador totalmente justo) de la CPU
--cuota de CPU
Limitar las cuotas de CFS (Scheduler Completamente Justo) de la CPU
--cpu-rt-periodo
API 1.25+, que limita el tiempo real de la CPU a microsegundos
--cpu-rt-runtime
API 1.25+, que limita el tiempo de ejecución en tiempo real de la CPU a microsegundos
--CPU-Shares, -C
Cuota de CPU (peso relativo)
--Cpus
API 1.29+, número de CPUs
--cpuset-cpus
CPU permitida (0-3,0,1)
--cpuset-mem
Permitido MEM (0-3,0,1)
--memoria kernel
Límites de memoria del núcleo
--intercambio de memoria
El límite de swap es igual a memoria más swapping, "-1" para permitir el swapping ilimitado
--memory-reservatio
Límite blando de memoria
--memoria, -m
Límite de memoria
--pids-límite
API 1.40+, ajustar los límites de los pids del contenedor (-1 significa ilimitado)
--reanudar
Reinicia la política para que se aplique cuando el contenedor salga

Documentación:El inicio de sesión del hipervínculo es visible.

Supongamos que limitas el contenedor php5-fpmUso máximo de memoria 1024M (1G), el comando es el siguiente:



(Fin)




Anterior:Comunicación entre ventanas en HTML5 PostMessage
Próximo:[Girar] Una frase Task. El resultado quedará bloqueado, ¿cómo si no escribir este código?
 Propietario| Publicado en 6/8/2022 13:58:43 |
Si no configuras el parámetro --memory-swap, puede que aparezca un error:

Respuesta al error del daemon: No se puede actualizar el contenedor ae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3: El límite de memoria debe ser menor que el límite de memoryswap ya establecido, Actualizar el Memoryswap al mismo tiempo
 Propietario| Publicado en 6/8/2022 14:31:57 |
Linux utiliza lookbusy para simular el uso de la CPU
https://www.itsvse.com/thread-10260-1-1.html
Publicado en 6/8/2022 15:52:44 |
Aprende a aprender
 Propietario| Publicado en 1/7/2023 21:46:50 |
Opciones de ejecución para memoria, CPU y GPU Docker:El inicio de sesión del hipervínculo es visible.

--detalles del intercambio de memoria

--memory-swap es una bandera modificadora que solo tiene sentido si --memory también está activada. Cuando un contenedor usa toda la RAM disponible, usar swap permite que el contenedor escriba requisitos de memoria excedentes en el disco. Para aplicaciones que cambian frecuentemente memoria a disco, el rendimiento se resiente.

Sus ajustes pueden tener efectos complejos:

Si --memory-swap está configurado a un entero positivo, entonces ambos --memory deben establecerse en --memory-swap. --memory-swap representa la cantidad total de memoria y zonas de intercambio que se pueden utilizar, y --memoria controla la cantidad de memoria utilizada en zonas no de swap. por lo tantoSi --memory="300m" y --memory-swap="1g", el contenedor puede intercambiar espacio con 300m de memoria y 700m (1g - 300m).

Si --memory-swap está configurado a 0, se ignora la configuración y el valor se considera no establecido.

Si --memory-swap se establece al mismo valor que --memory, y --memory a un entero positivo, el contenedor no tiene acceso al swap。 Consulta Impedir que los contenedores usen swaps.

Si --memory-swap no está activado y --memory está activado, el contenedor puede usar tanta memoria swap como set (si el contenedor anfitrión está configurado con swap memory). Por ejemplo, si --memory="300m" y --memory-swap no están activados, el contenedor puede usar un total de 600m de memoria y espacio de intercambio.

Si --memory-swap está explícitamente establecido en -1, el contenedor puede usar un número ilimitado de swaps, hasta el número disponible en el sistema anfitrión.

Dentro del contenedor, herramientas como Free informan sobre los intercambios disponibles para el host en lugar de informar sobre los intercambios disponibles dentro del contenedor. No dependas de la salida de herramientas gratuitas u similares para determinar si existe un intercambio.
 Propietario| Publicado en 16/2/2024 4:07:22 |

Si --memory-swap no está activado,-- memoria se establece en un valor,El predeterminado --memory-swap puede usar la misma memoria que --memoryPor ejemplo, si ,-- intercambio de memoria=1G, puedes usar 1G de espacio de intercambio, y finalmente, el contenedor puede usar 2G de memoria (--memoria espacio 1G + --espacio de intercambio de memoria 1G).

Esto significa que cuando se establece --memoria,-- el intercambio de memoria puede entenderse como el límite total de memoria, y el espacio de intercambio disponible es igual al valor del intercambio de memoria menos memoria.

Observa la configuración del contenedor --memory-swap con el siguiente comando:



"Memoria": 536870912, // 512M=536870912/1024/1024/1024
"MemoryReservation": 0,
"MemorySwap": 1073741824, // 1G=1073741824/1024/1024/1024
"Intercambio de memorias": nulo,

La configuración anterior es que el contenedor limita la memoria --memory=512M, y --memory-swap no está activado.
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com