Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 7160|Απάντηση: 5

Το Docker τροποποιεί και περιορίζει την CPU, τη μνήμη και άλλους πόρους του κοντέινερ

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 6/8/2022 1:55:37 μ.μ. | | | |
Απαιτήσεις: Κατά τη δημιουργία ενός κοντέινερ docker, μπορείτε να περιορίσετε τη μέγιστη χρήση μνήμης του κοντέινερ προσθέτοντας την παράμετρο -m.

Ελέγξτε τα όρια μνήμης κοντέινερ

Το κεντρικό μηχάνημα εγκαθιστά ένα memory stick 8G και δημιουργεί 3 κοντέινερ, εκ των οποίων η μέγιστη μνήμη του κοντέινερ itsvse-redis περιορίζεται στα 512 εκατομμύρια και τα υπόλοιπα δύο κοντέινερ δεν είναι περιορισμένα, όπως φαίνεται στο παρακάτω σχήμα:



Λεπτομερής επεξήγηση της μορφής πληροφοριών εξόδου

[CONTAINER]: Εμφανίζει το αναγνωριστικό του κοντέινερ σε μια σύντομη φόρμα.
CPU %: Χρήση CPU.
[MEM USAGE/LIMIT]: Η μνήμη που χρησιμοποιείται αυτήν τη στιγμή και η μέγιστη μνήμη που μπορεί να χρησιμοποιηθεί.
[MEM %]: Εμφανίζει τη χρήση μνήμης ως ποσοστό.
[NET I/O]: Δεδομένα εισόδου/εξόδου δικτύου.
[BLOCK I/O]: Δεδομένα εισόδου/εξόδου δίσκου.
[PIDS]:P Αριθμός ταυτότητας.

Εντολή ενημέρωσης Docker

Η εντολή ενημέρωσης docker ενημερώνει δυναμικά τη διαμόρφωση του κοντέινερ. Μπορείτε να χρησιμοποιήσετε αυτήν την εντολή για να αποτρέψετε τα κοντέινερ από το να καταναλώνουν πάρα πολλούς πόρους από τους κεντρικούς υπολογιστές Docker τους. Με μία μόνο εντολή, μπορείτε να ορίσετε όρια σε ένα μόνο κοντέινερ ή σε πολλά κοντέινερ. Για να καθορίσετε πολλά κοντέινερ, καταχωρίστε μια λίστα με ονόματα κοντέινερ ή αναγνωριστικά διαχωρισμένα με κενά διαστήματα.

ΕΠΙΛΟΓΕΣ Περιγραφή

Όνομα
περιγραφή
--blkio-βάρος
Αποκλεισμός IO (σχετικό βάρος), μεταξύ 10 και 1000, το 0 είναι απενεργοποιημένο (η προεπιλογή έχει κατασταλεί)
--CPU-περίοδος
Περιορίστε τη διάρκεια του CPU CFS (Totally Fair Scheduler).
--Ποσόστωση CPU
Περιορίστε τα όρια CPU CFS (Completely Fair Scheduler)
--cpu-rt-περίοδος
API 1.25+, το οποίο περιορίζει τον χρόνο της CPU σε πραγματικό χρόνο σε μικροδευτερόλεπτα
--cpu-rt-χρόνος εκτέλεσης
API 1.25+, το οποίο περιορίζει τον χρόνο εκτέλεσης της CPU σε πραγματικό χρόνο σε μικροδευτερόλεπτα
--cpu-μετοχές, -c
Μερίδιο CPU (σχετικό βάρος)
--Επεξεργαστές
API 1.29+, αριθμός CPU
--cpuset-επεξεργαστές
Επιτρεπόμενη CPU (0-3,0,1)
--cpuset-mem
Επιτρεπόμενα MEM (0-3,0,1)
--πυρήνας-μνήμη
Όρια μνήμης πυρήνα
--ανταλλαγή μνήμης
Το όριο εναλλαγής είναι ίσο με τη μνήμη συν την εναλλαγή, "-1" για να είναι δυνατή η απεριόριστη εναλλαγή
--μνήμη-reservatio
Μαλακό όριο μνήμης
--μνήμη, -μ
Όριο μνήμης
--pids-όριο
API 1.40+, προσαρμογή ορίων pids κοντέινερ (-1 σημαίνει απεριόριστο)
--επανεκκίνηση
Επανεκκινήστε την πολιτική που θα ισχύει κατά την έξοδο του κοντέινερ

Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Ας υποθέσουμε ότι περιορίζετε το κοντέινερ php5-fpmΜέγιστη χρήση μνήμης 1024M (1G), η εντολή είναι η εξής:



(Τέλος)




Προηγούμενος:Επικοινωνία μεταξύ παραθύρων HTML5 PostMessage
Επόμενος:[Στροφή] Μια πρόταση Εργασία.Αποτέλεσμα θα κλειδωθεί, πώς αλλιώς να γράψετε αυτόν τον κώδικα;
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 6/8/2022 1:58:43 μ.μ. |
Εάν δεν ορίσετε την παράμετρο --memory-swap, ενδέχεται να λάβετε ένα σφάλμα:

