Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 7160|Odpowiedź: 5

Docker modyfikuje i ogranicza CPU, pamięć i inne zasoby kontenerowe

[Skopiuj link]
Opublikowano 06.08.2022 13:55:37 | | | |
Wymagania: Tworząc kontener dockera, możesz ograniczyć maksymalne zużycie pamięci kontenera, dodając parametr -m.

Przegląd limity pamięci kontenera

Maszyna gospodarza instaluje pendrive 8G i tworzy 3 kontenery, z których maksymalna pamięć kontenera itsvse-redis jest ograniczona do 512M, a pozostałe dwa kontenery nie są ograniczone, jak pokazano na poniższym rysunku:



Szczegółowe wyjaśnienie formatu informacji wyjściowych

[KONTENER]: Wyświetla ID kontenera w krótkiej formie.
CPU %: Zużycie CPU.
[UŻYCIE/LIMIT PAMIĘCI]: Pamięć obecnie używana oraz maksymalna ilość pamięci, jaką można wykorzystać.
[MEM %]: Pokazuje zużycie pamięci w procentach.
[NET I/O]: Dane sieciowe I/O.
[BLOCK I/O]: Dane I/O dysku.
[PIDS]:P numer identyfikacyjny.

Polecenie aktualizacji Dockera

Polecenie aktualizacji docker dynamicznie aktualizuje konfigurację kontenera. Możesz użyć tego polecenia, aby zapobiec nadmiernemu zużywaniu zasobów kontenerom z ich hostów Docker. Za pomocą jednego polecenia możesz ustawić limity dla jednego kontenera lub wielu kontenerów. Aby określić wiele kontenerów, należy podać listę nazw kontenerów lub identyfikatorów oddzielonych spacjami.

Opis OPCJI

nazwa
opis
--błkio-waga
Blokowanie IO (waga względna), między 10 a 1000, 0 jest wyłączone (domyślnie tłumione)
--okres procesora
Limit czasu trwania CPU CFS (Totally Fair Scheduler)
--cpu-quota
Limit limitów CPU CFS (Completely Fair Scheduler)
--CPU-RT-okres
API 1.25+, które ogranicza czas rzeczywistego CPU do mikrosekund
--cpu-rt-runtime
API 1.25+, które ogranicza czas działania CPU w czasie rzeczywistym do mikrosekund
--udziały procesora, -c
Udział CPU (waga względna)
--Procesorów
API 1.29+, liczba procesorów
--cpuset-cpu
Dozwolony procesor (0-3,0,1)
--cpuset-mem
Dozwolony MEM (0-3,0,1)
--pamięć jądrowa
Ograniczenia pamięci jądra
--memory-swap
Limit wymiany wynosi pamięć plus swapowanie, "-1", aby umożliwić nieograniczone swapowanie
--memory-reservatio
Miękki limit pamięci
--pamięć, -m
Limit pamięci
--PIDS-limit
API 1.40+, dostosuj limity pojemników PIDS (-1 oznacza nieograniczone)
--restart
Zrestartuj politykę, aby zadziałała po opuszczeniu kontenera

Dokumentacja:Logowanie do linku jest widoczne.

Załóżmy, że ograniczasz pojemnik php5-fpmMaksymalne zużycie pamięci 1024M (1G), polecenie brzmi następująco:



(Koniec)




Poprzedni:Komunikacja między oknami HTML5 PostMessage
Następny:[Turn] Zadanie zdania. Wynik zostanie zablokowany, jak inaczej napisać ten kod?
 Ziemianin| Opublikowano 06.08.2022 13:58:43 |
Jeśli nie ustawisz parametru --memory-swap, możesz otrzymać błąd:

Odpowiedź błędu od demona: Nie można zaktualizować kontenera ae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3: Limit pamięci powinien być mniejszy niż już ustawiony limit memoryswap, Aktualizuj swap pamięci w tym samym czasie
 Ziemianin| Opublikowano 06.08.2022 14:31:57 |
Linux wykorzystuje lookbusy do symulacji wykorzystania CPU
https://www.itsvse.com/thread-10260-1-1.html
Opublikowano 06.08.2022 15:52:44 |
Naucz się uczyć
 Ziemianin| Opublikowano 01.07.2023 21:46:50 |
Opcje uruchomieniowe dla pamięci Docker, CPU i GPU:Logowanie do linku jest widoczne.

--szczegóły wymiany pamięci

--memory-swap to flaga modyfikatora, która ma sens tylko wtedy, gdy --memory jest również ustawiona. Gdy kontener zużywa całą dostępną pamięć RAM, użycie swap pozwala kontenerowi zapisywać nadmiar pamięci na dysku. W aplikacjach, które często przełączają pamięć na dysk, wydajność na tym cierpi.

Jej sceneria mogą mieć złożone skutki:

Jeśli --memory-swap jest ustawione na dodatnią liczbę całkowitą, to oba --memory muszą być ustawione na --memory-swap. --memory-swap oznacza całkowitą ilość pamięci i stref swap, które można wykorzystać, a --memory kontroluje ilość pamięci używanej w strefach nieswap. więcJeśli --memory="300m" i --memory-swap="1g", kontener może zamienić przestrzeń na 300m pamięci i 700m (1g - 300m).

Jeśli --memory-swap jest ustawione na 0, ustawienie jest ignorowane, a wartość uznawana za nieustaloną.

Jeśli --memory-swap jest ustawiony na tę samą wartość co --memory, a --memory na dodatnią liczbę całkowitą, kontener nie ma dostępu do swapu。 Zobacz Zapobieganie kontenerom przed używaniem swapów.

Jeśli --memory-swap nie jest ustawiony, a --memory jest ustawiony, kontener może wykorzystać tyle swap --memory, ile jest ustawione (jeśli kontener hosta jest skonfigurowany z pamięcią swap). Na przykład, jeśli --memory="300m" i --memory-swap nie są ustawione, kontener może zajmować łącznie 600m pamięci i przestrzeni swap.

Jeśli --memory-swap jest wyraźnie ustawiony na -1, kontener może używać nieograniczonej liczby swapów, do liczby dostępnej w systemie hosta.

W kontenerze narzędzia takie jak darmowe raportują dostępne wymiany dla hosta zamiast raportować o wymienionych w kontenerze. Nie polegaj na wynikach darmowych lub podobnych narzędzi, aby ocenić, czy giełda istnieje.
 Ziemianin| Opublikowano 16.02.2024 04:07:22 |

Jeśli --memory-swap nie jest ustawiony,-- pamięć jest ustawiana na wartość,Domyślne --memory-swap może używać tej samej pamięci co --memoryNa przykład, jeśli ,-- memory-swap=1G, możesz użyć 1G przestrzeni swap, a ostatecznie kontener może wykorzystać 2G pamięci (--memory 1G przestrzeni + --memory-swap 1G przestrzeni).

Oznacza to, że gdy --pamięć jest ustawiona,-- swap pamięci można rozumieć jako całkowity limit pamięci, a dostępna przestrzeń swap jest równa wartości memory-swap minus memory.

Sprawdź konfigurację kontenera --memory-swap za pomocą następującego polecenia:



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

Powyższa konfiguracja polega na tym, że kontener ogranicza pamięć --memory=512M, a --memory-swap nie jest ustawiony.
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com