Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 7160|Répondre: 5

Docker modifie et restreint le CPU conteneur, la mémoire et d’autres ressources

[Copié le lien]
Publié sur 06/08/2022 13:55:37 | | | |
Exigences : Lors de la création d’un conteneur docker, vous pouvez limiter l’utilisation maximale de la mémoire du conteneur en ajoutant le paramètre -m.

Examiner les limites de mémoire des conteneurs

La machine hôte installe une clé USB 8G et crée 3 conteneurs, dont la mémoire maximale du conteneur itsvse-redis est limitée à 512M, et les deux autres conteneurs ne sont pas restreints, comme montré dans la figure ci-dessous :



Explication détaillée du format de l’information de sortie

[CONTENEUR] : Affiche l’ID du conteneur sous forme courte.
Pourcentage CPU : utilisation CPU.
[UTILISATION/LIMITE DE MÉMOIRE] : La mémoire actuellement utilisée et la mémoire maximale pouvant être utilisée.
[MEM %] : Affiche l’utilisation de la mémoire en pourcentage.
[NET I/O] : Données d’E/S réseau.
[E/S DE BLOC] : Données d’E/S disque.
[PIDS]:P numéro d’identification.

Commande de mise à jour Docker

La commande docker update met à jour dynamiquement la configuration du conteneur. Vous pouvez utiliser cette commande pour empêcher les conteneurs de consommer trop de ressources de leurs hôtes Docker. Avec une seule commande, vous pouvez fixer des limites sur un seul conteneur ou plusieurs conteneurs. Pour spécifier plusieurs conteneurs, fournissez une liste de noms ou d’identifiants de conteneurs séparés par des espaces.

OPTIONS Description

nom
description
--poids blkio
Blocage d’IO (poids relatif), entre 10 et 1000, 0 est désactivé (suppression par défaut)
--point CPU
Limiter la durée du CPU CFS (Totalement équitable dans l’ordonnanceur)
--quota CPU
Limiter les quotas de CFS (Scheduler Complètement Équitable) du CPU
--cpu-rt-période
API 1.25+, qui limite le temps réel du CPU à des microsecondes
--CPU-RT-runtime
API 1.25+, qui limite le temps d’exécution en temps réel du processeur à des microsecondes
--CPU-Shares, -C
Part du CPU (poids relatif)
--Processeurs
API 1.29+, nombre de processeurs
--cpuset-cpus
CPU autorisé (0-3,0,1)
--cpuset-mem
Autorisé MEM (0-3,0,1)
--mémoire-noyau
Limites de mémoire du noyau
--échange de mémoire
La limite de swap est égale à la mémoire plus le swapping, « -1 » pour permettre un swap illimité
--mémoire-réservatio
Limite souple de la mémoire
--mémoire, -m
Limite de mémoire
--pids-limite
API 1.40+, ajuster les limites des PIDs du conteneur (-1 signifie illimité)
--redémarrer
Redémarrer la politique pour qu’elle s’applique lorsque le conteneur sort

Documentation:La connexion hyperlientérée est visible.

Supposons que vous limitiez le conteneur php5-fpmUtilisation maximale de la mémoire 1024M (1G), la commande est la suivante :



(Fin)




Précédent:Communication interfenêtres HTML5 PostMessage
Prochain:[Tourner] Une phrase Tâche. Le résultat sera verrouillé, comment écrire ce code autrement ?
 Propriétaire| Publié sur 06/08/2022 13:58:43 |
Si vous ne définissez pas le paramètre --memory-swap, vous pouvez obtenir une erreur :

Réponse à l’erreur du démon : Impossible de mettre à jour le conteneur ae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3 : La limite mémoire doit être inférieure à la limite de memoryswap déjà définie, mettre à jour le memoryswap en même temps
 Propriétaire| Publié sur 06/08/2022 14:31:57 |
Linux utilise lookbusy pour simuler l’utilisation du processeur
https://www.itsvse.com/thread-10260-1-1.html
Publié sur 06/08/2022 15:52:44 |
Apprendre à apprendre
 Propriétaire| Publié sur 01/07/2023 21:46:50 |
Options d’exécution pour la mémoire Docker, le processeur et le GPU :La connexion hyperlientérée est visible.

--détails de l’échange de mémoire

--mémoire-swap est un drapeau modificateur qui n’a de sens que si --mémoire est également activé. Lorsqu’un conteneur utilise toute la RAM disponible, l’utilisation du swap permet au conteneur d’écrire des besoins excédentaires en mémoire sur le disque. Pour les applications qui échangent fréquemment mémoire vers disque, les performances en souffrent.

Ses décors peuvent avoir des effets complexes :

Si --memory-swap est défini à un entier positif, alors les deux --mémoires doivent être fixées à --memory-swap. --memory-swap représente la quantité totale de mémoire et de zones d’échange pouvant être utilisées, et --mémoire contrôle la quantité de mémoire utilisée dans les zones non swap. doncSi --memory="300m » et --memory-swap="1g », le conteneur peut échanger l’espace avec 300m de mémoire et 700m (1g - 300m).

Si --memory-swap est fixé à 0, le paramètre est ignoré et la valeur est considérée comme non définie.

Si --memory-swap est fixé à la même valeur que --memory, et --memory à un entier positif, le conteneur n’a pas accès à swap。 Voir Empêcher les conteneurs d’utiliser des swaps.

Si --memory-swap n’est pas défini et --memory est défini, le conteneur peut utiliser autant de mémoire swap que défini (si le conteneur hôte est configuré avec de la mémoire swap). Par exemple, si --memory="300m » et --memory-swap ne sont pas activés, le conteneur peut utiliser un total de 600m de mémoire et d’espace d’échange.

Si --memory-swap est explicitement fixé à -1, le conteneur peut utiliser un nombre illimité d’échanges, jusqu’au nombre disponible sur le système hôte.

À l’intérieur du conteneur, des outils comme Free rapportent les échanges disponibles pour l’hôte au lieu de rapporter les échanges disponibles dans le conteneur. Ne comptez pas sur la sortie d’outils gratuits ou similaires pour déterminer si un échange existe.
 Propriétaire| Publié sur 16/02/2024 04:07:22 |

Si --memory-swap n’est pas défini,-- mémoire est définie à une valeur,Le système par défaut --memory-swap peut utiliser la même mémoire que --memoryPar exemple, si vous ,-- mémoire-swap=1G, vous pouvez utiliser 1G d’espace d’échange, et enfin, le conteneur peut utiliser 2G de mémoire (--mémoire 1G + --mémoire-swap 1G).

Cela signifie que lorsque la mémoire --est définie,-- l’échange de mémoire peut être compris comme la limite totale de la mémoire, et l’espace d’échange disponible est égal à la valeur de l’échange de mémoire moins la mémoire.

Regardez la configuration conteneur --memory-swap avec la commande suivante :



« Mémoire » : 536870912, // 512M=536870912/1024/1024/1024
« MemoryReservation » : 0,
« MemorySwap » : 1073741824, // 1G=1073741824/1024/1024/1024
« MemorySwappiness » : nulle,

La configuration ci-dessus est que le conteneur limite la mémoire --memory=512M, et --memory-swap n’est pas défini.
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com