Μια μακρόβια σύνδεση μέσω proxy καταλαμβάνει συνήθως δύο sockets: του πελάτη και του upstream. Το worker_connections μετρά και τις δύο πλευρές. Επομένως ο πολλαπλασιασμός του με το worker_processes δεν εγγυάται χωρητικότητα για τους χρήστες του proxy.

Όταν αποτυγχάνουν συνδέσεις, ακολουθήστε το όριο που αναφέρεται:

ΈνδειξηΡύθμιση ή κατάσταση διεργασίας προς έλεγχο
εξάντληση του worker_connectionsΟ προϋπολογισμός συνδέσεων του worker, μαζί με τα upstream sockets
Μήνυμα του λειτουργικού «Πάρα πολλά ανοιχτά αρχεία»Το όριο file descriptor που κληρονομεί η πραγματική διεργασία της υπηρεσίας

Τα sockets ακρόασης, τα logs και άλλα ανοιχτά αρχεία καταναλώνουν επίσης descriptors. Η επαναχρησιμοποίηση συνδέσεων και η μίξη κίνησης αλλάζουν τη σχέση μεταξύ χρηστών και sockets.

Το worker_rlimit_nofile προσαρμόζει τα όρια του worker σύμφωνα με τα δικαιώματα του περιβάλλοντος. Μια μονάδα systemd μπορεί να ορίσει το LimitNOFILE· το ulimit ενός διαδραστικού shell δεν αλλάζει την εκτελούμενη υπηρεσία.

Διαστασιολογήστε τα όρια με βάση το φόρτο εργασίας και ελέγξτε ποιος τα καταναλώνει. Μη αναμενόμενοι πελάτες ή επανειλημμένα αποτυχημένες upstream συνδέσεις μπορούν να εξαντλήσουν ένα προηγουμένως επαρκές όριο. Μεγαλύτερος αριθμός διεργασιών ή όριο μνήμης δεν διορθώνει την έλλειψη descriptors.

Σχετικά άρθρα