Jak ustawić globalny limit plików, aby uniknąć błędu „wiele otwartych plików”?
Mam usługę WebSocket. jest to strage z błędem: „zbyt wiele otwartych plików”, ale ustawiłem konfigurację systemu:
/etc/security/limits.conf
* soft nofile 65000
* hard nofile 65000
/etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65000
ulimit -n
//output 6500
Więc myślę, że mój system jest skonfigurowany prawidłowo.
Moja usługa jest zarządzana przez przełożonego, możliwe limity nadzorcy?
sprawdź proces rozpoczęcia przez przełożonego:
cat /proc/815/limits
Max open files 1024 4096 files
sprawdź proces ręczny start:
cat /proc/900/limits
Max open files 65000 65000 files
Powodem jest wykorzystywany przez kierownika nadzór nad serią. jeśli zrestartuję nadzorcę i uruchomię ponownie proces potomny, jest to „maks. otwarte pliki” ok (65000), ale źle (1024), gdy automatycznie uruchomi się nadzorca systemu.
Może to być zbyt wysoki poziom startu administratora i konfiguracja systemu nie działa, gdy rozpoczyna się nadzór?
edytować:
system: ubuntu 12.04 64bit
Nie jest to problem nadzorcy, wszystkie procesy automatycznego uruchamiania po ponownym uruchomieniu systemu nie używają konfiguracji systemu (max otwarte pliki = 1024), ale restart jest w porządku.
aktualizacja
Może problem jest:
https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/938669http://bryanmarty.com/blog/2012/02/10/setting-nofile-limit-upstart/Zwiększ maksymalną liczbę otwartych plików dla Ubuntu / Upstart (initctl)Teraz pytanie brzmi, jak ustawić globalny limit nofile, ponieważ nie chcę ustawiać limitu nofile w każdym skrypcie, który potrzebuję.