Απόκριση σφάλματος από τον δαίμονα: Δεν είναι δυνατή η ενημέρωση του κοντέινερ ae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3: Το όριο μνήμης πρέπει να είναι μικρότερο από το ήδη καθορισμένο όριο ανταλλαγής μνήμης, Ενημερώστε την εναλλαγή μνήμης ταυτόχρονα
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 6/8/2022 2:31:57 μ.μ. |
Το Linux χρησιμοποιεί το lookbusy για την προσομοίωση της χρήσης της CPU
https://www.itsvse.com/thread-10260-1-1.html
Δημοσιεύτηκε στις 6/8/2022 3:52:44 μ.μ. |
Μαθαίνω να μαθαίνω
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 1/7/2023 9:46:50 μ.μ. |
Επιλογές χρόνου εκτέλεσης για μνήμη, CPU και GPU Docker:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

--Λεπτομέρειες ανταλλαγής μνήμης

Το --memory-swap είναι μια σημαία τροποποίησης που έχει νόημα μόνο αν έχει οριστεί και η --memory. Όταν ένα κοντέινερ καταναλώνει όλη τη διαθέσιμη μνήμη RAM, η χρήση του swap επιτρέπει στο κοντέινερ να γράψει τις πλεονάζουσες απαιτήσεις μνήμης στο δίσκο. Για εφαρμογές που αλλάζουν συχνά μνήμη σε δίσκο, η απόδοση υποφέρει.

Οι ρυθμίσεις του μπορεί να έχουν πολύπλοκα εφέ:

Εάν το --memory-swap έχει οριστεί σε θετικό ακέραιο, τότε και τα δύο --memory πρέπει να οριστούν σε --memory-swap. --Η εναλλαγή μνήμης αντιπροσωπεύει τη συνολική ποσότητα μνήμης και ζωνών εναλλαγής που μπορούν να χρησιμοποιηθούν και --η μνήμη ελέγχει την ποσότητα μνήμης που χρησιμοποιείται σε ζώνες χωρίς εναλλαγή. επομένωςΕάν --memory="300m" και --memory-swap="1g", το κοντέινερ μπορεί να ανταλλάξει χώρο με μνήμη 300m και 700m (1g - 300m).

Εάν το --memory-swap έχει οριστεί σε 0, η ρύθμιση αγνοείται και η τιμή θεωρείται μη καθορισμένη.

Εάν το --memory-swap έχει οριστεί στην ίδια τιμή με το --memory και το --memory έχει οριστεί σε θετικό ακέραιο, το κοντέινερ δεν έχει πρόσβαση στο swap。 Ανατρέξτε στην ενότητα Αποτροπή χρήσης swaps από κοντέινερ.

Εάν δεν έχει οριστεί --memory-swap και έχει οριστεί --memory, το κοντέινερ μπορεί να χρησιμοποιήσει τόση swap --memory όσο έχει οριστεί (εάν το κοντέινερ κεντρικού υπολογιστή έχει ρυθμιστεί με μνήμη swap). Για παράδειγμα, εάν δεν έχουν οριστεί --memory="300m" και --memory-swap, το κοντέινερ μπορεί να χρησιμοποιήσει συνολικά 600 μέτρα μνήμης και να ανταλλάξει χώρο.

Εάν το --memory-swap έχει οριστεί ρητά σε -1, το κοντέινερ επιτρέπεται να χρησιμοποιεί απεριόριστο αριθμό ανταλλαγών, μέχρι τον αριθμό που είναι διαθέσιμος στο κεντρικό σύστημα.

Μέσα στο κοντέινερ, εργαλεία όπως η δωρεάν αναφορά για τις διαθέσιμες ανταλλαγές για τον κεντρικό υπολογιστή αντί για αναφορά για τις ανταλλαγές που είναι διαθέσιμες εντός του κοντέινερ. Μην βασίζεστε στην έξοδο δωρεάν ή παρόμοιων εργαλείων για να προσδιορίσετε εάν υπάρχει ανταλλαγή.
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 16/2/2024 4:07:22 π.μ. |

Εάν δεν έχει οριστεί --memory-swap,-- η μνήμη έχει οριστεί σε μια τιμή,Η προεπιλογή --memory-swap μπορεί να χρησιμοποιήσει την ίδια μνήμη με τη --memoryΓια παράδειγμα, εάν ,-- memory-swap=1G, μπορείτε να χρησιμοποιήσετε 1G χώρου ανταλλαγής και, τέλος, το κοντέινερ μπορεί να χρησιμοποιήσει 2G μνήμης (--memory 1G space + --memory-swap 1G space).

Αυτό σημαίνει ότι όταν έχει οριστεί --μνήμη,-- η εναλλαγή μνήμης μπορεί να γίνει κατανοητή ως το συνολικό όριο μνήμης και ο διαθέσιμος χώρος ανταλλαγής είναι ίσος με την τιμή της ανταλλαγής μνήμης μείον τη μνήμη.

Κοιτάξτε τη διαμόρφωση κοντέινερ --memory-swap με την ακόλουθη εντολή:



«Μνήμη»: 536870912, // 512M=536870912/1024/1024/1024
"ΚράτησηΜνήμης": 0,
"MemorySwap": 1073741824, // 1G=1073741824/1024/1024/1024
"MemorySwappiness": null,

Η παραπάνω διαμόρφωση είναι ότι το κοντέινερ περιορίζει τη μνήμη --memory=512M και το --memory-swap δεν έχει οριστεί.
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com