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:
cat /proc/sys/fs/file-max
Aby zobaczyć wartości twarde i miękkie, wydaj polecenie w następujący sposób:
# ulimit -Hn
# ulimit -Sn
Aby zobaczyć twarde i miękkie wartości dla użytkownika httpd lub oracle, wydaj polecenie w następujący sposób:
# su - username
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):
# sysctl -w fs.file-max=100000
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:
fs.file-max = 100000
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:
# sysctl -p
Sprawdź ustawienia za pomocą polecenia:
# cat /proc/sys/fs/file-max
lub:
# sysctl fs.file-max
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:
httpd soft nofile 4096
httpd hard nofile 10240
Następnie sprawdź je:
# su - httpd
$ ulimit -Hn
$ ulimit -Sn
Jeśli masz problem z innymi dystrybucjami Linuksa, sprawdź /etc/pam.d/login
i upewnij się, że masz pam_limits.so
włączone, np
session required pam_limits.so