Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 7160|Răspunde: 5

Docker modifică și restricționează CPU-ul containerului, memoria și alte resurse

[Copiază linkul]
Postat pe 06.08.2022 13:55:37 | | | |
Cerințe: Când creezi un container docker, poți limita consumul maxim de memorie al containerului adăugând parametrul -m.

Revizuiește limitele memoriei containerului

Mașina gazdă instalează un stick de memorie 8G și creează 3 containere, dintre care memoria maximă a containerului itsvse-redis este limitată la 512M, iar celelalte două containere nu sunt restricționate, așa cum se arată în figura de mai jos:



Explicație detaliată a formatului informației de ieșire

[CONTAINER]: Afișează ID-ul containerului într-o formă scurtă.
Percentual CPU: Utilizarea CPU-ului.
[LIMITĂ DE UTILIZARE/MEM]: Memoria folosită în prezent și memoria maximă care poate fi utilizată.
[MEM %]: Afișează utilizarea memoriei ca procent.
[NET I/O]: Date I/O de rețea.
[BLOC I/O]: Date I/O disc.
[PIDS]:P număr de ID.

Comanda Docker update

Comanda docker update actualizează dinamic configurația containerului. Poți folosi această comandă pentru a preveni ca containerele să consume prea multe resurse de la gazdele lor Docker. Cu o singură comandă, poți seta limite pentru un singur container sau pentru mai multe containere. Pentru a specifica mai multe containere, oferă o listă de nume sau ID-uri ale containerelor separate prin spații.

OPȚIUNI Descriere

nume
descriere
--blkio-weight
Blocarea IO-ului (greutate relativă), între 10 și 1000, 0 este dezactivat (implicit suprimat)
--CPU-punct
Limitează durata CPU CFS (Totally Fair Scheduler)
--cota CPU-ului
Limitează cotele CPU CFS (Complete Fair Scheduler)
--cpu-rt-perioadă
API 1.25+, care limitează timpul în timp real al procesorului la microsecunde
--cpu-rt-runtime
API 1.25+, care limitează timpul de rulare în timp real al procesorului la microsecunde
--CPU-shares, -c
Cota CPU (ponderea relativă)
--Procesoare
API 1.29+, numărul de procesoare
--cpuset-cpus
CPU permis (0-3,0,1)
--cpuset-mem
Permis MEM (0-3,0,1)
--memorie-kernel
Limitele memoriei nucleului
--schimbarea memoriei
Limita de swap este egală cu memorie plus swapping, "-1" pentru a permite schimbarea nelimitată
--memorie-reservatio
Limita soft a memoriei
--memorie, -m
Limita memoriei
--pids-limit
API 1.40+, ajustarea limitelor PID-urilor containerului (-1 înseamnă nelimitat)
--reîncepe
Repornește politica pentru a se aplica când containerul iese

Documentație:Autentificarea cu hyperlink este vizibilă.

Să presupunem că limitezi containerul php5-fpmConsum maxim de memorie: 1024M (1G), comanda este următoarea:



(Sfârșit)




Precedent:Comunicare între ferestre PostMessage HTML5
Următor:[Întoarce] O propoziție Task. Rezultatul va fi blocat, altfel cum să scriu acest cod?
 Proprietarul| Postat pe 06.08.2022 13:58:43 |
Dacă nu setezi parametrul --memory-swap, s-ar putea să primești o eroare:

Răspuns la eroare de la daemon: Nu se poate actualiza containerul ae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3: Limita de memorie ar trebui să fie mai mică decât limita memoryswap deja setată, actualizează memoryswap-ul în același timp
 Proprietarul| Postat pe 06.08.2022 14:31:57 |
Linux folosește lookbusy pentru a simula utilizarea procesorului
https://www.itsvse.com/thread-10260-1-1.html
Postat pe 06.08.2022 15:52:44 |
Învață să înveți
 Proprietarul| Postat pe 01.07.2023 21:46:50 |
Opțiuni de runtime pentru memoria Docker, CPU și GPU:Autentificarea cu hyperlink este vizibilă.

--detalii despre schimbul memoriei

--memory-swap este un steag modificator care are sens doar dacă --memory este de asemenea setat. Când un container consumă toată memoria RAM disponibilă, folosirea swap-ului permite containerului să scrie cerințele suplimentare de memorie pe disc. Pentru aplicațiile care schimbă frecvent memoria pe disc, performanța are de suferit.

Setările sale pot avea efecte complexe:

Dacă --memory-swap este setat la un întreg pozitiv, atunci ambele --memorie trebuie setate la --memory-swap. --memory-swap reprezintă cantitatea totală de memorie și zone de swap care pot fi folosite, iar --memoria controlează cantitatea de memorie folosită în zonele non-swap. deciDacă --memory="300m" și --memory-swap="1g", containerul poate schimba spațiul cu 300m memorie și 700m (1g - 300m).

Dacă --memory-swap este setat la 0, setarea este ignorată și valoarea este considerată nesetată.

Dacă --memory-swap este setat la aceeași valoare ca --memory, iar --memory este setat la un întreg pozitiv, containerul nu are acces la swap。 Vezi Împiedicarea utilizării swap-urilor de către containere.

Dacă --memory-swap nu este setat și --memory este setat, containerul poate folosi la fel de multă memorie swap cât setat (dacă containerul gazdă este configurat cu memorie swap). De exemplu, dacă --memory="300m" și --memory-swap nu sunt setate, containerul poate folosi un total de 600m de memorie și spațiu de swap.

Dacă --memory-swap este setat explicit la -1, containerul are voie să folosească un număr nelimitat de swap-uri, până la numărul disponibil pe sistemul gazdă.

În interiorul containerului, instrumente precum Free raportează schimburile disponibile pentru gazdă, în loc să raporteze schimburile disponibile în interiorul containerului. Nu te baza pe rezultatele unor instrumente gratuite sau similare pentru a determina dacă există un schimb.
 Proprietarul| Postat pe 16.02.2024 04:07:22 |

Dacă --memory-swap nu este setat,-- memoria este setată la o valoare,Implicitul --memory-swap poate folosi aceeași memorie ca --memoryDe exemplu, dacă ,-- memorie-swap=1G, poți folosi 1G spațiu de swap, iar în final, containerul poate folosi 2G de memorie (--memorie spațiu 1G + --memorie-swap spațiu 1G).

Aceasta înseamnă că atunci când --memoria este setată,-- schimbul de memorie poate fi înțeles ca limita totală a memoriei, iar spațiul de schimbare disponibil este egal cu valoarea schimbului de memorie minus memoria.

Uită-te la configurația containerului --memory-swap cu următoarea comandă:



"Memorie": 536870912, // 512M=536870912/1024/1024/1024/1024
"MemoryReservation": 0,
"MemorySwap": 1073741824, // 1G=1073741824/1024/1024/1024
"MemorySwappiness": null,

Configurația de mai sus este că containerul limitează memoria --memory=512M, iar --memory-swap nu este setat.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com