Nginx görünüşte yaygın "çok fazla dosya tanımlayıcı" hatası var. Çok fazla arama yaptıktan sonra çözüm, nginx tarafından kullanılabilen dosya tanımlayıcılarının sayısını artırmaktır. Ama bunu anlamlı ve güvenli bir şekilde yapmak için rahat hissetmem için yeterli bilgi yok. Çoğu forum / e-posta dizisinin kapsadığı ana noktalar şunlardır:
- İşletim sisteminin kendi toplam dosya tanımlayıcı sınırı vardır (sistemimde
cat /proc/sys/fs/file-max
"100678" çıktıları) - her kullanıcının da kendi sınırı olabilir (ancak sistemimde,
ulimit
"sınırsız" herhangi bir kullanıcı çıktısı olarak çalışıyor , daha ayrıntılı olarak aşağıdaki güncellemeye bakın ) - birkaç kişi bu kişinin söylediklerinin satırında bir şey söyledi: 'worker_rlimit_nofile direktifi "kaç tane" belirtmiyor, işletim sistemi limiti bunu yapıyor. Worker_rlimit_nofile yönergesi, yeterli değilse bu sınırı genişletmek için hızlı ve kirli bir yol sağlar. ' Yani ima yapılandırmak yerine nginx OS kullanıcı için sınırı ayarlamak için "daha iyi" olduğunu tahmin?
İşçi başına bağlantı sayısından daha büyük bir worker_rlimit_nofile değeri atayabilir ve bir gün diyebilirim, ama burada neler olduğunu gerçekten bilmiyorum.
- çalışan başına sınır neden OS sınırından daha az olsun?
- Şu anda sınırımın ne olduğunu nasıl öğrenebilirim?
güncelleme : hem kök hem de normal kullanıcı için, ulimit "sınırsız" çıkışları, AMA ulimit -Hn
ve ulimit -Sn
her iki çıkış 1024