Πώς να περιορίσετε τους πόρους που μπορούν να χρησιμοποιηθούν από ένα κοντέινερ LXD

Σε προηγούμενο άρθρο, δείξαμε Λεπτομερής εισαγωγή στο κοντέινερ LXD και πώς να ξεκινήσετε , σε περίπτωση που δεν είστε εξοικειωμένοι με την πλατφόρμα.

Στις περισσότερες περιπτώσεις, θα χρησιμοποιείτε πολλά δοχεία στο ίδιο σύστημα για να σπάσετε μεγαλύτερα μπλοκ σε μικρότερα στοιχεία. Είναι λογικό να περιοριστεί ο αριθμός των πόρων που μπορεί να χρησιμοποιήσει κάθε στοιχείο. μα γιατί? Ο αριθμός των λόγων είναι προφανώς τόσο απεριόριστος όσο και ο αριθμός των σεναρίων στα οποία μπορείτε να χρησιμοποιήσετε δοχεία.

Πότε είναι χρήσιμα τα όρια στα δοχεία LXD

Παρέχετε υπηρεσίες και δώστε σε κάθε πελάτη ένα παράδειγμα LXD. Για παράδειγμα, αυτός θα μπορούσε να είναι ένας μεγάλος διακομιστής και φιλοξενείτε κάθε ιστότοπο πελάτη σε ξεχωριστό κοντέινερ. Εάν ένας ιστότοπος δέχεται πολλές ξαφνικές επισκέψεις, μπορεί να επιβραδύνει άλλες περιπτώσεις. Με τα απαραίτητα όρια (μέγιστοι πόροι), μόνο ένα κοντέινερ θα επιβραδυνθεί, τα υπόλοιπα θα λειτουργούν κανονικά.

Σε παρόμοιο σενάριο, μπορείτε εύκολα να πουλήσετε διαφορετικά προγράμματα υπηρεσιών. Ένας πελάτης μπορεί να πληρώσει για τον τόμο πόρου Χ και ο άλλος μπορεί να πληρώσει για τον τόμο Υ. Μπορείτε να το προσαρμόσετε εύκολα με μερικές απλές εντολές.

Μπορείτε να προστατευθείτε από απλούστερες μορφές επιθέσεων άρνησης υπηρεσίας. Όταν ένα κοντέινερ βομβαρδιστεί, θα φτάσει τα όρια χρήσης πόρων. Άλλα δοχεία δεν θα επηρεαστούν.

Έχετε δύο κοντέινερ που το καθένα χρησιμοποιεί το 100% της διαθέσιμης CPU. Ωστόσο, θέλετε ο ένας να τελειώσει τη δουλειά πιο γρήγορα από τον άλλο. Για παράδειγμα, κάποιος μπορεί να δείξει αύριο ένα βίντεο ενός έργου που χρειάζεστε. Μπορείτε να ρυθμίσετε το 90% του χρόνου CPU στο πρώτο και το 10% στο δεύτερο.

Φυσικά, μπορεί να έχετε τους δικούς σας λόγους. Και αν χρησιμοποιείτε μόνο ένα δοχείο σε ολόκληρο το σύστημα, μπορεί να μην το χρειάζεστε. Αλλά εάν χρησιμοποιείτε πολλά κοντέινερ, θα πρέπει πάντα να ορίζετε κάποιο είδος περιορισμού. Επειδή μια επίθεση, σφάλμα ή άλλη μορφή ακατάλληλης συμπεριφοράς σε ένα μόνο παράδειγμα LXD μπορεί να επηρεάσει και να επιβραδύνει ολόκληρο το σύστημα. Όσο περισσότερα κοντέινερ έχετε, τόσο πιο πιθανό είναι να συμβούν τέτοια σενάρια.

Πώς να ορίσετε όρια πόρων σε κοντέινερ LXD

Ο έλεγχος πόρων που σχετίζεται με τις λειτουργίες του δίσκου θα πρέπει να έχει εγκατεστημένο το ZFS. αν Ακολούθησα το σεμινάριο εδώ Έχει ήδη εγκατασταθεί. Διαφορετικά, εγκαταστήστε τα βοηθητικά προγράμματα ZFS όπως φαίνεται στο σεμινάριο και, στη συνέχεια, επανεκκινήστε την παρακάτω εντολή. Επιλέξτε ZFS όταν ερωτηθείτε ποιο αποθηκευτικό χώρο υποστήριξης να χρησιμοποιήσετε.

sudo lxd init

Μειώστε τη χρήση μνήμης

Στις παρακάτω εντολές, αντικαταστήστε το "όνομα_κοντέινερΜε το πραγματικό όνομα του κοντέινερ σας. Βάζοντας ένα απλό όριο μνήμης όπως η ακόλουθη καταχώρηση:

Η διαμόρφωση lxc ορίζει όρια container_name. μνήμη 100MB

γράψε "GB" αντί "MBΑν θέλετε να χρησιμοποιήσετε gigabytes αντί για megabyte.

Περιορίστε τη χρήση της CPU

Όταν θέλετε να περιορίσετε τον αριθμό των πυρήνων CPU που μπορεί να χρησιμοποιήσει το κοντέινερ, πληκτρολογήστε:

Η ρύθμιση παραμέτρων lxc ορίζει τα όρια container_name.cpu 2

