Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 7160|Risposta: 5

Docker modifica e limita CPU, memoria e altre risorse del container

[Copiato link]
Pubblicato su 06/08/2022 13:55:37 | | | |
Requisiti: Quando si crea un container docker, si può limitare l'uso massimo di memoria del container aggiungendo il parametro -m.

Rivedi i limiti della memoria dei container

La macchina host installa una chiavetta di memoria 8G e crea 3 container, di cui la memoria massima del contenitore itsvse-redis è limitata a 512M, e i restanti due container non sono limitati, come mostrato nella figura sottostante:



Spiegazione dettagliata del formato delle informazioni di output

[CONTENITORE]: Mostra l'ID del contenitore in una forma breve.
Percentuale di CPU: utilizzo della CPU.
[USO/LIMITE DI MEM]: La memoria attualmente utilizzata e la memoria massima utilizzabile.
[MEM %]: Mostra l'uso della memoria in percentuale.
[NET I/O]: Dati I/O di rete.
[I/O BLOCCO]: Dati I/O del disco.
[PIDS]:P numero di identificazione.

Comando Docker update

Il comando docker update aggiorna dinamicamente la configurazione del container. Puoi usare questo comando per evitare che i container consumino troppe risorse dai loro host Docker. Con un solo comando, puoi impostare limiti su un singolo container o più container. Per specificare più container, fornisci un elenco di nomi o ID dei container separati da spazi.

Descrizione delle OPZIONI

nome
descrizione
--blkio-weight
Blocco IO (peso relativo), tra 10 e 1000, 0 è disabilitato (predefinito soppresso)
--CPU-punto
Limitare la durata del CFS (Totally Fair Scheduler) della CPU
--quota CPU
Limitare le quote CPU CFS (Scheduler completamente equo)
--cpu-rt-punto
API 1.25+, che limita il tempo reale della CPU a microsecondi
--cpu-rt-runtime
API 1.25+, che limita il tempo di esecuzione in tempo reale della CPU a microsecondi
--CPU-shares, -c
Quota CPU (peso relativo)
--Cpu
API 1.29+, numero di CPU
--cpuset-cpu
CPU consentita (0-3,0,1)
--cpuset-mem
Permesso MEM (0-3,0,1)
--memoria kernel
Limiti di memoria del kernel
--scambio di memoria
Il limite di swap è uguale a memoria più swapping, "-1" per consentire lo scambio illimitato
--memory-reservatio
Limite morbido della memoria
--memoria, -m
Limite di memoria
--pids-limite
API 1.40+, regolare i limiti dei container pids (-1 significa illimitato)
--riavviare
Riavvia la policy per applicarla quando il container esce

Documentazione:Il login del link ipertestuale è visibile.

Supponiamo di limitare il container php5-fpmConsumo massimo di memoria 1024M (1G), il comando è il seguente:



(Fine)




Precedente:Comunicazione tra finestre HTML5 PostMessage
Prossimo:[Gira] Una frase Compito. Il risultato sarà bloccato, come altro scrivere questo codice?
 Padrone di casa| Pubblicato su 06/08/2022 13:58:43 |
Se non imposti il parametro --memory-swap, potresti ricevere un errore:

Risposta all'errore dal daemon: Non è possibile aggiornare il container ae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3: Il limite di memoria dovrebbe essere inferiore al limite di memoryswap già impostato, Aggiornare lo scambio di memoria contemporaneamente
 Padrone di casa| Pubblicato su 06/08/2022 14:31:57 |
Linux utilizza lookbusy per simulare l'uso della CPU
https://www.itsvse.com/thread-10260-1-1.html
Pubblicato su 06/08/2022 15:52:44 |
Impara a imparare
 Padrone di casa| Pubblicato su 01/07/2023 21:46:50 |
Opzioni di runtime per memoria, CPU e GPU Docker:Il login del link ipertestuale è visibile.

--dettagli dello scambio di memoria

--memory-swap è un flag modificatore che ha senso solo se --memory è impostato. Quando un container consuma tutta la RAM disponibile, l'uso dello swap permette al container di scrivere requisiti di memoria in eccesso sul disco. Per le applicazioni che scambiano frequentemente memoria su disco, le prestazioni ne risenteno.

Le sue impostazioni possono avere effetti complessi:

Se --memory-swap è impostato a un intero positivo, allora entrambi --memory devono essere impostati su --memory-swap. --memory-swap rappresenta la quantità totale di memoria e di swap zone utilizzabili, e --memory controlla la quantità di memoria utilizzata nelle zone non swap. pertantoSe --memory="300m" e --memory-swap="1g", il contenitore può scambiare spazio con memoria da 300m e 700m (1g - 300m).

Se --memory-swap è impostato a 0, l'impostazione viene ignorata e il valore è considerato non impostato.

Se --memory-swap è impostato allo stesso valore di --memory, e --memory è impostato a un intero positivo, il contenitore non ha accesso allo swap。 Vedi Impedire ai container di usare swap.

Se --memory-swap non è impostato e --memory è impostato, il contenitore può usare tanta memoria swap quanta è impostata (se il container host è configurato con memoria swap). Ad esempio, se --memory="300m" e --memory-swap non sono impostati, il contenitore può utilizzare un totale di 600m di memoria e spazio di scambio.

Se --memory-swap è esplicitamente impostato a -1, il contenitore può utilizzare un numero illimitato di swap, fino al numero disponibile sul sistema host.

All'interno del contenitore, strumenti come Free riportano gli scambi disponibili per l'host invece di riportare gli scambi disponibili all'interno del container. Non affidarti all'output di strumenti gratuiti o simili per determinare se esiste uno scambio.
 Padrone di casa| Pubblicato su 16/02/2024 04:07:22 |

Se --memory-swap non è impostato,-- la memoria è impostata a un valore,Il default --memory-swap può usare la stessa memoria di --memoryAd esempio, se ,-- scambio di memoria=1G, puoi usare 1G di spazio di scambio, e infine il contenitore può usare 2G di memoria (--memoria 1G spazio + --memoria 1G spazio).

Ciò significa che quando --memory è impostato,-- il memory-swap può essere inteso come il limite totale di memoria, e lo spazio di swap disponibile è uguale al valore di memory-swap meno memoria.

Guarda la configurazione del contenitore --memory-swap con il seguente comando:



"Memoria": 536870912, // 512M=536870912/1024/1024/1024
"MemoryReservation": 0,
"MemorySwap": 1073741824, // 1G=1073741824/1024/1024/1024
"Scambio di memoria": nullo,

La configurazione sopra è che il contenitore limita la memoria --memory=512M, e --memory-swap non è impostato.
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com