Lập ngân sách socket proxy NGINX trước khi tăng worker_connections
Một kết nối được proxy thường chiếm cả socket của máy khách lẫn socket upstream; phân biệt giới hạn kết nối của worker với giới hạn bộ mô tả tệp của dịch vụ.
Một kết nối được proxy có thời gian sống dài thường chiếm hai socket: của máy khách và của upstream. worker_connections đếm cả hai phía. Vì vậy nhân nó với worker_processes không tạo ra lời hứa về dung lượng cho người dùng proxy.
Khi kết nối thất bại, hãy theo giới hạn được báo cáo:
| Bằng chứng | Cấu hình hoặc trạng thái tiến trình cần kiểm tra |
|---|---|
| cạn kiệt worker_connections | Ngân sách kết nối của worker, bao gồm socket upstream |
| Thông báo của hệ điều hành «Quá nhiều tệp đang mở» | Giới hạn bộ mô tả tệp mà tiến trình dịch vụ thực tế kế thừa |
Socket lắng nghe, nhật ký và các tệp đang mở khác cũng tiêu thụ bộ mô tả. Việc tái sử dụng kết nối và thành phần lưu lượng thay đổi quan hệ giữa người dùng và socket.
worker_rlimit_nofile điều chỉnh giới hạn của worker trong phạm vi quyền của môi trường. Một unit systemd có thể đặt LimitNOFILE; ulimit trong shell tương tác không thay đổi dịch vụ đang chạy.
Định cỡ giới hạn theo khối lượng công việc và kiểm tra ai đang tiêu thụ chúng. Máy khách bất thường hoặc các kết nối upstream thất bại lặp lại có thể làm cạn ngân sách từng đủ trước đó. Số tiến trình hay giới hạn bộ nhớ lớn hơn không khắc phục được tình trạng thiếu bộ mô tả.