Πώς να ορίσετε όρια για διεργασίες που εκτελούνται από τον χρήστη στο Linux


Μια από τις ομορφιές του Linux είναι ότι μπορείτε να ελέγξετε σχεδόν τα πάντα σχετικά με αυτό. Αυτό δίνει σε έναν διαχειριστή συστήματος μεγάλο έλεγχο στο σύστημά του και καλύτερη αξιοποίηση των πόρων του συστήματος.

Αν και ορισμένοι μπορεί να μην είχαν σκεφτεί ποτέ να το κάνουν αυτό, είναι σημαντικό να γνωρίζετε ότι στο Linux μπορείτε να περιορίσετε τον πόρο που μπορεί να χρησιμοποιήσει ένας μεμονωμένος χρήστης και για πόσο χρόνο.

Διαβάστε επίσης: Πώς να αυξήσετε το όριο του αριθμού των ανοιχτών αρχείων στο Linux

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

Πριν προχωρήσουμε περαιτέρω, πρέπει να επισημάνουμε δύο πράγματα:

  1. Χρειάζεστε πρόσβαση root στο σύστημά σας για να τροποποιήσετε τα όρια χρήστη
  2. Πρέπει να είστε εξαιρετικά προσεκτικοί εάν σκοπεύετε να τροποποιήσετε αυτά τα όρια

Για να ρυθμίσουμε όρια χρήστη, θα χρειαστεί να επεξεργαστούμε το ακόλουθο αρχείο:


/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, μπορείτε να ρίξετε μια ματιά στο εγχειρίδιο που παρέχεται εδώ.

Εάν έχετε οποιεσδήποτε ερωτήσεις ή σχόλια, μη διστάσετε να τα υποβάλετε στην παρακάτω ενότητα σχολίων.