Για να επιλέξετε συγκεκριμένους πυρήνες CPU, χρησιμοποιήστε:

Η ρύθμιση παραμέτρων lxc ορίζει τα όρια ονόματος_κοντέινερ.cpu 0-0

Αυτό θα κάνει το κοντέινερ να χρησιμοποιήσει μόνο την πρώτη CPU. Για να χρησιμοποιήσετε το δεύτερο, μπορείτε να πληκτρολογήσετε 1-1. Για να χρησιμοποιήσετε όλους τους πυρήνες της CPU από την 0η έως την 3η, μπορείτε να γράψετε XNUMX-XNUMX.

Ένας άλλος τύπος περιορισμού είναι ο χρόνος CPU που μπορεί να χρησιμοποιήσει το κοντέινερ.

Η ρύθμιση παραμέτρων lxc ορίζει το container_name limits.cpu.allowance σε 10ms/100ms

Αυτό θα επέτρεπε στο κοντέινερ να χρησιμοποιεί μόνο δέκα χιλιοστά του δευτερολέπτου χρόνου CPU σε κάθε 100 χιλιοστά του δευτερολέπτου, που είναι περίπου το 10% μιας μεμονωμένης CPU.

Μειώστε τη χρήση του δίσκου

Για να περιορίσετε τους πόρους που σχετίζονται με το δίσκο, πρέπει πρώτα να προσθέσετε τη συσκευή ριζικού δίσκου στο κοντέινερ σας. Είναι ήδη εκεί από προεπιλογή, εξάγεται από το προεπιλεγμένο προφίλ LXD. Αλλά δεν μπορείτε να αλλάξετε τις ρυθμίσεις του ανά κοντέινερ μέχρι να το κάνετε.

συσκευή διαμόρφωσης lxc προσθήκη ονόματος_κοντέινερ root disk pool=προεπιλεγμένη διαδρομή=/

Εάν ονομάζετε πισίνα διαφορετικά, αντικαταστήστε τη λέξη "προεπιλογή" με το όνομα της πισίνας αποθήκευσης. Αν ξεχάσατε το όνομά του, μπορείτε να το δείτε με:

Λίστα αποθήκευσης LXC

Για να περιορίσει το χώρο στο δίσκο μια παρουσία LXD μπορεί να χρησιμοποιήσει:

lxc config device set container_name root size 7GB

Δυστυχώς, τα όρια I/O (ταχύτητα ανάγνωσης/εγγραφής και IOPS) δεν λειτουργούν στο παρόν.

Περιορίστε τη χρήση του δικτύου

Όπως και με τους δίσκους, πρέπει πρώτα να προσθέσετε μια εικονική συσκευή Ethernet που μπορείτε να διαμορφώσετε. Βρείτε το όνομα της γέφυρας δικτύου που συνδέει τις παρουσίες σας LXD με τον έξω κόσμο.

Λίστα δικτύων lxc

αντικαταστήστε "lxdbr0Εάν είναι απαραίτητο (αν η γέφυρα έχει διαφορετική ονομασία στην περίπτωσή σας). Εάν δεν επιλέξατε τον τύπο δικτύου ως γέφυρα (προεπιλεγμένη απάντηση), στα βήματα διαμόρφωσης "lxd init" ίσως χρειαστεί να προσαρμόσετε την παρακάτω εντολή για να αντικατοπτρίζει την επιλογή σας. Για παράδειγμα, μπορεί να χρειαστεί να αντικαταστήσετε τη λέξη "nictype" με ό,τι χρησιμοποιήσατε και για το δίκτυό σας LXD.

Προσθήκη container_name eth0 στη συσκευή διαμόρφωσης lxc, όνομα_κοντέινερ = eth0, nictype = γεφυρωμένος γονέας = lxdbr0

Τέλος, ορίστε περιορισμούς για την είσοδο στο δίκτυο (λήψη) ή/και την έξοδο (φόρτωση).

Η συσκευή διαμόρφωσης lxc ορίζει τα όρια eth0 στο όνομα_κοντέινερ. είσοδος 1Mbit

1 megabyte είναι ένα megabyte (δεν megabyte). Ένα byte έχει 8 bit, πράγμα που σημαίνει ότι αυτό θα περιορίσει τις λήψεις σε περίπου 1/8 = 0.125 Mbps, που είναι περίπου 120 KB. Έτσι, αν θέλετε να το κατεβάσετε με ταχύτητα 1 MB/sec (megabyte), πολλαπλασιάστε το με 8 και ορίστε το μέγιστο σε 8 Mbit.

Για να κάνετε ταμείο, χρησιμοποιήστε:

Η συσκευή διαμόρφωσης lxc ορίζει τα όρια eth0 στο όνομα_κοντέινερ. έξοδος 1Mbit

συμπέρασμα

Αυτό καλύπτει τις πιο συχνά χρησιμοποιούμενες λειτουργίες που σχετίζονται με τον περιορισμό χρήσης πόρων. Υπάρχουν όμως πολλές μεταβλητές που μπορείτε να ορίσετε χρησιμοποιώντας την ομάδα συσκευών διαμόρφωσης lxc και την ομάδα διαμόρφωσης lxc. Μπορείτε να διαβάσετε περισσότερα σχετικά με τις προσαρμόσιμες ιδιότητες κοντέινερ στη σελίδα GitHub από την LXD.

Κουμπί μετάβασης στην κορυφή