Periksa daemon yang berjalan sebelum memercayai ulimit -n pada shell login. Untuk pemasangan yang memakai squid.service, mulai dengan:

systemctl show squid.service -p MainPID -p LimitNOFILE
systemctl cat squid.service

Baca /proc/PID/limits memakai ID proses yang sebenarnya. Pada penerapan multiproses, periksa juga worker terkait. Nilai yang tersimpan dalam konfigurasi bukan bukti bahwa proses ini mewarisinya.

KendaliCakupan
Shell ulimit dan PAM limits.confKeturunan shell atau sesi yang benar-benar memakai pengaturan PAM
systemd LimitNOFILE=Proses yang dimulai di bawah kebijakan sumber daya layanan itu
Squid max_filedescriptors, bila didukungBatas aplikasi dalam kendala sistem operasi

Layanan sistem tidak serta-merta memakai perubahan PAM hanya karena administrator mengubah berkasnya. Gunakan drop-in khusus layanan bila mengubah batas systemd-nya memang tepat. Squid mendokumentasikan bahwa max_filedescriptors memerlukan mulai ulang untuk diubah; bila dibiarkan tidak diatur, ia mewarisi batas lunak OS.

Ukur batas untuk deskriptor, bukan pengguna. Klien dapat memegang beberapa soket, dan koneksi keluar, log, serta pipa pembantu juga memakai deskriptor. Menaikkan batas memungkinkan konsumsi lebih besar tanpa langsung mencadangkan jumlah RAM tetap untuk setiap deskriptor yang mungkin. Baik perkiraan memori per soket yang lama maupun 65,535 bukan persyaratan kapasitas universal atau plafon Linux.

Setelah perubahan layanan, bandingkan batas proses baru dengan nilai yang dituju. Jika kegagalan terjadi jauh di bawahnya, selidiki sumber daya yang benar-benar habis.

Artikel terkait