Anggarkan socket proxy NGINX sebelum menaikkan worker_connections
Koneksi yang diproksikan biasanya memakai socket klien dan socket upstream; bedakan batas koneksi worker dari batas deskriptor berkas layanan.
Satu koneksi yang diproksikan dan berumur panjang biasanya menempati dua socket: milik klien dan milik upstream. worker_connections menghitung kedua sisi. Jadi mengalikannya dengan worker_processes tidak menjanjikan kapasitas bagi pengguna proxy.
Saat koneksi gagal, ikuti batas yang dilaporkan:
| Bukti | Setelan atau keadaan proses yang perlu diperiksa |
|---|---|
| habisnya worker_connections | Anggaran koneksi worker, termasuk socket upstream |
| Pesan sistem operasi “Terlalu banyak berkas terbuka” | Batas deskriptor berkas yang diwarisi proses layanan yang sebenarnya |
Socket pendengar, log, dan berkas terbuka lain juga memakai deskriptor. Penggunaan ulang koneksi dan campuran lalu lintas mengubah hubungan antara pengguna dan socket.
worker_rlimit_nofile menyesuaikan batas worker sesuai izin lingkungan. Unit systemd dapat menyetel LimitNOFILE; ulimit di shell interaktif tidak mengubah layanan yang berjalan.
Ukur batas sesuai beban kerja, dan periksa siapa yang memakainya. Klien tak terduga atau koneksi upstream yang berulang kali gagal dapat menghabiskan anggaran yang sebelumnya cukup. Jumlah proses atau batas memori yang lebih besar tidak memperbaiki kekurangan deskriptor.