Πώς να ορίσετε όρια για διεργασίες που εκτελούνται από τον χρήστη στο Linux
Μια από τις ομορφιές του Linux είναι ότι μπορείτε να ελέγξετε σχεδόν τα πάντα σχετικά με αυτό. Αυτό δίνει σε έναν διαχειριστή συστήματος μεγάλο έλεγχο στο σύστημά του και καλύτερη αξιοποίηση των πόρων του συστήματος.
Αν και ορισμένοι μπορεί να μην είχαν σκεφτεί ποτέ να το κάνουν αυτό, είναι σημαντικό να γνωρίζετε ότι στο Linux μπορείτε να περιορίσετε τον πόρο που μπορεί να χρησιμοποιήσει ένας μεμονωμένος χρήστης και για πόσο χρόνο.
Διαβάστε επίσης: Πώς να αυξήσετε το όριο του αριθμού των ανοιχτών αρχείων στο Linux
Σε αυτό το σύντομο θέμα, θα σας δείξουμε πώς να περιορίσετε τον αριθμό των διεργασιών που ξεκινούν από τον χρήστη και πώς να ελέγξετε τα τρέχοντα όρια και να τα τροποποιήσετε.
Πριν προχωρήσουμε περαιτέρω, πρέπει να επισημάνουμε δύο πράγματα:
- Χρειάζεστε πρόσβαση root στο σύστημά σας για να τροποποιήσετε τα όρια χρήστη
- Πρέπει να είστε εξαιρετικά προσεκτικοί εάν σκοπεύετε να τροποποιήσετε αυτά τα όρια
Για να ρυθμίσουμε όρια χρήστη, θα χρειαστεί να επεξεργαστούμε το ακόλουθο αρχείο:
/etc/security/limits.conf
Αυτό το αρχείο χρησιμοποιείται για την εφαρμογή ulimit που δημιουργήθηκε από το pam_module.
Το αρχείο έχει την ακόλουθη σύνταξη:
<domain> <type> <item> <value>
Εδώ θα σταματήσουμε για να συζητήσουμε καθεμία από τις επιλογές:
- Τομέας – περιλαμβάνει ονόματα χρηστών, ομάδες, εύρη οδηγών κ.λπ
- Τύπος – ήπια και σκληρά όρια
- Στοιχείο – το στοιχείο που θα περιοριστεί – μέγεθος πυρήνα, μέγεθος αρχείου, nproc κ.λπ.
- Τιμή – αυτή είναι η τιμή για το δεδομένο όριο
Ένα καλό δείγμα για ένα όριο είναι:
@student hard nproc 20
Η παραπάνω γραμμή ορίζει ένα αυστηρό όριο έως 20 διαδικασιών στην ομάδα "μαθητής"
.
Εάν θέλετε να δείτε τα όρια μιας συγκεκριμένης διαδικασίας, μπορείτε απλώς να "cat" το αρχείο ορίων ως εξής:
cat /proc/PID/limits
Όπου PID είναι το πραγματικό αναγνωριστικό διεργασίας, μπορείτε να μάθετε το αναγνωριστικό διαδικασίας χρησιμοποιώντας την εντολή ps. Για πιο λεπτομερή εξήγηση, διαβάστε το άρθρο μας που λέει – Βρείτε τις τρέχουσες διεργασίες Linux και ορίστε όρια διεργασιών ανά επίπεδο χρήστη
Ορίστε λοιπόν ένα παράδειγμα:
cat /proc/2497/limits
Δείγμα εξόδου
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 32042 32042 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 32042 32042 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Όλες οι γραμμές είναι λίγο πολύ αυτονόητες. Ωστόσο, εάν θέλετε να βρείτε περισσότερες ρυθμίσεις που μπορείτε να εισάγετε στο αρχείο limits.conf, μπορείτε να ρίξετε μια ματιά στο εγχειρίδιο που παρέχεται εδώ.
Εάν έχετε οποιεσδήποτε ερωτήσεις ή σχόλια, μη διστάσετε να τα υποβάλετε στην παρακάτω ενότητα σχολίων.