Στο Linux, μπορούμε να χρησιμοποιήσουμε την εντολή ulimit -n για να δούμε τον μέγιστο αριθμό λαβών αρχείων που μπορεί να ανοίξει μια μεμονωμένη διεργασία (υπολογίζονται επίσης οι συνδέσεις υποδοχής). σύστημαΗ προεπιλεγμένη τιμή είναι 1024。
Για γενικές εφαρμογές (όπως Apache, διεργασίες συστήματος) το 1024 είναι απολύτως επαρκές. Ωστόσο, είναι λίγο εκτεταμένο για εφαρμογές μιας διαδικασίας όπως το Squid, η MySQL και η Java. Εάν ο αριθμός των δεικτών χειρισμού αρχείων που ανοίγουν από μία μόνο διεργασία υπερβαίνει την τιμή που ορίζεται από το σύστημα, αναφέρεται το μήνυμα σφάλματος "ανοίγουν πάρα πολλά αρχεία".
Προβολή του μέγιστου αριθμού δεικτών χειρισμού αρχείων που έχει οριστεί από το σύστημα
Το lsof (List Open Files) είναι ένα εργαλείο που παραθέτει τα αρχεία που είναι ανοιχτά αυτήν τη στιγμή στο σύστημα. Στο περιβάλλον Linux, τα πάντα υπάρχουν με τη μορφή αρχείων, μέσω των οποίων είναι δυνατή η πρόσβαση όχι μόνο σε γενικά δεδομένα, αλλά και σε συνδέσεις δικτύου και υλικό. Έτσι, στο παρασκήνιο, όπως οι υποδοχές Transmission Control Protocol (TCP) και User Datagram Protocol (UDP), το σύστημα εκχωρεί έναν περιγραφέα αρχείου στην εφαρμογή, ανεξάρτητα από τη φύση του αρχείου, ο οποίος παρέχει μια κοινή διεπαφή για την αλληλεπίδραση μεταξύ της εφαρμογής και του υποκείμενου λειτουργικού συστήματος. Επειδή η λίστα των περιγραφέων για τα ανοιχτά αρχεία της εφαρμογής παρέχει πολλές πληροφορίες σχετικά με την ίδια την εφαρμογή, η ύπαρξη του εργαλείου LSOF για την προβολή αυτής της λίστας θα είναι πολύ χρήσιμη για την παρακολούθηση του συστήματος και την αντιμετώπιση προβλημάτων.
Η εντολή εγκατάστασης είναι η εξής:
Μετρήστε τον συνολικό αριθμό των δεικτών χειρισμού αρχείων που είναι ανοιχτοί αυτήν τη στιγμή στο σύστημα:
Τρόποι προβολής του αριθμού των δεικτών χειρισμού αρχείων που ανοίγουν από τη διαδικασία αίτησης:
Ορισμός ulimit
Προσωρινές ρυθμίσεις
Στην πραγματικότητα, η ίδια η εντολή ulimit χωρίζεται σε μαλακούς και σκληρούς περιορισμούς, το συν-h είναι το σκληρό όριο και το συν-s είναι το μαλακό όριο. Από προεπιλογή, εμφανίζονται μαλακά όρια, εάν δεν προσθέσετε -H ή -S κατά την εκτέλεση της εντολής ulimit για τροποποίηση, οι δύο παράμετροι αλλάζουν μαζί.
Ποια είναι η διαφορά μεταξύ μαλακών και σκληρών ορίων;
Ένα σκληρό όριο είναι το πραγματικό όριο, ενώ ένα μαλακό όριο είναι ένα όριο προειδοποίησης, το οποίο δίνει μόνο μια προειδοποίηση.
Μόνιμη ρύθμιση
Η τιμή ulimits είναι μόνιμη και το αρχείο ρυθμίσεων /etc/security/limits.conf πρέπει να τροποποιηθεί
(Τέλος)
|