Wydaje mi się, że nie mogę zwiększyć nofile
limitu dla użytkowników innych niż root na Ubuntu 14.04, pomimo wykonania każdej odpowiedzi StackExchange związanej z tym problemem. Do tej pory mam:
$ cat /etc/security/limits.d/custom.conf
@www-data hard nofile 50000
@www-data soft nofile 50000
# even tried specifying the username directly:
myuser hard nofile 50000
myuser soft nofile 50000
$ grep 'limits' /etc/pam.d/common-session*
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/common-session-noninteractive:session required pam_limits.so
$ cat /proc/sys/fs/file-max
101232
Zrestartowano, zalogowano i:
$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Istnieje jeszcze jakoś wydaje się limit 4096 max dla użytkowników innych niż root.
Odpowiedzi:
Używając Ubuntu 14.04 otrzymałem opisany twardy limit:
Mógłbym go obniżyć za pomocą ulimit, ale nie zwiększyć, tak jak to opisuje pytanie. Jak opisuje instrukcja ulimit:
Próbowałem więc ustawić wyższy limit w
/etc/security/limits.conf
następujący sposób:i nowy login, taki jak,
ssh localhost -l user
dał mi nowy limit:Mam nadzieję, że to również dla ciebie działa.
źródło
/etc/security/limits*
nie jest czytany przez mechanizm logowania - z jeszcze nieznanego powodu. 2. Twardy limit ustawia się na 4096 w innym miejscu i „tylko root może zwiększyć ...”. Możesz sprawdzić swoje profile, takie jak.bashrc
(w zależności od powłoki), lub sprawdzić/etc
inne miejsca, w których można ustawić ograniczenia, takie jakfind /etc | grep -e ulimit -e 4096 -e nofile
. BTW: próbowałeś ssh? I: czy/etc/ssh/sshd.conf
z jakiegoś powodu zmieniłeś się, aby uniknąć PAM?/etc/security/limits*
- możesz spróbować włączyć PAM, aby to sprawdzić. Spróbuję wyłączyć PAM, aby zobaczyć, jaką to robi różnicę i podam wyniki. --- Tak! Otóż to! Po wyłączeniu PAM mój limit wynosi również 4096, chociaż ustawiony na 9999 w/etc/security/limits.conf
.Myślę, że ten artykuł dotyczy twojego problemu.
Zasadniczo należy użyć polecenia ulimit, aby zwiększyć dostępne zasoby.
Na przykład:
Użyj następującego polecenia polecenia, aby wyświetlić maksymalną liczbę otwartych deskryptorów plików:
Aby zobaczyć wartości twarde i miękkie, wydaj polecenie w następujący sposób:
Aby zobaczyć twarde i miękkie wartości dla użytkownika httpd lub oracle, wydaj polecenie w następujący sposób:
Aby naprawić liczbę maksymalnych plików, możesz zwiększyć maksymalną liczbę otwartych plików, ustawiając nową wartość w zmiennej jądra / proc / sys / fs / file-max w następujący sposób (zaloguj się jako root):
Powyższe polecenie wymusza ograniczenie do 100 000 plików. Musisz edytować
/etc/sysctl.conf
plik i wstawić następujący wiersz, aby po ponownym uruchomieniu ustawienia pozostały bez zmian . Aby to zrobić, dołącz dyrektywę config w następujący sposób:Zapisz i zamknij plik. Użytkownicy muszą się wylogować i zalogować ponownie, aby zmiany odniosły skutek, lub po prostu wpisz następujące polecenie:
Sprawdź ustawienia za pomocą polecenia:
lub:
Powyższa procedura ustawia ogólnosystemowe limity deskryptorów plików (FD), jednak możesz ograniczyć użytkownika
httpd
(lub innych użytkowników) do określonych limitów poprzez edycję/etc/security/limits.conf
pliku poprzez edycję/etc/security/limits.conf
i ustawić limity w następujący sposób:Następnie sprawdź je:
Jeśli masz problem z innymi dystrybucjami Linuksa, sprawdź
/etc/pam.d/login
i upewnij się, że maszpam_limits.so
włączone, npźródło
Jeśli jest to usługa, możesz spróbować ustawić limit
/etc/systemd/system/{ServiceName}.service
dodawaniaLimitNOFILE=65536
źródło